Под выпадающим списком понимается содержание в одной ячейке нескольких значений. Когда пользователь щелкает по стрелочке справа, появляется определенный перечень. Можно выбрать конкретное.
Очень удобный инструмент Excel для проверки введенных данных. Повысить комфорт работы с данными позволяют возможности выпадающих списков: подстановка данных, отображение данных другого листа или файла, наличие функции поиска и зависимости.
Создание раскрывающегося списка
Путь: меню «Данные» — инструмент «Проверка данных» — вкладка «Параметры». Тип данных – «Список».
Ввести значения, из которых будет складываться выпадающий список, можно разными способами:
- Вручную через «точку-с-запятой» в поле «Источник».
- Ввести значения заранее. А в качестве источника указать диапазон ячеек со списком.
- Назначить имя для диапазона значений и в поле источник вписать это имя.
Любой из вариантов даст такой результат.
Выпадающий список в Excel с подстановкой данных
Необходимо сделать раскрывающийся список со значениями из динамического диапазона. Если вносятся изменения в имеющийся диапазон (добавляются или удаляются данные), они автоматически отражаются в раскрывающемся списке.
- Выделяем диапазон для выпадающего списка. В главном меню находим инструмент «Форматировать как таблицу».
- Откроются стили. Выбираем любой. Для решения нашей задачи дизайн не имеет значения. Наличие заголовка (шапки) важно. В нашем примере это ячейка А1 со словом «Деревья». То есть нужно выбрать стиль таблицы со строкой заголовка. Получаем следующий вид диапазона:
- Ставим курсор в ячейку, где будет находиться выпадающий список. Открываем параметры инструмента «Проверка данных» (выше описан путь). В поле «Источник» прописываем такую функцию:
Протестируем. Вот наша таблица со списком на одном листе:
Добавим в таблицу новое значение «елка».
Теперь удалим значение «береза».
Осуществить задуманное нам помогла «умная таблица», которая легка «расширяется», меняется.
Теперь сделаем так, чтобы можно было вводить новые значения прямо в ячейку с этим списком. И данные автоматически добавлялись в диапазон.
- Сформируем именованный диапазон. Путь: «Формулы» — «Диспетчер имен» — «Создать». Вводим уникальное название диапазона – ОК.
- Создаем раскрывающийся список в любой ячейке. Как это сделать, уже известно. Источник – имя диапазона: =деревья.
- Снимаем галочки на вкладках «Сообщение для ввода», «Сообщение об ошибке». Если этого не сделать, Excel не позволит нам вводить новые значения.
- Вызываем редактор Visual Basic. Для этого щелкаем правой кнопкой мыши по названию листа и переходим по вкладке «Исходный текст». Либо одновременно нажимаем клавиши Alt + F11. Копируем код (только вставьте свои параметры).
- Сохраняем, установив тип файла «с поддержкой макросов».
- Переходим на лист со списком. Вкладка «Разработчик» — «Код» — «Макросы». Сочетание клавиш для быстрого вызова – Alt + F8. Выбираем нужное имя. Нажимаем «Выполнить».
Private Sub Worksheet_Change(ByVal Target As Range) Dim lReply As Long If Target.Cells.Count > 1 Then Exit Sub If Target.Address = "$C$2" Then If IsEmpty(Target) Then Exit Sub If WorksheetFunction.CountIf(Range("Деревья"), Target) = 0 Then lReply = MsgBox("Добавить введенное имя " & _ Target & " в выпадающий список?", vbYesNo + vbQuestion) If lReply = vbYes Then Range("Деревья").Cells(Range("Деревья").Rows.Count + 1, 1) = Target End If End If End If End Sub
Когда мы введем в пустую ячейку выпадающего списка новое наименование, появится сообщение: «Добавить введенное имя баобаб в выпадающий список?».
Нажмем «Да» и добавиться еще одна строка со значением «баобаб».
Выпадающий список в Excel с данными с другого листа/файла
Когда значения для выпадающего списка расположены на другом листе или в другой книге, стандартный способ не работает. Решить задачу можно с помощью функции ДВССЫЛ: она сформирует правильную ссылку на внешний источник информации.
- Делаем активной ячейку, куда хотим поместить раскрывающийся список.
- Открываем параметры проверки данных. В поле «Источник» вводим формулу: =ДВССЫЛ(“[Список1.xlsx]Лист1!$A$1:$A$9”).
Имя файла, из которого берется информация для списка, заключено в квадратные скобки. Этот файл должен быть открыт. Если книга с нужными значениями находится в другой папке, нужно указывать путь полностью.
Как сделать зависимые выпадающие списки
Возьмем три именованных диапазона:
Это обязательное условие. Выше описано, как сделать обычный список именованным диапазоном (с помощью «Диспетчера имен»). Помним, что имя не может содержать пробелов и знаков препинания.
- Создадим первый выпадающий список, куда войдут названия диапазонов.
- Когда поставили курсор в поле «Источник», переходим на лист и выделяем попеременно нужные ячейки.
- Теперь создадим второй раскрывающийся список. В нем должны отражаться те слова, которые соответствуют выбранному в первом списке названию. Если «Деревья», то «граб», «дуб» и т.д. Вводим в поле «Источник» функцию вида =ДВССЫЛ(E3). E3 – ячейка с именем первого диапазона.
- Создаем стандартный список с помощью инструмента «Проверка данных». Добавляем в исходный код листа готовый макрос. Как это делать, описано выше. С его помощью справа от выпадающего списка будут добавляться выбранные значения.
- Чтобы выбранные значения показывались снизу, вставляем другой код обработчика.
- Чтобы выбираемые значения отображались в одной ячейке, разделенные любым знаком препинания, применим такой модуль.
- На вкладке «Разработчик» находим инструмент «Вставить» – «ActiveX». Здесь нам нужна кнопка «Поле со списком» (ориентируемся на всплывающие подсказки).
- Щелкаем по значку – становится активным «Режим конструктора». Рисуем курсором (он становится «крестиком») небольшой прямоугольник – место будущего списка.
- Жмем «Свойства» – открывается перечень настроек.
- Вписываем диапазон в строку ListFillRange (руками). Ячейку, куда будет выводиться выбранное значение – в строку LinkedCell. Для изменения шрифта и размера – Font.
Выбор нескольких значений из выпадающего списка Excel
Бывает, когда из раскрывающегося списка необходимо выбрать сразу несколько элементов. Рассмотрим пути реализации задачи.
Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Not Intersect(Target, Range("Е2:Е9")) Is Nothing And Target.Cells.Count = 1 Then Application.EnableEvents = False If Len(Target.Offset(0, 1)) = 0 Then Target.Offset(0, 1) = Target Else Target.End(xlToRight).Offset(0, 1) = Target End If Target.ClearContents Application.EnableEvents = True End If End Sub
Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Not Intersect(Target, Range("Н2:К2")) Is Nothing And Target.Cells.Count = 1 Then Application.EnableEvents = False If Len(Target.Offset(1, 0)) = 0 Then Target.Offset(1, 0) = Target Else Target.End(xlDown).Offset(1, 0) = Target End If Target.ClearContents Application.EnableEvents = True End If End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range("C2:C5")) Is Nothing And Target.Cells.Count = 1 Then
Application.EnableEvents = False
newVal = Target
Application.Undo
oldval = Target
If Len(oldval) <> 0 And oldval <> newVal Then
Target = Target & "," & newVal
Else
Target = newVal
End If
If Len(newVal) = 0 Then Target.ClearContents
Application.EnableEvents = True
End If
End Sub
Не забываем менять диапазоны на «свои». Списки создаем классическим способом. А всю остальную работу будут делать макросы.
Выпадающий список с поиском
Скачать пример выпадающего списка
При вводе первых букв с клавиатуры высвечиваются подходящие элементы. И это далеко не все приятные моменты данного инструмента. Здесь можно настраивать визуальное представление информации, указывать в качестве источника сразу два столбца.
Skip to content
В статье показаны способы поиска (ВПР) нескольких значений в Excel на основе одного или нескольких условий и возврата нескольких результатов в столбце, строке или в отдельной ячейке.
При использовании Microsoft Excel для анализа данных вы часто можете оказаться в ситуации, когда вам нужно получить все совпадающие значения для определенного имени, наименования, артикула или какого-либо другого уникального идентификатора. Первое решение, которое приходит на ум, — это использование функции Excel ВПР (VLOOKUP). Но проблема в том, что она может возвращать только одно значение.
Поиск нескольких значений в Excel может быть выполнен с помощью совместного использования ряда функций. Если вы не являетесь экспертом в Excel, не спешите покидать эту страницу. Я постараюсь объяснить логику поиска, чтобы даже новичок мог понять формулы и настроить их для решения подобных задач.
Поиск нескольких позиций в Excel с помощью формулы
Как было сказано ранее, невозможно заставить функцию ВПР Excel возвращать несколько значений. Проблему можно решить, используя следующие функции в формуле массива:
- ЕСЛИ – оценивает условие и возвращает одно значение, если условие выполняется, и другое значение, если условие не выполняется.
- НАИМЕНЬШИЙ– получает N-е наименьшее значение в массиве.
- ИНДЕКС — возвращает элемент массива на основе указанных вами номеров строк и столбцов.
- СТРОКА — возвращает номер строки.
- СТОЛБЕЦ — возвращает номер столбца.
- ЕСЛИОШИБКА – перехватывает ошибки.
Ниже вы найдете несколько примеров таких формул. Их часто называют формулами ВПР нескольких значений, хотя сама функция ВПР здесь не используется. Дело в том, что часто под термином ВПР подразумевают любой поиск в Excel, какими бы формулами и функциями он ни осуществлялся.
Поиск нескольких значений и возврат результатов в столбец
Допустим, у вас есть имена продавцов в столбце А и товары, которые они продали, в столбце В. Таблица содержит несколько записей для каждого продавца. Ваша цель — получить список всех товаров, относящихся к данному человеку. Чтобы это сделать, выполните следующие действия:
- Введите список имен продавцов в какую-нибудь пустую строку того же или другого рабочего листа. В этом примере имена вводятся в ячейки D2:H2:
Совет. Чтобы быстро записать все имеющиеся в списке имена, вы можете использовать эту инструкцию — как получить список уникальных значений в Excel.
- Под именем выберите количество пустых ячеек, равное или превышающее максимально возможное количество совпадений, введите одно из следующих выражений и нажмите
Ctrl + Shift + Enter
для ввода его как формулы массива (в этом случае вы сможете редактировать формулу только сразу во всем диапазоне, где она введена). Или же вы можете записать это в левую верхнюю ячейку, также использовавCtrl + Shift + Enter
, а затем перетащить вниз еще на несколько ячеек (в этом случае вы сможете редактировать формулу в каждой ячейке отдельно).
=ЕСЛИОШИБКА(ИНДЕКС($B$3:$B$13; НАИМЕНЬШИЙ(ЕСЛИ(D$2=$A$3:$A$13; СТРОКА($B$3:$B$13)-2;»»); СТРОКА()-2));»»)
или
=ЕСЛИОШИБКА(ИНДЕКС($B$3:$B$13;НАИМЕНЬШИЙ(ЕСЛИ(D$2=$A$3:$A$13;СТРОКА($A$3:$A$13)-МИН(СТРОКА($A$3:$A$13))+1;»»); СТРОКА()-2));»»)
Как видите, первая формула немного компактнее, а вторая более универсальна и требует меньше модификаций (подробнее о синтаксисе и логике мы поговорим чуть дальше).
- Скопируйте формулу в соседние столбцы справа. Для этого перетащите маркер заполнения (небольшой квадрат в правом нижнем углу выбранного диапазона) вправо.
Результат ВПР нескольких значений в столбце будет выглядеть примерно так:
Здесь мы использовали первую формулу:
=ЕСЛИОШИБКА(ИНДЕКС($B$3:$B$13; НАИМЕНЬШИЙ(ЕСЛИ(D$2=$A$3:$A$13; СТРОКА($B$3:$B$13)-2;»»); СТРОКА()-2));»»)
Как это работает.
Это пример использования Excel от среднего до продвинутого уровня, который подразумевает базовые знания формул массива и функций Excel. Итак, разберём пошагово:
- Функция ЕСЛИ
В основе поиска – функция ЕСЛИ, чтобы получить позиции всех вхождений искомого значения в диапазоне поиска: ЕСЛИ(D$2=$A$3:$A$13; СТРОКА($B$3:$B$13) )-2;»»)
ЕСЛИ сравнивает искомое значение (D2) с каждым значением в диапазоне поиска (A3:A13) и, если совпадение найдено, возвращает относительную позицию строки; пустое значение («») в противном случае.
Относительная позиция вычисляется путем вычитания 2 из СТРОКА($B$3:$B$13), чтобы первая позиция с формулой имела порядковый номер 1 (то есть, 3-2=1). Если ваш диапазон вывода начинается со строки 2, тогда вычтите 1 и так далее. Результатом этой операции является массив {1;2;3;4;5;6;7;8;9;10;11}, который поступает в аргумент значение_если_истина функции ЕСЛИ.
Вместо приведенного выше вычисления вы можете использовать следующее выражение:
СТРОКА(столбец_просмотра) — МИН(СТРОКА(столбец_просмотра))+1
Оно возвращает тот же результат, но не требует каких-либо изменений независимо от местоположения возвращаемого столбца. В этом примере это будет СТРОКА($A$3:$A$13)-МИН(СТРОКА($A$3:$A$13))+1.
Итак, на данный момент у вас есть массив, состоящий из чисел (позиций совпадений) и пустых строк (несовпадений). Для ячейки D3 в этом примере у нас есть следующий массив:
=ЕСЛИОШИБКА(ИНДЕКС($B$3:$B$13; НАИМЕНЬШИЙ({1:»»:»»:»»:5:»»:»»:8:»»:»»:»»}; СТРОКА()-2));»»)
Если вы сверитесь с исходными данными, вы увидите, что «Сергей» (значение поиска в D2) появляется на 1- й , 5 -й и 8 -й позициях в диапазоне поиска (A3: A13).
- Функция НАИМЕНЬШИЙ
Затем вступает в действие функция НАИМЕНЬШИЙ(массив; k), чтобы определить, какие совпадения должны быть возвращены в конкретной ячейке.
С уже установленным в предыдущем шаге массивом давайте определим аргумент k , т. е. k-е наименьшее возвращаемое значение. Для этого вы делаете своего рода «инкрементный счетчик» СТРОКА()-n, где «n» — это номер строки первой ячейки формулы минус 1. В этом примере мы ввели формулу в ячейки D3:D7, поэтому СТРОКА()-2 возвращает «1» для ячейки D3 (строка 3 минус 2), «2» для ячейки D4 (строка 4 минус 2) и т. д.
В результате функция НАИМЕНЬШИЙ извлекает первый наименьший элемент массива в ячейку D3, второй наименьший элемент в ячейку D4 и так далее. И это превращает первоначальную длинную и сложную формулу в очень простую, например:
=ЕСЛИОШИБКА(ИНДЕКС($B$3:$B$13;{1});»»)
Совет. Чтобы увидеть значение, вычисленное определенной частью формулы, выделите эту часть в самой формуле и нажмите F9.
- Функция ИНДЕКС
Здесь все просто. Вы используете функцию ИНДЕКС, чтобы вернуть значение элемента массива на основе его номера.
- Функция ЕСЛИОШИБКА
И, наконец, вы оборачиваете формулу в функцию ЕСЛИОШИБКА для обработки возможных ошибок, которые неизбежны, потому что вы не можете знать, сколько совпадений будет возвращено для того или иного искомого значения. Ведь вы копируете формулу в число ячеек явно большее, чем количество возможных совпадений, то есть «с запасом». Чтобы не пугать пользователей кучей ошибок, просто замените их пустой строкой (пустой ячейкой).
Примечание. Обратите внимание на правильное использование абсолютных и относительных ссылок на ячейки в формуле. Все ссылки фиксированы, за исключением ссылки на относительный столбец в искомом значении (D$2), которая должна изменяться в зависимости от относительного положения столбцов, в которые копируется формула, чтобы возвращать совпадения для других имён.
На скриншоте ниже вы можете видеть, как работает вторая формула
=ЕСЛИОШИБКА(ИНДЕКС($B$3:$B$13;НАИМЕНЬШИЙ(ЕСЛИ(D$2=$A$3:$A$13;СТРОКА($A$3:$A$13)-МИН(СТРОКА($A$3:$A$13))+1;»»); СТРОКА()-2));»»)
Обобщив эти два решения, мы получим следующие общие формулы для ВПР нескольких значений в Excel, которые будут выведены в столбец:
Вариант 1 :
=ЕСЛИОШИБКА(ИНДЕКС(диапазон_возвращаемых_значений; НАИМЕНЬШИЙ(ЕСЛИ(искомое_значение = диапазон_искомых_значений; СТРОКА(диапазон_возвращаемых_значений)-m;»»); СТРОКА()-n));»»)
Вариант 2:
=ЕСЛИОШИБКА(ИНДЕКС(диапазон_возвращаемых_значений;НАИМЕНЬШИЙ(ЕСЛИ(искомое_значение = диапазон_искомых_значений;СТРОКА(диапазон_искомых_значений)-МИН(СТРОКА(диапазон_искомых_значений))+1;»»); СТРОКА()-n));»»)
где:
- m — номер строки первой ячейки в возвращаемом диапазоне минус 1.
- n — номер строки первой ячейки с формулой минус 1.
Примечание. В приведенном выше примере и n, и m равны 2, потому что наш диапазон возвращаемых значений начинается, да и сама формула расположена, в строке 3. В ваших таблицах Эксель это вполне могут быть и другие числа.
Поиск нескольких совпадений и возврат результатов в строке
Если вы хотите вернуть несколько найденных значений в строках, а не в столбцах, измените приведенные выше формулы Excel следующим образом:
=ЕСЛИОШИБКА(ИНДЕКС($B$3:$B$13; НАИМЕНЬШИЙ(ЕСЛИ($D3=$A$3:$A$13;СТРОКА($B$3:$B$13)-2;»»); СТОЛБЕЦ()-4));»»)
или
=ЕСЛИОШИБКА(ИНДЕКС($B$3:$B$13;НАИМЕНЬШИЙ(ЕСЛИ($D3=$A$3:$A$13;СТРОКА($A$3:$A$13)-МИН(СТРОКА($A$3:$A$13))+1;»»);СТОЛБЕЦ()-4)); «»)
Как и в предыдущем примере, обе они являются формулами массива, поэтому не забудьте нажать комбинацию Ctrl + Shift + Enter, чтобы записать их правильно.
Формулы работают с той же логикой, что и в предыдущем примере, за исключением того, что вы используете функцию СТОЛБЕЦ вместо СТРОКА. Чтобы определить, какое совпадающее значение должно быть возвращено в конкретной ячейке, используем: СТОЛБЕЦ()-n где n — номер столбца первой ячейки, в которую вводится формула, минус 1. В этом примере результаты выводятся в диапазон E2:H2. Поскольку E является пятым столбцом, n равно 4 (5-1=4).
Примечание. Чтобы формула правильно копировалась вправо и вниз, обратите внимание на ссылки на значения поиска, где используется абсолютный адрес столбца и относительный адрес строки, например $D3.
И вот общие формулы для ВПР в Excel нескольких значений, возвращаемых по строке:
Формула 1 :
=ЕСЛИОШИБКА(ИНДЕКС(диапазон_возвращаемых_значений; НАИМЕНЬШИЙ(ЕСЛИ(искомое_значение = диапазон_искомых_значений; СТРОКА(диапазон_возвращаемых_значений)-m;»»); СТОЛБЕЦ()-n));»»)
Формула 2:
=ЕСЛИОШИБКА(ИНДЕКС(диапазон_возвращаемых_значений;НАИМЕНЬШИЙ(ЕСЛИ(искомое_значение = диапазон_искомых_значений;СТРОКА(диапазон_искомых_значений)-МИН(СТРОКА(диапазон_искомых_значений))+1;»»); СТОЛБЕЦ()-n));»»)
где:
- m — номер строки первой ячейки в возвращаемом диапазоне, минус 1.
- n — номер столбца первой ячейки, в которой записана формула, минус 1.
Поиск нескольких значений на основе нескольких условий
Вы уже знаете, как выполнять поиск нескольких значений в Excel на основе одного условия. Но что, если вы хотите вернуть несколько совпадений сразу на основе двух или более критериев? Продолжая предыдущие примеры – что, если у вас в таблице есть дополнительный столбец «Месяц» и вы хотите получить список всех товаров, проданных конкретным продавцом в определенном месяце?
Если вы знакомы с формулами массивов, то, возможно, помните, что они позволяют использовать знак умножения (*) в качестве логического оператора И. Таким образом, вы можете просто взять выражения, рассмотренные в двух предыдущих примерах, и заставить их проверять несколько условий, как показано ниже.
Как вернуть несколько значений в столбце.
Выведем искомые значения, соответствующие одновременно нескольким условиям, в привычном нам виде – вертикально в одном столбце.
В общем виде это выглядит так:
=ЕСЛИОШИБКА(ИНДЕКС(диапазон_возвращаемых_значений; НАИМЕНЬШИЙ(ЕСЛИ(1=((—(искомое_значение1 = диапазон_искомых_значений1)) * (—(искомое_значение2 = диапазон_искомых_значений2))) ; СТРОКА(диапазон_возвращаемых_значений)-m;»»); СТРОКА()-n));»»)
где:
- m — номер строки первой ячейки в возвращаемом диапазоне, минус 1.
- n — номер строки первой слева ячейки с формулой, минус 1.
Предположим, что список продавцов (диапазон_искомых_значений1) находится в A3:A30, список месяцев (диапазон_искомых_значений2) находится в B3: B30, интересующий продавец (искомое_значение1) указан в ячейке E3, а нужный месяц (искомое_значение2) – в ячейке F3. Тогда формула поиска принимает следующий вид:
=ЕСЛИОШИБКА(ИНДЕКС($C$3:$C$30; НАИМЕНЬШИЙ(ЕСЛИ(1=((—($E$3=$A$3:$A$30))*(—($F$3=$B$3:$B$30))); СТРОКА($C$3:$C$30)-2;»»); СТРОКА()-2));»»)
Таким образом, мы вводим имя в E3, месяц в F3, и получаем список товаров в столбце G:
Как вернуть несколько результатов в строке.
Если вы хотите получить по горизонтали несколько искомых значений на основе нескольких критериев, то есть когда результаты размещаются в одной строке, то используйте следующий общий шаблон:
=ЕСЛИОШИБКА(ИНДЕКС(диапазон_возвращаемых_значений; НАИМЕНЬШИЙ(ЕСЛИ(1=((—(искомое_значение1 = диапазон_искомых_значений1)) * (—(искомое_значение2 = диапазон_искомых_значений2))) ; СТРОКА(диапазон_возвращаемых_значений)-m;»»); СТОЛБЕЦ()-n));»»)
где:
- m — номер строки первой ячейки в возвращаемом диапазоне, минус 1.
- n — номер столбца первой слева ячейки, в которой записана формула, минус 1.
Для нашего примера набора данных формула выглядит следующим образом:
=ЕСЛИОШИБКА(ИНДЕКС($C$3:$C$30; НАИМЕНЬШИЙ(ЕСЛИ(1=((—($E3=$A$3:$A$30))*(—($F3=$B$3:$B$30))); СТРОКА($C$3:$C$30)-2;»»); СТОЛБЕЦ()-6));»»)
И результат ВПР нескольких значений по нескольким условиям может выглядеть так:
Аналогичным образом вы можете выполнять ВПР с тремя, четырьмя и более условиями.
Как это работает?
По сути, формулы для ВПР нескольких значений с несколькими условиями работают с уже знакомой логикой, объясненной в самом первом нашем примере. Единственное отличие состоит в том, что функция ЕСЛИ теперь проверяет несколько условий:
1=((—(искомое_значение1 = диапазон_искомых_значений1)) * (—(искомое_значение2 = диапазон_искомых_значений2)) * …..)
Результатом каждого сравнения (искомое_значение = диапазон_искомых_значений) является массив логических значений ИСТИНА (условие выполнено) и ЛОЖЬ (условие не выполнено). Двойное отрицание (—) переводит логические значения в единицы и нули. А поскольку умножение на ноль всегда дает ноль, в правой части этого равенства у вас будет получаться 1 только для тех элементов, которые удовлетворяют всем указанным вами условиям.
Вы просто сравниваете окончательный массив нулей и единиц с числом 1, чтобы функция СТРОКА вернула порядковые номера строк, удовлетворяющих всем условиям, в противном случае — пустоту.
Напоминание. Все формулы поиска, обсуждаемые в этой статье, являются формулами массива. Таким образом, каждая из них перебирает все элементы массива каждый раз, когда исходные данные изменяются или рабочий лист пересчитывается. На больших листах, содержащих сотни или тысячи позиций, это может значительно замедлить работу Excel.
Как вернуть несколько значений ВПР в одну ячейку
Мы продолжаем работать с набором данных, который использовали в предыдущем примере. Но на этот раз мы хотим добиться другого результата — вместо того, чтобы извлекать несколько совпадений в отдельные ячейки, мы хотим, чтобы они отображались в одной текстовой ячейке, разделенные запятой, пробелом или другим разделителем по вашему выбору.
Используем выражение, которое мы рассматривали чуть выше и которая позволяет получить несколько результатов ВПР с условиями в одной строке:
=ЕСЛИОШИБКА(ИНДЕКС($C$3:$C$30; НАИМЕНЬШИЙ(ЕСЛИ(1=((—($E3=$A$3:$A$30))*(—($F3=$B$3:$B$30))); СТРОКА($C$3:$C$30)-2;»»); СТОЛБЕЦ()-6));»»)
Внесем в нее небольшие изменения.
Чтобы обработать сразу несколько результатов, в функцию СТОЛБЕЦ добавим аргумент – диапазон ячеек, в который мы ранее копировали формулу. То есть, вместо СТОЛБЕЦ() у нас теперь будет СТОЛБЕЦ(G3:K3). Это позволит формуле массива получить сразу несколько номеров столбцов.
Затем применим крайне полезную при работе с текстовыми значениями функцию ОБЪЕДИНИТЬ (доступна в Excel 2019 и более поздних версиях). Она позволит нам объединить несколько текстовых значений, отделив их друг от друга выбранным нами разделителем. К примеру, запятой с пробелом после нее.
Вот что у нас получится:
=ОБЪЕДИНИТЬ(«, «; ИСТИНА; ЕСЛИОШИБКА(ИНДЕКС($C$3:$C$30; НАИМЕНЬШИЙ(ЕСЛИ(1=((—($E3=$A$3:$A$30))*(—($F3=$B$3:$B$30))); СТРОКА($C$3:$C$30)-2;»»); СТОЛБЕЦ(G3:K3)-6));»»))
И видим результат ВПР нескольких значений в одной ячейке на этом скриншоте:
Еще один, более простой вариант, чтобы подтянуть несколько значений и вывести результат в одной ячейке:
=ОБЪЕДИНИТЬ(«, «;ИСТИНА;ЕСЛИ(($A$3:$A$30=E3)*($B$3:$B$30=F3)=1;$C$3:$C$30;»»))
Ее также нужно вводить как формулу массива:
Как найти несколько значений без дубликатов
А если так случится, что в результатах поиска будет несколько одинаковых значений? Пример таких данных вы можете видеть на скриншоте ниже. Естественно, выводить в ячейке несколько дубликатов было бы не совсем хорошо.
Если вы хотите получить в одной ячейке результаты поиска нескольких значений без повторов, попробуйте так:
=ОБЪЕДИНИТЬ(«, «; ИСТИНА; ЕСЛИ(ЕСЛИОШИБКА(ПОИСКПОЗ($C$3:$C$13; ЕСЛИ(E3=$A$3:$A$13; $C$3:$C$13; «»); 0);»»)=ПОИСКПОЗ(СТРОКА($C$3:$C$13); СТРОКА($C$3:$C$13)); $C$3:$C$13; «»))
Вставьте это выражение в нужную ячейку, не забыв завершить ввод комбинацией Ctrl+Shift+Enter
, так как это формула массива. Затем можете скопировать вниз по столбцу, чтобы получить данные по другим критериям выбора.
Как видите, мы получили в одной ячейке несколько значений, среди которых нет одинаковых, хотя в исходных данных таковые имеются.
Надеюсь, эти примеры будут вам полезны для поиска сразу нескольких значений в Excel. Благодарю вас за чтение.
Microsoft Excel: выпадающие списки
Смотрите также свободен, т.е. не таблицы функция МИН это выбирать из4 способа создать выпадающийна вкладке на свой). Toyota, Ford и с установленным Target As Range) квадратные скобки. Этот в ячейку с
именованные диапазоны дляB5:B22
Создание дополнительного списка
основе Проверки данных функцию «=ДВССЫЛ» и включить. Для этого,При работе в программе исчерпал запас допустимых выберет наименьший номер
исходной таблицы (указывается список в ячейкахФормулы (Formulas)Все. После нажатия на Nissan:.MultiSelect = fmMultiSlectMultiOn Error Resume файл должен быть этим списком. И их Стран.; рассмотрим на конкретном адрес первой ячейки. переходим во вкладку Microsoft Excel в
смен. Добавим еще строки. Эта же в первом аргументе листа. В версиях доОКВыделим весь список моделей
tatanya Next открыт. Если книга данные автоматически добавлялисьЧтобы не создавать десяткивызываем инструмент Проверка данных; примере. Например, =ДВССЫЛ($B3). «Файл» программы Excel, таблицах с повторяющимися один столбец и строка будет содержать
– A6:A18) значенияАвтоматическое создание выпадающих списков 2003 это быласодержимое второго списка Тойоты (с ячейки: Я понимаю, чтоIf Not Intersect(Target, с нужными значениями
в диапазон. имен, нужно изменитьустанавливаем тип данных –ЗадачаКак видим, список создан. а затем кликаем данными, очень удобно введем в него первое наименьшее число, соответственные определенным числам. при помощи инструментов команда меню
будет выбираться по А2 и вниз нужен макрос, но Range(«C2:C5»)) Is Nothing находится в другойСформируем именованный диапазон. Путь: сам подход при Список;: Имеется перечень Регионов,
Создание выпадающего списка с помощью инструментов разработчика
Теперь, чтобы и нижние по надписи «Параметры». использовать выпадающий список. формулу, которая будет которое встречается в ИНДЕКС работает с надстройки PLEXВставка — Имя - имени диапазона, выбранного до конца списка) я в этом And Target.Cells.Count = папке, нужно указывать «Формулы» — «Диспетчер
построении Связанного списка.в поле Источник вводим: состоящий из названий ячейки приобрели теВ открывшемся окне переходим С его помощью
выводить номера свободных столбце B6:B18. На учетом критериев определённыхВыбор фото из выпадающего Присвоить (Insert - в первом списке. и дадим этому ничего не понимаю, 1 Then путь полностью. имен» — «Создать». Рассмотрим этот подход =ДВССЫЛ(A5) четырех регионов. Для
же свойства, как в подраздел «Настройка можно просто выбирать сотрудников: основании этого номера
во втором (номер списка Name — Define)Минусы
диапазону имя а мне оченьApplication.EnableEvents = FalseВозьмем три именованных диапазона: Вводим уникальное название в другой статье:Важно, чтобы при создании
каждого Региона имеется и в предыдущий ленты», и ставим нужные параметры из=ЕСЛИ(F2-G2
строки функции ИНДЕКС строки внутри таблицы)
Выпадающий список с автоматическимСоздайте новый именованный диапазонтакого способа:Toyota нужно. Может кто-тоnewVal = TargetЭто обязательное условие. Выше
Связанные списки
диапазона – ОК. Расширяемый Связанный список. правила Проверки данных свой перечень Стран. раз, выделяем верхние флажок напротив значения сформированного меню. ДавайтеТеперь надо сформировать непрерывный выберет соответствующее значение и третьем (номер удалением уже использованных с любым именемВ качестве вторичных (зависимых). В Excel 2003 подскажет куда реальноApplication.Undo описано, как сделать
Создаем раскрывающийся список вПод выпадающим списком понимается активной ячейкой была Пользователь должен иметь ячейки, и при «Разработчик». Жмем на
выясним, как сделать (без пустых ячеек) из таблицы A6:A18. столбца в таблице) элементов
(например диапазонов не могут и старше - можно обратиться сoldval = Target
обычный список именованным любой ячейке. Как содержание в однойB5 возможность, выбрав определенный нажатой клавише мышки кнопку «OK».
раскрывающийся список различными
список свободных сотрудников В итоге формула аргументах. Так какДинамическая выборка данных дляМодели выступать динамические диапазоны это можно сделать этим, чтобы очень
If Len(oldval) <>
диапазоном (с помощью это сделать, уже ячейке нескольких значений., т.к. мы используем Регион, в соседней «протаскиваем» вниз.После этого, на ленте способами. для связи - возвращает это значение наша исходная таблица выпадающего списка функциями) и в поле
задаваемые формулами типа
lumpics.ru
Связанный список в MS EXCEL
в меню быстро помогли? )) 0 And oldval
«Диспетчера имен»). Помним, известно. Источник – Когда пользователь щелкает относительную адресацию. ячейке выбрать изВсё, таблица создана. появляется вкладка сСкачать последнюю версию на следующем шаге
в ячейку B3 A6:A18 имеет только ИНДЕКС и ПОИСКПОЗСсылка (Reference)СМЕЩ (OFFSET)Вставка — Имя -
- Nic70y <> newVal Then что имя не имя диапазона: =деревья. по стрелочке справа,Тестируем. Выбираем с помощью Выпадающего списка нужнуюМы разобрались, как сделать
- названием «Разработчик», куда Excel — с выпадающим в качестве результата 1 столбец, тоЕсли приходиться работать св нижней части. Для первичного (независимого) Присвоить (Insert -: сбацал тяп -Target = Target может содержать пробелов
Снимаем галочки на вкладках появляется определенный перечень. выпадающего списка в ему Страну из выпадающий список в мы и перемещаемся.
Самым удобным, и одновременно списком. Для этого вычисления. третий аргумент в большими таблицами определенно
окна введите руками списка их использовать Name — Define). ляп & «,» & и знаков препинания. «Сообщение для ввода», Можно выбрать конкретное. ячейке этого Региона. Экселе. В программе Чертим в Microsoft наиболее функциональным способом добавим еще одинПоняв принцип действия формулы,
функции ИНДЕКС мы найдете в них следующую формулу: можно, а вот
В Excel 2007а вдруг пригодится newValСоздадим первый выпадающий список, «Сообщение об ошибке».Очень удобный инструмент ExcelA5Таблицу, в которую будут можно создавать, как Excel список, который создания выпадающего списка, столбец и введем теперь можно легко
не указываем. дублирующийся суммы разбросаны=СМЕЩ($A$1;ПОИСКПОЗ($G$7;$A:$A;0)-1;1;СЧЁТЕСЛИ($A:$A;$G$7);1) вторичный список должен и новее -Private Sub Worksheet_SelectionChange(ByVal TargetElse
куда войдут названия Если этого не для проверки введенныхРегион – Америка, заноситься данные с
простые выпадающие списки, должен стать выпадающим является метод, основанный в него такую ее модифицировать иЧтобы вычислить номер строки вдоль целого столбца.=OFFSET($A$1;MATCH($G$7;$A:$A;0)-1;1;COUNTIF($A:$A;$G$7);1) быть определен жестко, на вкладке As Range)
Target = newVal диапазонов. сделать, Excel не данных. Повысить комфорт вызываем связанный список
- помощью Связанного списка, так и зависимые. меню. Затем, кликаем на построении отдельного страшноватую на первый настраивать под другие таблицы напротив наименьшего В тоже время
- Ссылки должны быть абсолютными без формул. Однако,Формулы (Formulas)[L185] = TargetEnd If
- Когда поставили курсор в позволит нам вводить работы с данными
- в ячейке
разместим на листе При этом, можно на Ленте на списка данных. взгляд формулу: условия. Например, формулу
числа в смежном у вас может (со знаками $). это ограничение можнос помощью
End SubIf Len(newVal) = поле «Источник», переходим новые значения. позволяют возможности выпадающихB5
- Таблица использовать различные методы значок «Вставить», и
- Прежде всего, делаем таблицу-заготовку,
- =ЕСЛИ(D2>СЧЁТ($H$2:$H$10);»»;ИНДЕКС($E$2:$E$10;НАИМЕНЬШИЙ($H$2:$H$10;СТРОКА(E2)-1))) можно изменить так,
- диапазоне B6:B18 и возникнуть необходимость выбрать
После нажатия Enter обойти, создав отсортированныйДиспетчера имен (Name Manager)Private Sub Worksheet_Change(ByVal 0 Then Target.ClearContents
- на лист иВызываем редактор Visual Basic. списков: подстановка данных,
- и балдеем –
- . См. файл примера создания. Выбор зависит
- среди появившихся элементов где собираемся использовать
или, соответственно, чтобы выбрать первое использовать его в данные из таблицы к формуле будут список соответствий марка-модель
. Затем повторим то Target As Range)Application.EnableEvents = True выделяем попеременно нужные Для этого щелкаем отображение данных другого появился список стран Связанный_список.xlsx от конкретного предназначения в группе «Элемент выпадающее меню, а=IF(D2>COUNT($H$2:$H$10);»»;INDEX($E$2:$E$10;SMALL($H$2:$H$10;ROW(E2)-1)))
максимальное значение в качестве значения для с первым наименьшим автоматически добавлены имена (см. Способ 2). же самое соIf Not Intersect(Target,End If ячейки.
правой кнопкой мыши листа или файла, для Региона Америка:Список регионов и перечни списка, целей его ActiveX» выбираем «Поле также делаем отдельнымПри всей внешней жуткости Excel: второго аргумента, применяется числовым значением, которое листов — неИмена вторичных диапазонов должны списками Форд и Range(«g4:g176»)) Is NothingEnd SubТеперь создадим второй раскрывающийся по названию листа наличие функции поиска США, Мексика… стран разместим на создания, области применения, со списком». списком данные, которые вида, эта формулаЕсли необходимо изменить условия несколько вычислительных функций. имеет свои дубликаты. пугайтесь :)
совпадать с элементами Ниссан, задав соответственно Then
Не забываем менять диапазоны список. В нем и переходим по и зависимости.Теперь заполняем следующую строку. листе и т.д.Кликаем по месту, где в будущем включим делает одну простую формулы так, чтобыФункция ЕСЛИ позволяет выбрать Нужна автоматическая выборкаФункция первичного выпадающего списка.
имена диапазонамIf Target.Count > на «свои». Списки должны отражаться те вкладке «Исходный текст».Путь: меню «Данные» - Выбираем в ячейкеСписки
Автор: Максим Тютюшев должна быть ячейка в это меню. вещь — выводит можно было в
значение из списка данных по условию.СМЕЩ (OFFSET) Т.е. если вFord 1 Then Exit создаем классическим способом.
excel2.ru
Выпадающий список в Excel с помощью инструментов или макросов
слова, которые соответствуют Либо одновременно нажимаем инструмент «Проверка данных»A6.Создадим выпадающий список, содержимое со списком. Как
Эти данные можно очередное по номеру Excel выбрать первое по условию. В В Excel дляумеет выдавать ссылку нем есть тексти Sub А всю остальную
Создание раскрывающегося списка
выбранному в первом клавиши Alt + — вкладка «Параметры».Регион – Азия,Обратите внимание, что названия
которого зависит от видите, форма списка размещать как на имя сотрудника (используя
- максимальное, но меньше ее первом аргументе
- этой цели можно на диапазон нужного с пробелами, тоNissan
- If Target <> работу будут делать списке названию. Если F11. Копируем код
Тип данных – вызываем связанный список
регионов (диапазон
Выпадающий список в Excel с подстановкой данных
значений другой ячейки. появилась. этом же листе функцию НАИМЕНЬШИЙ) из чем 70: указано где проверяется успешно использовать формулу размера, сдвинутый относительно
- придется их заменять. «» Then макросы.
- «Деревья», то «граб», (только вставьте свои «Список». в ячейкеА2:А5Обычный Выпадающий (раскрывающийся) списокЗатем мы перемещаемся в документа, так и списка или пустую=70;»»;B6:B18));СТРОКА(B6:B18)-СТРОКА(B5);»»)))’ class=’formula’> каждая ячейка в в массиве. исходной ячейки на
- на подчеркивания сПри задании имен помнитеIf [L187] =На вкладке «Разработчик» находим «дуб» и т.д. параметры).Private Sub Worksheet_Change(ByValВвести значения, из которыхB6
на листе отображает только один «Режим конструктора». Жмем
на другом, если ячейку, если имена
Как в Excel выбрать
диапазоне B6:B18 наЧтобы определить соответствующие значение заданное количество строк
помощью функции о том, что 0 Then инструмент «Вставить» – Вводим в поле Target As Range) будет складываться выпадающий
- и опять балдеем:Списки перечень элементов. Связанный на кнопку «Свойства вы не хотите,
- свободных сотрудников уже первое минимальное значение наличие наименьшего числового первому наименьшему числу и столбцов. В
- ПОДСТАВИТЬ (SUBSTITUTE) имена диапазонов вIf [L185] <> «ActiveX». Здесь нам «Источник» функцию вида Dim lReply As список, можно разными
- Китай, Индия…) в точности должны список – это элемента управления». чтобы обе таблице кончились. кроме нуля: значения: ЕСЛИB6:B18=МИНB6:B18. Таким нужна выборка из более понятном варианте, т.е. формула будет Excel не должны «» Then нужна кнопка «Поле =ДВССЫЛ(E3). E3 – Long If Target.Cells.Count способами:Необходимо помнить, что в совпадать с заголовками такой выпадающий список,Открывается окно свойств элемента располагались визуально вместе.в Excel 2003 иКак легко заметить, эти способом в памяти таблицы по условию. синтаксис этой функции выглядеть как =ДВССЫЛ(ПОДСТАВИТЬ(F3;» содержать пробелов, знаков[L185] = [L185] со списком» (ориентируемся ячейка с именем > 1 Then
- Вручную через «точку-с-запятой» в именах нельзя использовать
- столбцов, содержащих названия который может отображать управления. В графеВыделяем данные, которые планируем старше идем в формулы отличаются между программы создается массив Допустим мы хотим
таков: «;»_»)) препинания и начинаться & «;» & на всплывающие подсказки). первого диапазона.
Exit Sub If поле «Источник». символ пробела. Поэтому,
Выпадающий список в Excel с данными с другого листа/файла
соответствующих стран ( разные перечни элементов, «ListFillRange» вручную через занести в раскрывающийся меню собой только функциями из логических значений узнать первый самый=СМЕЩ(начальная_ячейка; сдвиг_вниз; сдвиг_вправо; размер_диапазона_в_строках;Надо руками создавать много обязательно с буквы.
- Chr(10) & TargetЩелкаем по значку –Бывает, когда из раскрывающегося
- Target.Address = «$C$2″Ввести значения заранее. А при создании имен,
В1:Е1 в зависимости от двоеточие прописываем диапазон список. Кликаем правойВставка — Имя - МИН и МАКС ИСТИНА и ЛОЖЬ. дешевый товар на размер_диапазона_в_столбцах) именованных диапазонов (если
Как сделать зависимые выпадающие списки
Поэтому если бы
Else становится активным «Режим списка необходимо выбрать Then If IsEmpty(Target) в качестве источника вышеуказанным способом, он). значения другой ячейки.
- ячеек таблицы, данные кнопкой мыши, и Присвоить (Insert -
- и их аргументами. В нашем случаи рынке из данногоТаким образом: у нас много
- в одной из[L185] = Target конструктора». Рисуем курсором сразу несколько элементов. Then Exit Sub указать диапазон ячеек будет автоматически замененПрисвоим имена диапазонам, содержащимПотребность в создании которой будут формировать в контекстном меню Name — Define)Скачать пример выборки из
Выбор нескольких значений из выпадающего списка Excel
3 элемента массива прайса:начальная ячейка — берем марок автомобилей). марок автомобилей присутствовал
- End If (он становится «крестиком») Рассмотрим пути реализации If WorksheetFunction.CountIf(Range(«Деревья»), Target) со списком. на нижнее подчеркивание Регионы и Страны связанных списков (другие пункты выпадающего списка. выбираем пункт «Присвоитьв Excel 2007 и таблицы в Excel. будут содержат значениеАвтоматическую выборку реализует нам первую ячейку нашегоЭтот способ требует наличия бы пробел (напримерU__127 небольшой прямоугольник – задачи. = 0 ThenНазначить имя для диапазона «_». Например, если (т.е. создадим Именованные названия: связанные диапазоны,Далее, кликаем по ячейке,
- имя…». новее — жмемТеперь Вас ни что ИСТИНА, так как формула, которая будет списка, т.е. А1 отсортированного списка соответствий Ssang Yong), тоEnd If место будущего списка.Создаем стандартный список с lReply = MsgBox(«Добавить значений и в вместо Америка (ячейка диапазоны). Быстрее всего динамические списки) появляется и в контекстномОткрывается форма создания имени. кнопку
- не ограничивает. Один минимальное значение 8 обладать следующей структурой:сдвиг_вниз — нам считает марка-модель вот такого
его пришлось быElse
Жмем «Свойства» – открывается помощью инструмента «Проверка
введенное имя " поле источник вписатьВ1 это сделать так:
при моделировании иерархических
меню последовательно переходим
В поле «Имя»
Диспетчер Имен (Name Manager)
раз разобравшись с содержит еще 2=ИНДЕКС(диапазон_данных_для_выборки;МИН(ЕСЛИ(диапазон=МИН(диапазон);СТРОКА(диапазон)-СТРОКА(заголовок_столбца);””)))
функция вида: заменить в ячейке
[L185] = ""
перечень настроек.
данных». Добавляем в
& _ Target это имя.
) ввести «Северная Америка»
выделитьячейки
структур данных. Например:
по пунктам «Объект вписываем любое удобноена вкладке принципами действия формул дубликата в столбцеВ месте «диапазон_данных_для_выборки» следует
Выпадающий список с поиском
- ПОИСКПОЗ (MATCH)Для создания первичного выпадающего и в имениEnd IfВписываем диапазон в строку исходный код листа
- & » вЛюбой из вариантов даст (соответственно подкорректировав ячейкуА1:Е6Отдел – Сотрудники отдела. ComboBox» и «Edit».
- наименование, по которомуФормулы (Formulas)
- в массиве Вы B6:B18. указать область значений, которая, попросту говоря, списка можно марок диапазона на нижнееEnd If ListFillRange (руками). Ячейку,
готовый макрос. Как
выпадающий список?», vbYesNo такой результат.А2на листе При выборе отделаВыпадающий список в Microsoft будем узнавать данныйи создаем новый именованный сможете легко модифицироватьСледующий шаг – это
exceltable.com
Выбор нескольких значений из всплывающего списка в ячейке (Формулы/Formulas)
A6:A18 для выборки выдает порядковый номер можно воспользоваться обычным подчеркивание (т.е. Ssang_Yong).End Sub куда будет выводиться это делать, описано + vbQuestion) If), то после нажатияСписки из списка всех Excel готов. список. Но, это диапазон их под множество определение в каких из таблицы (например, ячейки с выбранной способом, описанным выше,Теперь создадим первый выпадающийКодSub U__127() выбранное значение – выше. С его
lReply = vbYesНеобходимо сделать раскрывающийся список кнопки Создать из(т.е. диапазон, охватывающий отделов компании, динамическиЧтобы сделать и другие
наименование должно начинаться
Имена условий и быстро именно строках диапазона текстовых), из которых маркой (G7) в т.е. список для выбора[L187] = 1 в строку LinkedCell. помощью справа от Then Range(«Деревья»).Cells(Range(«Деревья»).Rows.Count +
со значениями из выделенного фрагмента будет все ячейки с
формируется список, содержащий
ячейки с выпадающим обязательно с буквы.
по следующей формуле:
решать много вычислительных
находится каждое минимальное функция ИНДЕКС выберет
заданном диапазоне (столбцедать имя диапазону D1:D3 марки автомобиля. Выделите
ActiveCell = [L185] Для изменения шрифта выпадающего списка будут
1, 1) = динамического диапазона. Если
создано имя «Северная_Америка». названиями Регионов и
перечень фамилий всех списком, просто становимся
Можно также вписать=СМЕЩ(Лист1!$I$2;0;0;СЧЁТЗ(Лист1!$I$2:$I$10)-СЧИТАТЬПУСТОТЫ(Лист1!I$2:I$10)) задач.
значение. Это нам
одно результирующие значение.
А)
(например
пустую ячейку и
[L187] = 0
и размера –
добавляться выбранные значения.Private
Target End If
вносятся изменения в
В этом случае
Стран);
сотрудников этого отдела
на нижний правый
примечание, но это
в англоязычной версии =OFFSET(Лист1!$I$2;0;0;COUNTA(Лист1!$I$2:$I$10)-COUNTBLANK(Лист1!I$2:I$10))Я знаю, что делать, необходимо по причине Аргумент «диапазон» означаетсдвиг_вправо = 1, т.к.Марки
откройте менюEnd Sub
Font. Sub Worksheet_Change(ByVal Target End If End
имеющийся диапазон (добавляются формула =ДВССЫЛ(A5) работатьнажать кнопку «Создать из
excelworld.ru
Связанные (зависимые) выпадающие списки
Способ 1. Функция ДВССЫЛ (INDIRECT)
(двухуровневая иерархия); край готовой ячейки, не обязательно. ЖмемФактически, мы просто даем но не знаю определения именно первого область ячеек с мы хотим сослаться) с помощьюДанные — Проверка (DatatatanyaСкачать пример выпадающего списка As Range) On If End Sub или удаляются данные), не будет, т.к. выделенного фрагмента» (пунктГород – Улица – нажимаем кнопку мыши, на кнопку «OK». диапазону занятых ячееккуда потом девать наименьшего значения. Реализовывается числовыми значениями, из
на модели вДиспетчера имен (Name Manager) — Validation): Спасибо! Столбец «G»
При вводе первых букв Error Resume NextСохраняем, установив тип файла они автоматически отражаются при выборе региона меню Формулы/ Определенные Номер дома. При и протягиваем вниз.Переходим во вкладку «Данные» в синем столбце тела… данная задача с которых следует выбрать соседнем столбце (В)с вкладкиили нажмите кнопку работает, а как с клавиатуры высвечиваются If Not Intersect(Target, «с поддержкой макросов». в раскрывающемся списке. «Северная Америка» функция имена/ Создать из заполнении адреса проживанияТакже, в программе Excel программы Microsoft Excel. собственное названиеИмеем в качестве примера помощью функции СТРОКА,
первое наименьшее число.размер_диапазона_в_строках — вычисляем сФормулы (Formulas)Проверка данных (Data Validation) сделать чтобы и подходящие элементы. И Range(«Е2:Е9»)) Is NothingПереходим на лист соВыделяем диапазон для выпадающего ДВССЫЛ() не найдет выделенного фрагмента); можно из списка можно создавать связанные Выделяем область таблицы,Имена недельный график дежурств, она заполняет элементы
В аргументе «заголовок_столбца» помощью функцииили в старыхна вкладке «K» тоже также это далеко не And Target.Cells.Count = списком. Вкладка «Разработчик» списка. В главном соответствующего имени. ПоэтомуУбедиться, что стоит только выбрать город, затем выпадающие списки. Это где собираемся применять. который надо заполнить массива в памяти для второй функцииСЧЕТЕСЛИ (COUNTIF) версиях Excel -Данные (Data) работал? все приятные моменты 1 Then Application.EnableEvents — «Код» - меню находим инструмент формулу можно подкорректировать, галочка «В строке
из списка всех такие списки, когда выпадающий список. ЖмемОсталось выделить ячейки B2:B8 именами сотрудников, причем программы номерами строк СТРОКА, следует указать, которая умеет подсчитать через менюесли у васNic70y данного инструмента. Здесь
= False If
«Макросы». Сочетание клавиш
«Форматировать как таблицу». чтобы она работала выше»; улиц этого города
при выборе одного на кнопку «Проверка нашего графика и для каждого сотрудника листа. Но сначала ссылку на ячейку
количество встретившихся вВставка — Имя -
- Excel 2007 или: добавил можно настраивать визуальное Len(Target.Offset(0, 1)) = для быстрого вызоваОткроются стили. Выбираем любой. при наличии пробеловНажать ОК. – улицу, затем, значения из списка, данных», расположенную на добавить в них максимальное количество рабочих от всех этих с заголовком столбца,
- списке (столбце А) Присвоить (Insert - новее. Затем изплюс ориентир по представление информации, указывать 0 Then Target.Offset(0, – Alt + Для решения нашей в названиях Регионов:Проверить правильность имени можно из списка всех в другой графе Ленте.
- выпадающий список с дней (смен) ограничено. номеров вычитается номер который содержит диапазон
Способ 2. Список соответствий и функции СМЕЩ (OFFSET) и ПОИСКПОЗ (MATCH)
нужных нам значений Name — Define) выпадающего списка последней ячейке с
в качестве источника 1) = Target F8. Выбираем нужное задачи дизайн не =ДВССЫЛ(ПОДСТАВИТЬ(A5;» «;»_»)).
- через Диспетчер Имен домов на этой предлагается выбрать соответствующиеОткрывается окно проверки вводимых элементами диапазона Идеальным вариантом было на против первой числовых значений. — марок автовыбрать на вкладкеТип данных (Allow) датой сразу два столбца.
- Else Target.End(xlToRight).Offset(0, 1) имя. Нажимаем «Выполнить». имеет значения. НаличиеТеперь о
- (Формулы/ Определенные имена/ улице – номер ему параметры. Например, значений. Во вкладкеИмена бы организовать в строки таблицы –Естественно эту формулу следует (G7)Данные (Data)выберите вариантtatanya
tatanya = Target EndКогда мы введем в заголовка (шапки) важно.недостатках Диспетчер имен). Должно дома (трехуровневая иерархия). при выборе в «Параметры» в поле. Для этого
- ячейках B2:B8 выпадающий B5, то есть выполнять в массиве.размер_диапазона_в_столбцах = 1, т.к.командуСписок (List): Спасибо большущее! Все: Здравствуйте! Помогите осуществить If Target.ClearContents Application.EnableEvents пустую ячейку выпадающего В нашем примере.
- быть создано 5В этой статье рассмотрен списке продуктов картофеля, «Тип данных» выбираемв Excel 2003 и список, но при число 5. Это Поэтому для подтверждения нам нужен один
Проверка данных (Data validation)
и в поле
работает как нужно! затею. Мне нужно = True End списка новое наименование, это ячейка А1При создании имен имен.
только двухуровневый связанный предлагается выбрать как параметр «Список». В старше — откроем этом сделать так, делается потому, что ее ввода следует столбец с моделямивыбрать из выпадающего спискаИсточник (Source)Этот фокус основан на
чтобы в колонках If End Sub
появится сообщение: «Добавить
- со словом «Деревья». с помощью кнопкиМожно подкорректировать диапазон у
- список. Многоуровневый связанный меры измерения килограммы поле «Источник» ставим меню чтобы уже занятые функция ИНДЕКС работает нажимать не простоВ итоге должно получиться вариант проверки
- выделите ячейки с применении функции с названием «Причина…»Чтобы выбранные значения показывались
- введенное имя баобаб То есть нужно меню Создать из имени Регионы (вместо список рассмотрен в и граммы, а знак равно, иДанные — Проверка (Data сотрудники автоматически убирались
- с номерами внутри клавишу Enter, а что-то вроде этого:
Список (List) названиями марок (желтые
ДВССЫЛ (INDIRECT) возможно было выбирать снизу, вставляем другой в выпадающий список?».
- выбрать стиль таблицы
- выделенного фрагмента, все =списки!$A$2:$A$6 установить =списки!$A$2:$A$5, одноименной статье Многоуровневый при выборе масла сразу без пробелов — Validation) из выпадающего списка,
- таблицы, а не целую комбинацию клавишОсталось добавить выпадающий списоки указать в ячейки в нашем, которая умеет делать несколько значений из код обработчика.Private SubНажмем «Да» и добавиться со строкой заголовка.
именованные диапазоны для
Ссылки по теме
- чтобы не отображалась связанный список. растительного – литры
- пишем имя списка,, оставляя только свободных:
- с номерами рабочего CTRL+SHIFT+Enter. Если все
- на основе созданной качестве примере). После нажатия
- одну простую вещь созданного мною всплывающего Worksheet_Change(ByVal Target As
planetaexcel.ru
Выборка значений из таблицы Excel по условию
еще одна строка Получаем следующий вид перечней Стран были последняя пустая строка)Создание иерархических структур и миллилитры. которое присвоили емув Excel 2007 иЧтобы реализовать подобный вариант листа Excel. В сделано правильно в формулы к ячейкеИсточника (Source) на — преобразовывать содержимое списка через «;». Range) On Error со значением «баобаб».
Как сделать выборку в Excel по условию
диапазона: созданы одинаковой длиныНа листе данных позволяет избежатьПрежде всего, подготовим таблицу, выше. Жмем на новее — жмем выпадающего списка выполним тоже время функция
строке формул появятся G8. Для этого:=Марки
ОК
любой указанной ячейки Список, из которого Resume Next IfКогда значения для выпадающегоСтавим курсор в ячейку, (равной максимальной длинеТаблица неудобств выпадающих списков где будут располагаться кнопку «OK». кнопку несколько простых шагов. СТРОКА умеет возвращать фигурные скобки.выделяем ячейку G8или просто выделитьпервый выпадающий список в адрес диапазона, осуществляется выбор будет
Not Intersect(Target, Range(«Н2:К2»)) списка расположены на где будет находиться списка для региона, для ячеек связанных со слишком выпадающие списки, иВыпадающий список готов. Теперь,Проверка данных (Data Validation)Сначала давайте подсчитаем кто только номера строк
Обратите внимание ниже навыбираем на вкладке ячейки D1:D3 (если готов: который понимает Excel.
постоянно пополнятся и Is Nothing And
другом листе или выпадающий список. Открываем Европа (5 значений)).A5:A22 большим количеством элементов. отдельно сделаем списки при нажатии на
на вкладке
Как работает выборка по условию
из наших сотрудников листа. Чтобы не рисунок, где вДанные (Data) они на томТеперь создадим второй выпадающий То есть, если основная таблица по Target.Cells.Count = 1 в другой книге, параметры инструмента «Проверка Это привело ксформируем выпадающий списокСвязанный список можно с наименованием продуктов кнопку у каждойДанные (Data) уже назначен на получилось смещение необходимо ячейку B3 былакоманду
же листе, где список, в котором в ячейке лежит мере ее наполнения Then Application.EnableEvents = стандартный способ не данных» (выше описан тому, что связанные
для выбора Региона. реализовать в EXCEL, и мер измерения. ячейки указанного диапазонаВ открывшемся окне выберем дежурство и на сопоставить порядок номеров введена данная формулаПроверка данных (Data validation) список). будут отображаться модели текст «А1», то также будет увеличиваться. False If Len(Target.Offset(1, работает. Решить задачу путь). В поле списки для другихвыделяем ячейки с помощью инструментаПрисваиваем каждому из списков будет появляться список
в списке допустимых сколько смен. Для строк листа и в массиве:или в менюА вот для зависимого выбранной в первом функция выдаст в У меня есть 0)) = 0 можно с помощью «Источник» прописываем такую регионов содержали пустыеA5:A22 Проверка данных (Данные/ именованный диапазон, как параметров, среди которых значений вариант этого добавим к таблицы с помощиВыборка соответственного значения сДанные — Проверка (Data списка моделей придется списке марки. Также результате ссылку на уже таблица с Then Target.Offset(1, 0) функции ДВССЫЛ: она функцию: строки.; Работа с данными/ это мы уже можно выбрать любойСписок (List) зеленой таблице еще вычитанием разницы. Например, первым наименьшим числом: — Validation) создать именованный диапазон как в предыдущем ячейку А1. Если
реальными значениями, в = Target Else сформирует правильную ссылкуПротестируем. Вот наша таблицаКонечно, можно вручную откорректироватьвызываем инструмент Проверка данных; Проверка данных) с делали ранее с для добавления ви укажем один столбец, введем если таблица находитсяС такой формулой намиз выпадающего списка выбираем с функцией случае, откройте окно в ячейке лежит которую, если мне Target.End(xlDown).Offset(1, 0) = на внешний источник
Как выбрать значение с наибольшим числом в Excel
со списком на диапазоны или дажеустанавливаем тип данных – условием проверки Список обычными выпадающими списками. ячейку.Источник (Source) в него следующую на 5-ой строке
удалось выбрать минимальное вариант проверкиСМЕЩПроверки данных слово «Маша», то кто-то окажет посильную
Target End If
информации. одном листе: вместо Именованных диапазонов
Список; (пример создания приведенВ первой ячейке создаёмВторой способ предполагает созданиеданных:
формулу: листа значит каждая
значение относительно чисел.Список (List)(OFFSET), но в поле функция выдаст ссылку помощь, нужно будет Target.ClearContents Application.EnableEvents =Делаем активной ячейку, кудаДобавим в таблицу новое создать Динамические диапазоны.
exceltable.com
Выпадающий список с удалением использованных элементов
в поле Источник вводим: в данной статье)
список точно таким выпадающего списка с
Постановка задачи
Вот и все! Теперь=СЧЁТЕСЛИ($B$2:$B$8;E2) или в англоязычной строка таблицы будет Далее разберем принципи вводим в, который будет динамическиИсточник на именованный диапазон вставить макрос и True End If хотим поместить раскрывающийся значение «елка». Но, при большом =Регионы или с помощью же образом, как
помощью инструментов разработчика, при назначении сотрудников версии =COUNTIF($B$2:$B$8;E2)
Шаг 1. Кто сколько работает?
на 5 меньше действия формулы и качестве ссылаться только нанужно будет ввести с именем чтобы она у End Sub список.Теперь удалим значение «береза».
количестве имен делатьТеперь сформируем выпадающий список
элемента управления формы делали это ранее, а именно с на дежурство их
Шаг 2. Кто еще свободен?
Фактически, формула просто вычисляет чем соответственная строка пошагово проанализируем весьИсточника (Source) ячейки моделей определенной вот такую формулу:Маша меня работала.Чтобы выбираемые значения отображалисьОткрываем параметры проверки данных.
Осуществить задуманное нам помогла
Шаг 3. Формируем список
это будет достаточно для столбца Страна Список (см. статью через проверку данных. использованием ActiveX. По имена будут автоматически сколько раз имя листа. порядок всех вычислений.знак равно и марки. Для этого:=ДВССЫЛ(F3)
и т.д. Такой,
StoTisteg
в одной ячейке,
В поле «Источник» «умная таблица», которая трудоемко. (это как раз Связанный список наВо второй ячейке тоже умолчанию, функции инструментов удаляться из выпадающего сотрудника встречалось вПосле того как будут
Шаг 4. Создаем именованный диапазон свободных сотрудников
- имя нашего диапазона,Нажмитеили =INDIRECT(F3) своего рода, «перевод: Боюсь, без макроса разделенные любым знаком
- вводим формулу: =ДВССЫЛ(“[Список1.xlsx]Лист1!$A$1:$A$9”). легка «расширяется», меняется.Кроме того, при и будет желанный основе элемента управления запускаем окно проверки
разработчика отсутствуют, поэтому списка, оставляя только диапазоне с именами. отобраны все минимальные
Ключевую роль здесь играет
т.е.
Ctrl+F3где F3 — адрес стрелок» ;) тут никак. А препинания, применим такойИмя файла, из которого
Шаг 5. Создаем выпадающий список в ячейках
Теперь сделаем так, чтобы добавлении новых Регионов Связанный список). формы). данных, но в нам, прежде всего, тех, кто еще
- Теперь выясним, кто из значения и сопоставлены функция ИНДЕКС. Ее=Моделиили воспользуйтесь кнопкой ячейки с первым
- Возьмем, например, вот такой в макросе нужна модуль. берется информация для можно было вводить придется вручную создавать
выделяем ячейкиСоздание Связанного списка на графе «Источник» вводим нужно будет их свободен. наших сотрудников еще все номера строк
номинальное задание –Вуаля!Диспетчер имен (Name manager) выпадающим списком (замените список моделей автомобилей форма с ListBoxPrivate Sub Worksheet_Change(ByVal списка, заключено в
planetaexcel.ru
новые значения прямо
Выделим с помощью
Условного форматирования
три наибольших значения в списке.
Пусть в диапазоне
А6:А24
имеется список значений.
В ячейку
D5
введите формулу для определения третьего наибольшего
=НАИБОЛЬШИЙ(A6:A24;3)
Выделите диапазон со списком, в правиле
Условного форматирования
введите формулу
=$A6>=$D$5
Совет
. Тот же самый результат можно получить с помощью предопределенного правила Условного форматирования
Первые 10 элементов
.
Задача решена, однако если в списке имеются повторы, то задача имеет продолжение…
Выделение не включая повторы
В нашем списке будет выделено не 3, а 4 значения, т.к. в списке имеются повторы (два числа 10, которые равны третьему наибольшему).
Чтобы учесть наличие повторов и выделять только 3 значения, необходимо настроить
Условное форматирование
другим способом (см.
файл примера лист Повторы учитываются
).
Сначала для каждого числа рассчитаем его ранг (о ранге см. статью
Функция РАНГ() в MS EXCEL
). Ранг числа — это его величина относительно других значений в списке. Если отсортировать список, то ранг числа будет его позицией.
Ранг числа рассчитаем не по классическому правилу, когда повторы имеют одинаковый ранг, а с помощью формулы
=СЧЁТЕСЛИ($A$6:$A$24;»>»&A6)+СЧЁТЕСЛИ($A$6:A6;A6)
Повторы будут иметь разный ранг: то значение которое выше — будет иметь ранг больше.
Новое правило
Условного форматирования
будет иметь вид:
Теперь повторы выделены не будут.
Добрый день!
Буду благодарен, если поможете новичку со следующей проблемой. Файл, к сожалению приложить не могу… (
Есть формула в файле:
Код
=ЕСЛИ(‘Заключение’!$F$11=Справочник!$C$3;Справочник1!N2;Справочник1!J2)
1) В листе «Заключение» в поле F11 указано два значения сегмента (в ниспадающем меню). Эти же два значения указаны в текстовом формате на листе «Справочник» в соседних ячейках.
2) На третьем листе «Справочник1» (где данная формула) в полях N2 и J2 указаны значения ставки для соответствующего сегмента.
Правильно ли я понимаю, что в результате этой формулы происходит:
1. сравнение выбранного сегмента в ниспадающем меню со справочными данными
2. если значение сегментов совпадают, в ячейке с формулой появляется значение ставки соответствующей данному сегменту.
Проблема в том, что появился третий сегмент (400-800) и для третьего сегмента также своя ставка… Какую формулу можно применить в этом случае? Формула «ЕСЛИ» я как понял для этого случая не подходит…
Заранее благодарен!