Формула запроса в excel

Excel для Microsoft 365 Excel 2021 Excel 2019 Excel 2016 Excel 2013 Excel 2010 Еще…Меньше

Просто с помощью редактора Power Query вы создавали формулы Power Query. Давайте посмотрим, как работает Power Query, посмотрев на него. Чтобы узнать, как обновлять или добавлять формулы, просто посмотрите редактор Power Query в действии.  Вы даже можете скатить собственные формулы с помощью расширенных редакторов.           

Редактор Power Query предоставляет запросы и возможности формирования данных для Excel, которые можно использовать для повторного формирования данных из различных источников. Чтобы отобразить окно редактора Power Query,импортировать данные из внешних источников на Excel, выбрать ячейку в данных, а затем выбрать запрос >Изменить. Ниже следующую сводку основных компонентов.

Части редактора запросов

  1. Лента редактора Power Query, используемая для формировании данных

  2. The Queries pane that you use to locate data sources and tables

  3. Контекстные меню, удобные для быстрого доступа к командам на ленте

  4. Предварительный просмотр данных с результатами действий, примененных к данным

  5. В области Параметры запроса со списком свойств и каждого шага запроса

При этом каждый шаг запроса основан на формуле, которая отображается в панели формул.

Пример формулы в редакторе запросов

Иногда нужно изменить или создать формулу. В формулах используется язык формул Power Query, который можно использовать для создания как простых, так и сложных выражений. Дополнительные сведения о синтаксисе, аргументах, замечаниях, функциях и примерах см. в power Query M formula language.

Используя в качестве примера список футбольного мяча, используйте Power Query, чтобы получить необработанные данные, найденные на веб-сайте, и превратить их в хорошо отформатированную таблицу. Посмотрите, как создаются шаги запроса и соответствующие формулы для каждой задачи в области запроса Параметры в области Примененные шаги и в области формул.

Браузер не поддерживает видео.

Последовательность действий

  1. Чтобы импортировать данные, выберите данные > из Интернета,введите «http://en.wikipedia.org/wiki/UEFA_European_Football_Championship» в поле URL-адрес, а затем выберите ОК.

  2. В диалоговом окне Навигатор выберите таблицу Результаты [Изменить] слева, а затем выберите Преобразовать данные в нижней части. Появится редактор Power Query.

  3. Чтобы изменить имя запроса по умолчанию, в области запроса Параметры в области Свойства удалите «Результаты [Изменить]», а затем введите «ЫК».

  4. Чтобы удалить ненужные столбцы, выберите первый, четвертый и пятый столбцы, а затем выберите главная> удалить столбец > удалить другие столбцы.

  5. Чтобы удалить ненужные значения, выберите Столбец1, выберите Главная> Заменитьзначения , введите «сведения» в поле Значения для поиска, а затем выберите ОК.

  6. Чтобы удалить строки со словом «Год», выберите стрелку фильтра в столбце «Столбец1»,снимите его рядом с полем «Год», а затем выберите ОК.

  7. Чтобы переименовать столбцы, дважды щелкните каждый из них, а затем измените «Столбец1» на «Год», «Столбец4» на «Winner» и «Столбец5» на «Итоговая оценка».

  8. Чтобы сохранить запрос, выберите главная >Закрыть & загрузить.

Результат

Результаты по walkthrough (первые несколько строк)

В следующей таблице содержится сводка каждого примененного шага и соответствующей формулы.

Шаг запроса и задача

Формула

Source

Подключение к веб-источнику данных

= Web.Page(Web.Contents(«http://en.wikipedia.org/wiki/UEFA_European_Football_Championship»))

Navigation

Выбор таблицы

=Source{2}[Data]

Changed Type

Изменение типов данных (которые Power Query делает автоматически)

= Table.TransformColumnTypes(Data2,{{«Column1», type text}, {«Column2», type text}, {«Column3», type text}, {«Column4», type text}, {«Column5», type text}, {«Column6», type text}, {«Column7», type text}, {«Column8», type text}, {«Column9», type text}, {«Column10», type text}, {«Column11», type text}, {«Column12», type text}})

Удалены другие столбцы

Удаление ненужных столбцов

= Table.SelectColumns(#»Changed Type»,{«Column1», «Column4», «Column5»})

Заменено значение

Замена значений для очистки значений в выбранном столбце

= Table.ReplaceValue(#»Removed Other Columns»,»Details»,»»,Replacer.ReplaceText,{«Column1»})

Отфильтрованные строки

Фильтрация значений в столбце

= Table.SelectRows(#»Replaced Value», each ([Column1] <> «Year»))

Переименованные столбцы

Измененные заглавные столбцы должны быть осмысленными

= Table.RenameColumns(#»Filtered Rows»,{{«Column1», «Year»}, {«Column4», «Winner»}, {«Column5», «Final Score»}})

Важно    Будьте внимательны при редактировании действий«Источник»,»Навигация» и «Измененный тип», поскольку они создаются Power Query для определения и создания источника   данных.

Показ или скрытие панели формул

По умолчанию отображается формула, но если она не видна, ее можно отыгрывать.

  • Выберите Просмотр >макета > формул.

Edit a formula in the formula bar

  1. Чтобы открыть запрос, найдите ранее загруженную из редактора Power Query, выберем ячейку в данных и выберите запрос> Изменить. Дополнительные сведения см. в этойExcel.

  2. В области Параметры запроса в области Примененныешаги выберите шаг, который вы хотите изменить.

  3. В области формул найдите и измените значения параметров, а затем нажмите Значок "Ввод" слева от панели формул в Power Query ввод. Например, измените эту формулу, чтобы сохранить столбец 2:

    До: = Table.SelectColumns(#»Changed Type»,{«Column4», «Column1», «Column5»})
    после:= Table.SelectColumns(#»Changed Type»,{«Column2», «Column4», «Column1», «Column5»})

  4. Нажмите значок Значок "Ввод" слева от панели формул в Power Query или нажмите ввод, чтобы увидеть новые результаты в режиме предварительного просмотра данных.

  5. Чтобы увидеть результат на Excel, выберите Главная > Закрыть & Загрузка.

Создание формулы в панели формул

Для простого примера формулы преобразуем текстовое значение в нужный с помощью функции Text.Proper.

  1. Чтобы открыть пустой запрос, в Excel выберите Данные> Получить данные > из других источников > Пустой запрос. Дополнительные сведения см. в этойExcel.

  2. Введите в формулу=Text.Proper(«text value»), а затем нажмите Значок "Ввод" слева от панели формул в Power Query ввод.

    Результаты отображаются в режиме предварительного просмотра данных.

  3. Чтобы увидеть результат на Excel, выберите Главная > Закрыть & Загрузка.

Результат:

Текстовое значение

 При создании формулы Power Query проверяет ее синтаксис. Однако при вставке, переусортовке или удалении промежуточного шага запроса это может привести к разрыву запроса.  Всегда проверять результаты в режиме предварительного просмотра данных.

Важно    Будьте внимательны при редактировании действий«Источник»,»Навигация» и «Измененный тип», поскольку они создаются Power Query для определения и создания источника   данных.

Редактирование формулы в диалоговом окне

Этот способ позволяет использовать диалоговое окно, которое зависит от шага. Синтаксис формулы знать не нужно.

  1. Чтобы открыть запрос, найдите ранее загруженную из редактора Power Query, выберем ячейку в данных и выберите запрос> Изменить. Дополнительные сведения см. в этойExcel.

  2. В области Параметры запроса в области Примененные шаги щелкните значок Изменить Параметры Значок "Параметры" действия, который вы хотите изменить, или щелкните его правой кнопкой мыши и выберите изменить Параметры .

  3. В диалоговом окне внести изменения и нажмем ОК.

Вставка шага

После выполнения шага запроса, в который были добавлены данные, шаг запроса добавляется под текущим этапом запроса. но при вставке шага запроса в середине шагов может возникнуть ошибка в последующих действиях. При попытке вставить новый шаг При попытке вставить новый шаг в Power Query отображается предупреждение Вставка шага, при этом изменяются поля, например имена столбцов, которые используются на всех шагах, которые следуют за ним.

  1. В области Параметры запроса в области Примененныешаги выберите шаг, который должен предшествовать новому шагу и соответствующей формуле.

  2. Выберите значок Добавить Значок функции слева от панели формул. Можно также щелкнуть правой кнопкой мыши шаг и выбрать Вставить шаг после.Новая формула будет создана в формате := <nameOfTheStepToReference>

    , например =Production.WorkOrder.

  3. Введите новую формулу в формате:

    =Class.Function(ReferenceStep[,otherparameters])

    Например, предположим, что у вас есть таблица со столбцом Gender и вы хотите добавить столбец со значением «Ms». или «г-н», в зависимости от пола человека. Формула будет:

    =Table.AddColumn(<ReferencedStep>, «Prefix», each if [Gender] = «F» then «Ms.» else «Mr.»)

Пример формулы

Переусортовка шага

  • В области Запросы Параметры в области Примененныешаги щелкните правой кнопкой мыши шаг, а затем выберите Вверх илиВниз.

Удаление шага

  • Щелкните значок Удаление шага слева от шага или щелкните его правой кнопкой мыши и выберите удалить или Удалить до конца. Значок Удаление шага удаления также доступен слева от панели формул.

В этом примере мы преобразуем текст в столбце в нужный с помощью сочетания формул в расширенный редактор. 

Например, у вас есть Excel «Заказы» со столбцом ProductName, который нужно преобразовать в нужный пример. 

До:

Перед

После:

Шаг 4. Результат

При создании расширенных запросов создается ряд шагов формулы запроса на основе выражения let.  Используйте выражение let для назначения имен и вычисления значений, на которые затем ссылается предложение in, которое определяет шаг. Этот пример возвращает тот же результат, что и в разделе «Создание формулы в панели формул».

let  

    Source = Text.Proper(«hello world»)

in  

    Source  

Вы увидите, что каждый шаг строится на основе предыдущего шага, ссылаясь на шаг по имени. Напоминаем, что в языке формул Power Query с чувствительностью к делу.

Этап 1. Открытие расширенных редакторов

  1. В Excel выберите Данные> Получить данные > другие источники > пустой запрос. Дополнительные сведения см. в этойExcel.

  2. В редакторе Power Query выберите главная> Расширенный редактор, который откроется с шаблоном выражения let.

Расширенный редактор 2

Этап 2. Определение источника данных

  1. Чтобы загрузить запрос на таблицу, выберите Готово ,а затем выберите Главная> Закрыть & Загрузка > Закрыть & Загрузить.

Результат:

Шаг 1. Результат

Этап 3. Продвижение первой строки до заглавных

  1. Чтобы открыть запрос, выберем ячейку с данными на > запрос. Дополнительные сведения см. в статьи Создание, загрузка и изменение запроса в Excel (Power Query).

  2. В редакторе Power Query выберите Главная > Расширенный редактор, который откроется с помощью выписки, созданной на этапе 2:Определение источника данных.

  3. В выражении let добавьте #»First Row as Header» и Table.PromoteHeaders следующим

    образом:
    let
        
    Source = Excel.CurrentWorkbook(){[Name=»Orders»]}[Content],
      #»First Row as Header» = Table.PromoteHeaders(Source)#x3

        #»First Row as Header»

  4. Чтобы загрузить запрос на таблицу, выберите Готово ,а затем выберите Главная> Закрыть & Загрузка > Закрыть & Загрузить.

Результат:

Шаг 3. Результат

Этап 4. Изменение каждого значения в столбце на правильное

  1. Чтобы открыть запрос, выберем ячейку с данными на > запрос. Дополнительные сведения см. в этойExcel.

  2. В редакторе Power Query выберите Главная> Расширенный редактор, который откроется с заявлением, созданным на этапе 3: Повысить первую строку до заглавных.

  3. В выражении let преобразуйте каждое значение столбца ProductName в правильный текст с помощью функции Table.TransformColumns, ссылаясь на предыдущий шаг формулы запроса «Первая строка в качестве заглавного текста», добавив к источнику данных значение #»Заглавная буква каждого слова», а затем назначив результат «#»Преобразование каждого слова» в заглавную букву.

    let
        Source = Excel.CurrentWorkbook(){[Name=»Orders»]}[Content],
        #»First Row as Header» = Table.PromoteHeaders(Source),
        #»Capitalized Each Word» = Table.TransformColumns(#»First Row as Header»,{{«ProductName», Text.Proper}})
    in
        #»Capitalized Each Word»

  4. Чтобы загрузить запрос на таблицу, выберите Готово ,а затем выберите Главная> Закрыть & Загрузка > Закрыть & Загрузить.

Результат:

Шаг 4. Результат

Вы можете управлять поведением панели формул в редакторе Power Query для всех книг.

Отображение или скрытие панели формул

  1. Выберите Параметры> файла и Параметры > параметры запроса.

  2. В левой области в области GLOBALвыберите Редактор Power Query.

  3. В области справа в области Макет выберитеили отобразить формулу.

Включить или отключить M Intellisense

  1. Выберите Параметры> файла и Параметры > параметры запроса .

  2. В левой области в области GLOBALвыберите Редактор Power Query.

  3. В области справа в области Формула выберитеили отберите включить M Intellisenseв панели формул, в расширенный редактор и в диалоговом окке настраиваемого столбца .

Примечание    Изменение этого параметра вступает в силу при следующем переходе в окно редактора Power Query.

См. также

Справка по Power Query для Excel

Создание и вызов настраиваемой функции

Использование списка Примененные шаги (docs.com)

Использование пользовательских функций (docs.com)

Формулы Power Query M (docs.com)

Работа с ошибками (docs.com)

Нужна дополнительная помощь?


Суть запроса на выборку – выбрать из исходной таблицы строки, удовлетворяющие определенным критериям (подобно применению стандартного

Фильтра

). Произведем отбор значений из исходной таблицы с помощью

формул массива

. В отличие от применения

Фильтра

(

CTRL+SHIFT+L

или Данные/ Сортировка и фильтр/ Фильтр ) отобранные строки будут помещены в отдельную таблицу.

В этой статье рассмотрим наиболее часто встречающиеся запросы, например: отбор строк таблицы, у которых значение из числового столбца попадает в заданный диапазон (интервал); отбор строк, у которых дата принаждежит определенному периоду; задачи с 2-мя текстовыми критериями и другие. Начнем с простых запросов.

1. Один числовой критерий (Выбрать те Товары, у которых цена выше минимальной)

Пусть имеется Исходная таблица с перечнем Товаров и Ценами (см. файл примера, лист

Один критерий — число

).

Необходимо отобразить в отдельной таблице только те записи (строки) из Исходной таблицы, у которых цена выше 25.

Решить эту и последующие задачи можно легко с помощью

стандартного фильтра

. Для этого выделите заголовки Исходной таблицы и нажмите

CTRL+SHIFT+L

. Через выпадающий список у заголовка Цены выберите

Числовые фильтры…

, затем задайте необходимые условия фильтрации и нажмите ОК.

Будут отображены записи удовлетворяющие условиям отбора.

Другим подходом является использование

формул массива

. В отличие от

фильтра

отобранные строки будут помещены в отдельную таблицу — своеобразный

Отчет

, который, например, можно отформатировать в стиль отличный от Исходной таблицы или производить другие ее модификации.

Критерий (минимальную цену) разместим в ячейке

Е6

, таблицу для отфильтрованных данных — в диапазоне

D10:E19

.

Теперь выделим диапазон

D11:D19

(столбец Товар) и в

Строке формул

введем

формулу массива

:

=ИНДЕКС(A11:A19;НАИМЕНЬШИЙ(ЕСЛИ($E$6<=B11:B19;СТРОКА(B11:B19);»»);СТРОКА()-СТРОКА($B$10))-СТРОКА($B$10))

Вместо

ENTER

нажмите сочетание клавиш

CTRL+SHIFT+ENTER

(формула массива будет

возвращать несколько значений

).

Те же манипуляции произведем с диапазоном

E11:E19

(столбец Цена) куда и введем аналогичную

формулу массива

:

=ИНДЕКС(B11:B19;НАИМЕНЬШИЙ(ЕСЛИ($E$6<=B11:B19;СТРОКА(B11:B19);»»);СТРОКА()-СТРОКА($B$10))-СТРОКА($B$10))

В результате получим новую таблицу, которая будет содержать только товары, у которых цены не меньше, указанной в ячейке

Е6

.

Чтобы показать динамизм полученного Запроса на выборку, введем в

Е6

значение 55. В новую таблицу попадет только 2 записи.

Если в Исходную таблицу добавить новый товар с Ценой 80, то в новую таблицу автоматически будет добавлена новая запись.


Примечание

. Также для вывода отфильтрованных данных можно использовать

Расширенный фильтр

и

Сводные таблицы

. Выбор конкретного инструмента зависит от стоящей перед пользователем задачи.

Если Вам не удобно использовать

формулу массива

, которая возвращает несколько значений, то можно использовать другой подход, который рассмотрен в разделах ниже: 5.а, 7, 10 и 11. В этих случаях используются

формулы массива, возвращающие одно значение

.

2. Два числовых критерия (Выбрать те Товары, у которых цена попадает в диапазон)

Пусть имеется Исходная таблица с перечнем Товаров и Ценами (см. файл примера, лист

Диапазон Чисел

).

Критерии (нижнюю и верхнюю границы цены) разместим в диапазоне

Е5:Е6

.

Т.е. если Цена Товара попадает в указанный интервал, то такая запись появится в новой таблице Отфильтрованные данные.

В отличие от предыдущей задачи создадим два

Динамических диапазона

: Товары и Цены (без них можно обойтись, но они удобны при написании формул). Соответствующие формулы должны выглядеть в Диспетчере имен ( Формулы/ Определенные имена/ Диспетчер имен ) следующим образом (см. рисунок ниже).

Теперь выделим диапазон

D11:D19

и в

Строке формул

введем

формулу массива

:

=ИНДЕКС(Товары;НАИМЕНЬШИЙ(ЕСЛИ(($E$5<=Цены)*($E$6>=Цены);СТРОКА(Цены);»»);СТРОКА(Цены)-СТРОКА($B$10))-СТРОКА($B$10))

Вместо

ENTER

нажмите сочетание клавиш

CTRL+SHIFT+ENTER

.

Те же манипуляции произведем с диапазоном

E11:E19

куда и введем аналогичную

формулу массива

:

=ИНДЕКС(Цены;НАИМЕНЬШИЙ(ЕСЛИ(($E$5<=Цены)*($E$6>=Цены);СТРОКА(Цены);»»);СТРОКА(Цены)-СТРОКА($B$10))-СТРОКА($B$10))

В результате получим новую таблицу, которая будет содержать только товары, у которых цены попадают в интервал, указанный в ячейках

Е5

и

Е6

.

Чтобы показать динамизм полученного Отчета (Запроса на выборку) введем в

Е6

значение 65. В новую таблицу будет добавлена еще одна запись из Исходной таблицы, удовлетворяющая новому критерию.

Если в Исходную таблицу добавить новый товар с Ценой в диапазоне от 25 до 65, то в новую таблицу будет добавлена новая запись.

В файле примера также содержатся формулы массива с обработкой ошибок, когда в столбце Цена содержится значение ошибки, например #ДЕЛ/0! (см. лист

Обработка ошибок

).

Следующие задачи решаются аналогичным образом, поэтому не будем их рассматривать так детально.

3. Один критерий Дата (Выбрать те Товары, у которых Дата поставки совпадает заданной)

Пусть имеется Исходная таблица с перечнем Товаров и Датами поставки (см. файл примера, лист

Один критерий — Дата

).

Для отбора строк используются формулы массива, аналогичные Задаче1 (вместо критерия <= используется =):

= ИНДЕКС(A12:A20;НАИМЕНЬШИЙ(ЕСЛИ($E$6=B12:B20;СТРОКА(B12:B20);»»);СТРОКА(B12:B20)-СТРОКА($B$11))-СТРОКА($B$11))

=ИНДЕКС(B12:B20;НАИМЕНЬШИЙ(ЕСЛИ($E$6=B12:B20;СТРОКА(B12:B20);»»);СТРОКА(B12:B20)-СТРОКА($B$11))-СТРОКА($B$11))

4. Два критерия Дата (Выбрать те Товары, у которых Дата поставки попадает в диапазон)

Пусть имеется Исходная таблица с перечнем Товаров и Датами поставки (см. файл примера, лист

Диапазон Дат

).

Обратите внимание, что столбец Дат НЕ СОРТИРОВАН.


Решение1

: Для отбора строк можно использовать

формулы массива, возвращающие одно значение

.

Введите в ячейку

D12

формулу массива:

=ИНДЕКС(A$12:A$20;НАИБОЛЬШИЙ(($E$6<=$B$12:$B$20)*($E$7>=$B$12:$B$20)*(СТРОКА($B$12:$B$20)-СТРОКА($B$11));$J$12-СТРОКА(A12)+СТРОКА($B$11)+1))


Примечание

: После ввода формулы вместо клавиши ENTER (ВВОД) нужно нажать сочетание клавиш CTRL+SHIFT+ENTER. Это сочетание клавиш используется для ввода формул массива.

Скопируйте формулу массива вниз на нужное количество ячеек. Формула вернет только те значения Товаров, которые были поставлены в диапазоне указанных дат. В остальных ячейках будут содержаться ошибки #ЧИСЛО! Ошибки в файле примера (Лист 4.Диапазон Дат)

скрыты с помощью Условного форматирования

.

Аналогичную формулу нужно ввести и для дат в столбец E.

В ячейке

J12

вычислено количество строк исходной таблицы, удовлетворяющих критериям:

=СЧЁТЕСЛИМН(B12:B20;»>=»&$E$6;B12:B20;»<=»&$E$7)

Строки исходной таблицы, которые удовлетворяют критериям,

выделены также Условным форматированием

.


Решение2

: Для отбора строк можно использовать формулы массива, аналогичные Задаче2 (т.е.

формулы массива, возвращающие несколько значений

):

= ИНДЕКС(A12:A20;НАИМЕНЬШИЙ(ЕСЛИ(($E$6<=B12:B20)*($E$7>=B12:B20);СТРОКА(B12:B20);»»);СТРОКА(B12:B20)-СТРОКА($B$11))-СТРОКА($B$11))

=ИНДЕКС(B12:B20;НАИМЕНЬШИЙ(ЕСЛИ(($E$6<=B12:B20)*($E$7>=B12:B20);СТРОКА(B12:B20);»»);СТРОКА(B12:B20)-СТРОКА($B$11))-СТРОКА($B$11))

Для ввода первой формулы выделите диапазон ячеек

G12:G20

. После ввода формулы вместо клавиши ENTER (ВВОД) нужно нажать сочетание клавиш CTRL+SHIFT+ENTER.


Решение3

: Если столбец Дат СОРТИРОВАН, то можно не использовать формулы массива.

Сначала необходимо вычислить первую и последнюю позиции строк, которые удовлетворяют критериям. Затем вывести строки

с помощью функции СМЕЩ()

.

Этот пример еще раз наглядно демонстрирует насколько

предварительная сортировка данных

облегчает написание формул.

5. Один критерий Дата (Выбрать те Товары, у которых Дата поставки не раньше/ не позже заданной)

Пусть имеется Исходная таблица с перечнем Товаров и Датами поставки (см. файл примера, лист

Один критерий — Дата (не позже)

).

Для отбора строк, дата которых не раньше (включая саму дату), используется формула массива:

= ИНДЕКС(A12:A20;НАИМЕНЬШИЙ(ЕСЛИ($E$7<=B12:B20;СТРОКА(B12:B20);»»);СТРОКА(B12:B20)-СТРОКА($B$11))-СТРОКА($B$11))

Также в файле примера приведены формулы для условий: Не раньше (не включая); Не позже (включая); Не позже (не включая).

Эта формула введена как

формула массив

а, возвращающая множество значений (см. здесь

Формулы массива в MS EXCEL, возвращающие несколько значений

). Эту формулу можно переделать, чтобы

возвращалось только 1 значение

, см. следующую задачу 5а.

5а. Один критерий Дата (Выбрать События, которые Закончились/ не начались/ происходят на заданную дату)

Пусть имеется перечень событий и даты их начала и завершения.

Пользователю требуется найти и вывести в отдельную таблицу события, которые либо уже закончились на заданную дату, либо еще длятся, либо еще не начались.

Т.е. нам потребуется формула, обрабатывающая 3 вышеуказанные ситуации. Можно использовать нижеуказанную формулу, которую нужно ввести в строке для каждого события

= ВЫБОР($C$6;$B$7>C15;И($B$7>=B15;$B$7<=C15);$B$7

Формула возвращает ЛОЖЬ или ИСТИНА в зависимости от того удовлетворят ли Событие указанным критерием. Результат этой формулы мы будем использовать как для

Условного форматирования

, чтобы выделить События, так и для вывода Событий в отдельный диапазон.

Для вывода Событий в соседний диапазон используйте формулу:

= ИНДЕКС(A$15:A$21;НАИМЕНЬШИЙ(ЕСЛИ($D$15:$D$21;СТРОКА(A$15:A$21);»»);СТРОКА()-СТРОКА($B$14))-СТРОКА($B$14))

Формула делает следующее:

— если Событие удовлетворяет условию, то формула запоминает номер строки этого События: ЕСЛИ($D$15:$D$21;СТРОКА(A$15:A$21);»»)

Функция НАИМЕНЬШИЙ()

сортирует

полученный массив номеров строк: первыми идут номера строк Событий, которые удовлетворяют критерию;

Функция ИНДЕКС()

выводит названия Событий из указанный строк.

6. Два критерия: Дата и Текст (Выбрать Товары определенного вида, у которых Дата поставки не позже заданной)

Пусть имеется Исходная таблица с перечнем Товаров и Датами поставки (см. файл примера, лист

2 критерия — Дата-Текст

).

В отличие от Задачи 5 будем отбирать строки только того Товара, который указан в критерии. Список дат должен быть

отсортирован

(для каждого из товаров), по товару сортировка не требуется.

Для отбора строк, дата которых не позже (включая саму дату), используется формула массива:

= ИНДЕКС(A13:A21; НАИМЕНЬШИЙ(ЕСЛИ(($E$7=$A$13:$A$21)*($E$8>=$B$13:$B$21)*($B$13:$B$21>0);СТРОКА($B$13:$B$21);»»);СТРОКА($B$13:$B$21)-СТРОКА($B$12)) -СТРОКА($B$12))

Условие $E$7=$A$13:$A$21 гарантирует, что будут отобраны товары только определенного типа. Условие $E$8>=$B$13:$B$21 гарантирует, что будут отобраны даты не позже заданной (включая). Условие $B$13:$B$21>0 необходимо, если в диапазоне дат имеются пустые ячейки. Знак * (умножение) используется для задания

Условия И

(все 3 критерия должны выполняться для строки одновременно).


Примечание

. Случай, когда список несортирован, рассмотрен в статье

Поиск ДАТЫ (ЧИСЛА) ближайшей к заданной, с условием в MS EXCEL. Несортированный список

.

7. Один Текстовый критерий (Выбрать Товары определенного вида)

Пусть имеется Исходная таблица с перечнем Товаров и Ценами (см. файл примера, лист

Один критерий — Текст

).

Задача решается аналогично Задачам 1 и 3. Более подробное решение см. в статье

Поиск ТЕКСТовых значений в MS EXCEL с выводом их в отдельный список. Часть1. Обычный поиск

.

8. Два Текстовых критерия (Выбрать Товары определенного вида, поставленные в заданный месяц)

Пусть имеется Исходная таблица с перечнем Товаров и Ценами (см. файл примера, лист

2 критерия — текст (И)

).

Для отбора строк используется формула массива:

= ИНДЕКС($A$11:$A$19; НАИМЕНЬШИЙ(ЕСЛИ(($F$6=$A$11:$A$19)*($F$7=$B$11:$B$19);СТРОКА($A$11:$A$19)-СТРОКА($A$10);30);СТРОКА(ДВССЫЛ(«A1:A»&ЧСТРОК($A$11:$A$19)))))

Выражение ($F$6=$A$11:$A$19)*($F$7=$B$11:$B$19) задает оба условия (Товар и Месяц).

Выражение СТРОКА(ДВССЫЛ(«A1:A»&ЧСТРОК($A$11:$A$19))) формирует

массив последовательных чисел

{1:2:3:4:5:6:7:8:9}, т.е. номера строк в таблице.

9. Два Текстовых критерия (Выбрать Товары определенных видов)

Пусть имеется Исходная таблица с перечнем Товаров и Ценами (см. файл примера, лист

2 критерия — текст (ИЛИ)

).

В отличие от Задачи 7 отберем строки с товарами 2-х видов (

Условие ИЛИ

).

Для отбора строк используется формула массива:

= ИНДЕКС(A$11:A$19; НАИБОЛЬШИЙ((($E$6=$A$11:$A$19)+($E$7=$A$11:$A$19))*(СТРОКА($A$11:$A$19)-СТРОКА($A$10)); СЧЁТЕСЛИ($A$11:$A$19;$E$6)+СЧЁТЕСЛИ($A$11:$A$19;$E$7)-ЧСТРОК($A$11:A11)+1))

Условие ($E$6=$A$11:$A$19)+($E$7=$A$11:$A$19) гарантирует, что будут отобраны товары только заданных видов из желтых ячеек (Товар2 и Товар3). Знак + (сложение) используется для задания

Условие ИЛИ

(должен быть выполнен хотя бы 1 критерий).

Вышеуказанное выражение вернет массив {0:0:0:0:1:1:1:0:0}. Умножив его на выражение СТРОКА($A$11:$A$19)-СТРОКА($A$10) , т.е. на

массив последовательных чисел

{1:2:3:4:5:6:7:8:9}, получим массив позиций (номеров строк таблицы), удовлетворяющих критериям. В нашем случае это будет массив {0:0:0:0:5:6:7:0:0}.

С помощью функции НАИБОЛЬШИЙ() выведем 3 значения из позиции 5 (строка 15 листа), 6 (16) и 7 (17), т.е. значения Товар2, Товар2 и Товар3. Для этого используем выражение СЧЁТЕСЛИ($A$11:$A$19;$E$6)+СЧЁТЕСЛИ($A$11:$A$19;$E$7)-ЧСТРОК($A$11:A11)+1 , которое последовательно (начиная со строки 11) будет возвращать числа 3; 2; 1; 0; -1; -2; … Формула НАИБОЛЬШИЙ(…;3) вернет число 5, НАИБОЛЬШИЙ(…;2) вернет число 6, НАИБОЛЬШИЙ(…;1) вернет число 7, а НАИБОЛЬШИЙ(…;0) и далее вернет ошибку, которую мы скроем

условным форматированием

.

И наконец, с помощью

функции ИНДЕКС()

последовательно выведем наши значения из соответствующих позиций: = ИНДЕКС(A$11:A$19;5) вернет Товар2, = ИНДЕКС(A$11:A$19;6) вернет Товар2, = ИНДЕКС(A$11:A$19;7) вернет Товар3.

10. Отбор значений с учетом повторов

В разделе

Отбор на основании повторяемости

собраны статьи о запросах с группировкой данных. Из повторяющихся данных сначала отбираются уникальные значения, а соответствующие им значения в других столбцах — группируются (складываются, усредняются и пр.).

Наиболее популярные статьи из этого раздела:

Отбор уникальных значений (убираем повторы из списка) в MS EXCEL

Отбор уникальных значений с суммированием по соседнему столбцу в MS EXCEL

Отбор повторяющихся значений в MS EXCEL

Отбор уникальных значений из двух диапазонов в MS EXCEL

Отбор уникальных СТРОК с помощью Расширенного фильтра в MS EXCEL

В качестве примера приведем решения следующей задачи:

Выбрать Товары, цена которых лежит в определенном диапазоне и повторяется заданное количество раз или более.

В качестве исходной возьмем таблицу партий товаров.

Предположим, что нас интересует сколько и каких партий товаров поставлялось по цене от 1000р. до 2000р. (критерий 1). Причем, партий с одинаковой ценой должно быть минимум 3 (критерий 2).

Решением является формула массива:

=НАИМЕНЬШИЙ(СТРОКА($A$14:$A$27)*($C$14:$C$27>=$B$7)*($C$14:$C$27<=$C$7)*($D$14:$D$27>=$B$10);F14+($G$8-$G$9))

Эта формула возвращает номера строк, которые удовлетворяют обоим критериям.

Формула =СУММПРОИЗВ(($C$14:$C$27>=$B$7)*($C$14:$C$27<=$C$7)*($D$14:$D$27>=$B$10)) подсчитывает количество строк, которые удовлетворяют критериям.

В файле примера на листе «10.Критерий — колич-во повторов» настроено

Условное форматирование

, которое позволяет визуально определить строки удовлетворяющие критериям, а также

скрыть ячейки, в которых формула массива возвращает ошибку #ЧИСЛО!

11. Используем значение критерия (Любой) или (Все)

В фильтре

Сводных таблиц

MS EXCEL используется значение (Все), чтобы вывести все значения столбца. Другими словами, в

выпадающем списке

значений критерия содержится особое значение, которое отменяет сам критерий (см. статью

Отчеты в MS EXCEL

, Отчет №3).

В файле примера на листе «11. Критерий Любой или (Все)» реализован данный вариант критерия.

Формула в этом случае должна содержать функцию ЕСЛИ() . Если выбрано значение (Все), то используется формула для вывода значений без учета данного критерия. Если выбрано любое другое значение, то критерий работает обычным образом.

=ЕСЛИ($C$8=»(Все)»;НАИМЕНЬШИЙ((СТРОКА($B$13:$B$26)-СТРОКА($B$12))*($D$13:$D$26>=$D$8);F13+($G$6-$G$7));НАИМЕНЬШИЙ((СТРОКА($B$13:$B$26)-СТРОКА($B$12))*($D$13:$D$26>=$D$8)*($C$13:$C$26=$C$8);F13+($G$6-$G$7)))

Остальная часть формулы аналогична рассмотренным выше.

12. Актуальная цена

Пусть для товара ежедневно заполняется таблица цен (цена может меняться, но не каждый день). Нужно найти актуальнуй цену, т.е. цену на последнюю дату. Если товар всего один, то можно отсортировать по дате и в последней строке будет нужная актуальная цена. Если товаров много, то нужно сначала выбрать Автофильтром нужный товар, затем опять отсортировать по цене.

Чтобы иметь перечень товаров с актуальными ценами придется использовать формулы:

1) сначала сформируем перечень товаров без повторов

Отбор уникальных значений (убираем повторы из списка) в MS EXCEL

2) определяем последнюю (максимальную) дату для каждого товара с помощью формулы массива =МАКС((Таблица1[товар]=E8)*Таблица1[дата])

3) наконец, выводим актуальную цену =СУММЕСЛИМН(Таблица1[цена];Таблица1[товар];E8;Таблица1[дата];F8)

Для товара не должно быть повторов дат, иначе цены будут суммироваться (если повторяется последняя дата).

В файле примера приведено решение на листе 12. Актуальная цена.

Самый быстрый ВПР

Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

В этом случае, правильный выбор функции, применяемой для связывания таблиц, играет решающую роль — разница в производительности между ними, как мы увидим далее, может составлять более 20 раз!

Когда я писал свою первую книжку пять лет назад, то уже делал сравнительный скоростной тест различных способов поиска и подстановки данных функциями ВПР, ИНДЕКС+ПОИСКПОЗ, СУММЕСЛИ и др. С тех пор сменилось три версии Office, появились надстройки Power Query и Power Pivot, кардинально изменившие весь процесс работы с данными. А в прошлом году ещё и обновился вычислительный движок Excel, получив поддержку динамических массивов и новые функции ПРОСМОТРХ, ФИЛЬТР и т.п.

Так что пришла пора снова взяться за секундомер и выяснить — кто же самый быстрый. Ну и, заодно, проверить — какие способы поиска и подстановки данных в Excel вы знаете 🙂

Подопытный кролик

Тест будем проводить на следующем примере:

Исходный пример

Это книга Excel с одним листом, где расположены две таблицы: отгрузки (500 000 строк) и прайс-лист (600 строк). Наша задача — подставить цены из прайс-листа в таблицу отгрузок. Для каждого способа будем вводить формулу в ячейку С2 и копировать вниз на весь столбец, замеряя время, которое потребуется Excel, чтобы просчитать весь столбец из полумиллиона ячеек. Полученные значения, безусловно, зависят от множества факторов (поколение процессора, объем оперативной памяти, текущая загрузка системы, версия Office и т.д.), но нам важны не конкретные цифры, а, скорее, их сравнение друг с другом. Важно понимать прожорливость каждого способа и их ограничения.

Способ 1. ВПР

Сначала — классика 🙂 Легендарная функция вертикального просмотра — ВПР (VLOOKUP) , которая приходит в голову первой в подобных ситуациях:

ВПР

  • B2 — искомое значение, т.е. название товара, который мы хотим найти в прайс-листе
  • $G$2:$H$600 — закреплённая знаками доллара (чтобы не сползала при копировании формулы вниз) абсолютная ссылка на прайс
  • 2 — номер столбца в прайс-листе, откуда мы хотим взять цену
  • 0 или ЛОЖЬ — переключение в режим поиска точного соответствия, когда любое некорректное название товара (например, ФОНЕРА) в столбце B в таблице отгрузок приведёт к появлению ошибки #Н/Д как результата работы функции.

Время вычисления = 4,3 сек.

Способ 2. ВПР с выделением столбцов целиком

Многие пользователи, применяя ВПР, во втором аргументе этой функции, где нужно задать поисковую таблицу (прайс), выделяют не ограниченный диапазон ( $G$2:$H$600 ), а сразу столбцы G:H целиком. Это проще, быстрее, позволяет не думать про F4 и то, что завтра прайс-лист может быть на несколько строк больше. Формула в этом случае выглядит тоже компактнее:

ВПР с выделением столбцов целиком

В старых версиях Excel такое выделение не сильно влияло на скорость вычислений, но сейчас (неожиданно для меня, признаюсь) результат получился в разы хуже предыдущего.

Время вычисления = 14,5 сек.

Способ 3. ИНДЕКС и ПОИСКПОЗ

Следующей после ВПР ступенью эволюции для многих пользователей Microsoft Excel обычно является переход на использование связки функций ИНДЕКС (INDEX) и ПОИСКПОЗ (MATCH) . Выглядит эта формула так:

ИНДЕКС и ПОИСКПОЗ

Функция ИНДЕКС извлекает из заданного в первом аргументе диапазона (столбца $H$2:$H$600 с ценами в прайс-листе) содержимое ячейки с заданным номером. А номер этот, в свою очередь, определяется функцией ПОИСКПОЗ, у которой три аргумента:

  • Что нужно найти — название товара из B2
  • Где мы это ищем — столбец с названиями товаров в прайсе ( $G$2:$G$600 )
  • Режим поиска: 0 — точный, 1 или -1 — приблизительный с округлением в меньшую или большую сторону, соответственно.

Формула выходит чуть сложнее, но, при этом имеет несколько ощутимых преимуществ перед классической ВПР, а именно:

  • Не нужно отсчитывать номер столбца (как в третьем аргументе ВПР).
  • Можно извлекать данные, которые находятся левее столбца, где просходит поиск.

По скорости, однако же, этот способ проигрывает ВПР почти в два раза:

Время вычисления = 7,8 сек.

Если же, вдобавок, полениться и выделять не ограниченные диапазоны, а столбцы целиком:

ИНДЕКС и ПОИСКПОЗ с выделением столбцов целиком

. то результат получается совсем печальный:

Время вычисления = 28,5 сек.

28 секунд, Карл! В 6 раз медленнее ВПР!

Способ 4. СУММЕСЛИ

Если нужно найти не текстовые, а именно числовые данные (как в нашем случае — цену), то вместо ВПР вполне можно использовать функцию СУММЕСЛИ (SUMIF) . Изначально она задумывалась как инструмент для выборочного суммирования данных по условию (найди и сложи мне все продажи кабелей, например), но можно заставить её искать нужный нам товар и в прайс-листе. Если грузы в нём не повторяются, то суммировать будет не с чем и эта функция просто выведет искомое значение:

СУММЕСЛИ

  • Первый аргумент СУММЕСЛИ — это диапазон проверяемых ячеек, т.е. названия товаров в прайсе ( $G$2:$G$600 ).
  • Второй аргумент ( B2 ) — что мы ищем.
  • Третий аргумент — диапазон ячеек с ценами $H$2:$H$600 , числа из которых мы хотим просуммировать, если в соседних ячейках проверяемого диапазона есть искомое значение.

Очевидным минусом такого подхода является то, что он работает только с числами. Также этот способ не удобен, если прайс-лист находится в отдельном файле — придется всё время держать его открытым, т.к. функция СУММЕСЛИ не умеет брать данные из закрытых книг, в отличие от ВПР, для которой это не проблема.

В плюсы же можно записать удобство при поиске сразу по нескольким столбцам — для этого идеально подходит более продвинутая версия этой функции — СУММЕСЛИМН (SUMIFS) . Скорость вычислений же, при этом, весьма посредственная:

Время вычисления = 12,8 сек.

При выделении столбцов целиком, т.е. использовании формулы вида =СУММЕСЛИ( G:G ; B2 ; H:H ) всё ещё хуже:

Время вычисления = 41,7 сек.

Это самый плохой результат в нашем тесте.

Способ 5. СУММПРОИЗВ

Этот подход сейчас встречается не часто, но всё ещё достаточно регулярно. Обычно так любят извращаться пользователи старой школы, ещё хорошо помнящие те времена, когда в Excel было всего 255 столбцов и 56 цветов 🙂

Суть этого метода заключается в использовании функции СУММПРОИЗВ (SUMPRODUCT) , изначально предназначенной для поэлементного перемножения нескольких диапазонов с последующим суммированием полученных произведений. В нашем случае, вместо одного из массивов будет выступать условие, а вторым будут цены:

СУММПРОИЗВ

Выражение ($G$2:$G$600=B2) , по сути, проверяет каждое название груза в прайс-листе на предмет соответствия искомому значению (ФАНЕРА ПР). Результатом каждого сравнения будет логическое значение ИСТИНА (TRUE ) или ЛОЖЬ (FALSE) , что в Excel интерпретируется как 1 и 0, соответственно. Последующее умножение этих нулей и единиц на цены оставит в живых цену только того товара, который нам, в данном случае, и нужен.

Эта формула является, по сути, формулой массива, но не требует нажатия обычного для них сочетания клавиш Ctrl + Shift + Enter , т.к. функция СУММПРОИЗВ поддерживает массивы уже сама по себе. Возможно, по этой же причине (формулы массива всегда медленнее, чем обычные) такой скорость пересчёта такой формулы — не очень:

Время вычисления = 11,8 сек.

  • Совместимость с любыми, самыми древними версиями Excel.
  • Возможность задавать сложные условия (и несколько)
  • Способность этой формулы работать с данными из закрытых файлов, если добавить перед ней двойное бинарное отрицание (два подряд знака «минус»). СУММЕСЛИМН таким похвастаться не может.

Способ 6. ПРОСМОТР

Ещё один относительно экзотический способ поиска и подстановки данных, наравне с ВПР — это использование функции ПРОСМОТР (LOOKUP) . Только не перепутайте её с новой, буквально, на днях появившейся функцией ПРОСМОТРХ (XLOOKUP) — про неё мы поговорим дальше особо. Функция ПРОСМОТР существовала в Excel начиная с самых ранних версий и тоже вполне может решить нашу задачу:

ПРОСМОТР

  • B2 — название груза, которое мы ищем
  • $G$2:$G$600 — одномерный диапазон-вектор (столбец или строка), где мы ищем совпадение
  • $H$2:$H$600 — такого же размера диапазон, откуда нужно вернуть найденный результат (цену)

На первый взгляд всё выглядит очень удобно и логично, но всю картину портят два неочевидных момента:

  • Эта функция требует обязательной сортировки прайс-листа по возрастанию (алфавиту) и без этого не работает.
  • Если в таблице отгрузок искомое значение будет написано с опечаткой (например, АГ Е ДОЛ вместо АГИДОЛ), то функция ПРОСМОТР выдаст не ошибку #Н/Д, а цену для ближайшего предыдущего товара:

При работе с неидеальными данными в реальном мире это гарантированно создаст проблемы, как вы понимаете.

Скорость же вычислений у функции ПРОСМОТР (LOOKUP) весьма приличная:

Время вычисления = 7,6 сек.

Способ 7. Новая функция ПРОСМОТРХ

Эта функция пришла с одним из недавних обновлений пока только пользователям Office 365 и пока отсутствует во всех остальных версиях (Excel 2010, 2013, 2016, 2019). По сравнению с классической ВПР у этой функции есть масса преимуществ (упрощенный синтаксис, возможность искать не только сверху-вниз, возможность сразу задать значение вместо #Н/Д и т.д.) Формула для решения нашей задачи будет выглядеть в этом случае так:

ПРОСМОТРХ

Если не брать в расчёт необязательные 4,5,6 аргументы, то синтаксис этой функции полностью совпадает с её предшественником — функцией ПРОСМОТР (LOOKUP) . Скорость вычислений при тестировании на наши 500000 строк тоже оказалась аналогичной:

Время вычисления = 7,6 сек.

Почти в два раза медленнее, чем у ВПР, вместо которой Microsoft предлагает теперь использовать ПРОСМОТРХ. Жаль.

И, опять же, если полениться и выделить диапазоны в прайс-листе целыми столбцами:

ПРОСМОТРХ и выделение столбцов целиком

. то скорость падает до совершенно неприличных уже значений:

Время вычисления = 28,3 сек.

А если на динамических массивах?

Прошлогоднее (осень 2019) обновление вычислительного движка Microsoft Excel добавило ему поддержку динамических массивов (Dynamic Arrays), о которых я уже писал. Это принципиально новый подход к работе с данными, который можно использовать почти с любыми классическими функциями Excel. На примере ВПР это будет выглядеть так:

ВПР на динамических массивах

Разница с классическим вариантом в том, что первым аргументом ВПР здесь выступает не одно искомое значение (а формулу потом нужно копировать вниз на остальные строки), а сразу весь массив из полумиллиона грузов B2:B500000, цены для которых мы хотим найти. Формула при этом сама распространяется вниз, занимая требуемое количество ячеек.

Скорость пересчета в таком варианте меня, откровенно говоря, ошеломила — пауза между нажатием на Enter после ввода формулы и получением результатов почти отсутствовала.

Время вычисления = 1 сек.

Что интересно, и новая ПРОСМОТРХ, и старая ПРОСМОТР, и связка ИНДЕКС+ПОИСКПОЗ в таком режиме тоже были очень быстрыми — время вычислений не больше 1 секунды! Фантастика.

А вот олдскульные подходы на основе СУММПРОИЗВ и СУММЕСЛИ(МН) с динамическими массивами работать отказались 🙁

Что с умными таблицами?

Обрадовавшись фантастическим результатам, полученным на динамических массивах, я решил вдогон попробовать протестировать разницу в скорости при работе с обычными и «умными» таблицами. Я имею ввиду те самые «красивые таблицы», в которые вы можете преобразовать ваш диапазон с помощью команды Форматировать как таблицу на вкладке Главная (Home — Format as Table) или с помощью сочетания клавиш Ctrl + T .

Если предварительно превратить наши отгрузки и прайс в «умные» (по умолчанию они получат имена Таблица1 и Таблица2, соответственно), то формула с той же ВПР будет выглядеть как:

ВПР на умных таблицах

  • [@Груз] — ссылка на ячейку B2, означающая, в данном случае, что нужно взять значение из той же строки из столбца Груз текущей умной таблицы.
  • Таблица2 — ссылка на прайс-лист

Жирным плюсом такого подхода будет возможность легко добавлять данные в наши таблицы в будущем. При дописывании новых строк в отгрузки или к прайс-листу, наши «умные» таблицы будут растягиваться автоматически.

Скорость же, как выяснилось, тоже вырастает очень значительно и примерно равна скорости работы на динамических массивах:

Время вычисления = 1 сек.

У меня есть подозрение, что дело тут не в самих «умных» таблицах, а всё в том же обновлении вычислительного движка, т.к. на старых версиях Excel такого прироста в скорости на умных таблицах я не помню.

Бонус. Запрос Power Query

Замерять, так замерять! Давайте, для полноты картины, сравним наши перечисленные способы еще и с запросом Power Query, который тоже может решить нашу задачу. Кто-то скажет, что некорректно сравнивать пересчёт формул с механизмом обновления запроса, но мне, откровенно говоря, просто самому было интересно — кто быстрее?

  1. Превращаем обе наши таблицы в «умные» с помощью команды Форматировать как таблицу на вкладке Главная (Home — Format as Table) или с помощью сочетания клавиш Ctrl + T .
  2. По очереди загружаем таблицы в Power Query с помощью команды Данные — Из таблицы / диапазона (Data — From Table/Range) .
  3. После загрузки в Power Query возвращаемся обратно в Excel, оставляя загруженные данные как подключение. Для этого в окне Power Query выбираем Главная — Закрыть и загрузить — Закрыть и загрузить в. — Только создать подключение (Home — Close&Load — Close&Load to. — Only create connection) .
  4. После того, как обе исходные таблицы будут загружены как подключения, создадим ещё один, третий запрос, который будет объединять их между собой, подставляя цены из прайса в отгрузки. Для этого на вкладке Данные выберем Получить данные / Создать запрос — Объединить запросы — Объединить (Get Data / New Query — Merge queries — Merge) :

Объединяем запросы

Настройки объединения

Разворачиваем вложенные таблицы после объединения

В отличие от формул, запросы Power Query не обновляются автоматически «на лету», а требуют щелчка правой кнопкой мыши по таблице (или запросу в правой панели) и выбору команды Обновить (Refresh) . Также можно воспользоваться командой Обновить все (Refresh All) на вкладке Данные (Data) .

Время обновления = 8,2 сек.

Итоговая таблица и выводы

Если вы честно дочитали до этого места, то какие-то выводы, наверное, уже сделали самостоятельно. Если же пропустили все детали и сразу перешли к итогам, то вот вам общая результирующая таблица по скорости всех методов:

Итоговая таблица результатов

Само-собой, у каждого из нас свои предпочтения, задачи и тараканы, но для себя я сформулировал выводы после этого тестирования так:

ВПР с несколькими условиями: 5 примеров.

Очень часто наши требования к поиску данных не ограничиваются одним условием. К примеру, нам нужна выручка по магазину за определенный месяц, количество конкретного товара, проданного определенному покупателю и т.д. Обычными средствами функции ВПР эту задачу решить сложно и даже не всегда возможно. Ведь там предусмотрено использование только одного критерия поиска.

Мы предложим вам несколько вариантов решения проблемы поиска по нескольким условиям.

ВПР по нескольким условиям с использованием дополнительного столбца.

Задачу, рассмотренную в предыдущем примере, можно решить и другим способом – без использования формулы массива. Ведь работа с массивами многим представляется сложной и недоступной для понимания. Дополнительный столбец для поиска по нескольким условиям будет в определенном отношении более простым вариантом.

Итак, необходимо выбрать значение выручки за определенный месяц, год и по нужному магазину. В итоге имеем 3 условия отбора.

Сразу по трем столбцам функция ВПР искать не может. Поэтому нам нужно объединить их в один. И, поскольку поиск производится всегда в крайнем левом (первом) столбце, то нужно добавить его в нашу таблицу тоже слева.

Вставляем перед таблицей с данными дополнительный столбец A. Затем при помощи оператора & объединяем в нем содержимое B,C и D. Записываем в А7

и копируем в находящиеся ниже ячейки.

Формула поиска в D4 будет выглядеть:

В диапазон поиска включаем и наш дополнительный столбец. Критерий поиска – также объединение 3 значений. И извлекаем результат из 5 колонки.

Все работает, однако вид несколько портит дополнительный столбец. В крайнем случае, его можно скрыть, используя контекстное меню по нажатию правой кнопки мыши.

Вид станет приятнее, а на результаты это никак не повлияет.

ВПР по двум условиям при помощи формулы массива.

У нас есть таблица, в которой записана выручка по каждому магазину за день. Мы хотим быстро найти сумму продаж по конкретному магазину за определенный день.

Для этого в верхней части нашего листа запишем критерии поиска: дата и магазин. В ячейке B3 будем выводить сумму выручки.

Формула в B3 выглядит следующим образом:

Обратите внимание на фигурные скобки, которые означают, что это формула массива. То есть наша функция ВПР работает не с отдельными значениями, а разу с массивами данных.

Разберем процесс подробно.

Мы ищем дату, записанную в ячейке B1. Но вот только разыскивать мы ее будем не в нашем исходном диапазоне данных, а в немного видоизмененном. Для этого используем условие

То есть, в том случае, если наименование магазина совпадает с критерием в ячейке B2, мы оставляем исходные значения из нашего диапазона. А если нет – заменяем их на пробелы. И так по каждой строке.

В результате получим вот такой виртуальный массив данных на основе нашей исходной таблицы:

Как видите, строки, в которых ранее был «Магазин 1», заменены на пустые. И теперь искать нужную дату мы будем только среди информации по «Магазин 2». И извлекать значения выручки из третьей колонки.

С такой работой функция ВПР вполне справится.

Такой ход стал возможен путем применения формулы массива. Поэтому обратите особое внимание: круглые скобки в формуле писать руками не нужно! В ячейке B3 вы записываете формулу

И затем нажимаете комбинацию клавиш CTRL+Shift+Enter. При этом Excel поймет, что вы хотите ввести формулу массива и сам подставит скобки.

Таким образом, функция ВПР поиск по двум столбцам производит в 2 этапа: сначала мы очищаем диапазон данных от строк, не соответствующих одному из условий, при помощи функции ЕСЛИ и формулы массива. А затем уже в этой откорректированной информации производим обычный поиск по одному только второму критерию при помощи ВПР.

Чтобы упростить работу в будущем и застраховать себя от возможных ошибок при добавлении новой информации о продажах, мы рекомендуем использовать «умную» таблицу. Она автоматически подстроит свой размер с учетом добавленных строк, и никакие ссылки в формулах не нужно будет менять.

Вот как это будет выглядеть.

ВПР по нескольким критериям с применением массивов — способ 2.

Выше мы уже рассматривали, как при помощи формулы массива можно организовать поиск ВПР с несколькими условиями. Предлагаем еще один способ.

Условия возьмем те же, что и в предыдущем примере.

Формулу в С4 введем такую:

Естественно, не забываем нажать CTRL+Shift+Enter.

Теперь давайте пошагово разберем, как это работает.

Наше задача здесь – также создать дополнительный столбец для работы функции ВПР. Только теперь мы создаем его не на листе рабочей книги Excel, а виртуально.

Как и в предыдущем примере, мы ищем текст из объединенных в одно целое условий поиска.

Далее определяем данные, среди которых будем искать.

Конструкция вида A7:A20&B7:B20&C7:C20;D7:D20 создает 2 элемента. Первый – это объединение колонок A, B и C из исходных данных. Если помните, то же самое мы делали в нашем дополнительном столбце. Второй D7:D20 – это значения, одно из которых нужно в итоге выбрать.

Функция ВЫБОР позволяет из этих элементов создать массив. как раз и означает, что нужно взять сначала первый элемент, затем второй, и объединить их в виртуальную таблицу – массив.

В первой колонке этой виртуальной таблицы мы будем искать, а из второй – извлекать результат.

Таким образом, для работы функции ВПР с несколькими условиями мы вновь используем дополнительный столбец. Только создаем его не реально, а виртуально.

Двойной ВПР при помощи ИНДЕКС + ПОИСКПОЗ

Далее речь у нас пойдет уже не о функции ВПР, но задачу мы будем решать ту же самую. В качестве критерия поиска нам опять нужно использовать несколько условий.

Формула в С4 теперь выглядит так:

И не забываем при вводе нажать CTRL+Shift+Enter! Это формула массива.

Теперь давайте разбираться, как это работает.

Функция ИНДЕКС в нашем случае позволяет извлечь элемент из списка по его порядковому номеру. Список – это диапазон D7:D20, где записаны суммы выручки. А вот порядковый номер, который нужно извлечь, мы определяем при помощи ПОИСКПОЗ.

Синтаксис здесь следующий:

ПОИСКПОЗ(что_ищем; где_ищем; тип_поиска)

Тип поиска ставим 0, то есть точное совпадение. В нашем случае мы будем искать 1. Далее мы определим массив, в котором будем работать.

Выражение (A7:A20=C1)*(B7:B20=C2)*(C7:C20=C3) позволит создать виртуальную таблицу примерно такого вида:

Как видите, первоначально мы последовательно сравниваем каждое значение с нашим критерием отбора. В столбце А у нас записаны месяцы – сравниваем их с месяцем-критерием из ячейки C1. В случае совпадения получаем ИСТИНА, иначе – ЛОЖЬ. Аналогично последовательно проверяем год и название магазина. А затем просто перемножаем значения. Поскольку логические переменные для Excel – это либо 0, либо 1, то произведение их может быть равно 1 только в том случае, если мы имеем по каждой колонке ИСТИНА (то есть,1). Во всех остальных случаях получаем 0.

Убеждаемся, что цифра 1 встречается только единожды.

При помощи ПОИСКПОЗ определяем, на какой позиции она находится. На какой позиции находится 1, на той же позиции находится в массиве и искомая сумма выручки. В нашем случае это 10-я.

Далее при помощи ИНДЕКС извлекаем 10-ю по счету выручку.

Таким образом мы выбрали значение по нескольким условиям без использования функции ВПР.

Достойная замена – функция СУММПРОИЗВ.

У нас есть данные о продажах нескольких менеджеров в различных регионах. Нужно сделать выборку по дате, менеджеру и региону.

Работает как формула массива, хотя по факту таковой не является. В этом заключается замечательное свойство функции СУММПРОИЗВ, о которой мы еще много будем говорить в других статьях.

Последовательно по каждой строке диапазона от 2-й до 27-й она проверяет совпадение каждого соответствующего значения с критерием поиска. Эти результаты перемножаются между собой и в итоге еще умножаются на сумму выручки. Если среди трех условий будет хотя бы одно несовпадение, то итогом будет 0. В случае совпадения сумма выручки трижды умножится на 1.

Затем все эти 27 произведений складываются, и результатом будет выручка нужного менеджера в каком-то регионе за определенную дату.

В качестве бонуса можно продолжить этот пример и рассчитать общую сумму продаж менеджера в определенном регионе.

Для этого из формулы просто уберем сравнение по дате.

Кстати, возможен и другой вариант расчета с этой же функцией:

Итак, мы рассмотрели примеры использования функции ВПР с двумя и с несколькими условиями. А также обнаружили, что этой ценной функции есть замечательная альтернатива.

Примеры использования функции ВПР:

Как объединить две или несколько таблиц в Excel — В этом руководстве вы найдете некоторые приемы объединения таблиц Excel путем сопоставления данных в одном или нескольких столбцах. Как часто при анализе в Excel вся необходимая информация собирается на одном…

ВПР с несколькими таблицами

2 способа извлечь данные из разных таблиц при помощи ВПР. — Задача: Данные, которые нужно найти и извлечь при помощи функции ВПР, находятся в нескольких таблицах. Эти таблицы имеют одинаковую структуру (то есть, одни и те же столбцы, расположенные в одном…
/> Вычисление номера столбца для извлечения данных в ВПР — Задача: Наиболее простым способом научиться указывать тот столбец, из которого функция ВПР будет извлекать данные. При этом мы не будем изменять саму формулу, поскольку это может привести в случайным ошибкам.…
4 способа, как сделать левый ВПР в Excel. — Функция ВПР – одна из самых популярных, когда нужно найти и извлечь из таблицы какие-либо данные. Но при этом она имеет один существенный недостаток. Поиск она производит в крайнем левом…
Формула ВПР в Excel для сравнения двух таблиц — 4 способа — Сравнение таблиц – это задача, которую в Excel приходится довольно часто решать. Например, у нас есть старый прайс-лист и его новая версия. Нужно просмотреть, цены на какие товары изменились и…
Почему не работает ВПР в Excel? — Функция ВПР – это очень мощный инструмент поиска. Но если он по каким-то причинам завершился неудачно, то вы получите сообщение об ошибке #Н/Д (#N/A в английском варианте). Давайте постараемся вместе…
Функция ВПР в Excel: пошаговая инструкция с 5 примерами — ВПР — это функция Excel для поиска и извлечения данных из определенного столбца в таблице. Она поддерживает приблизительное и точное сопоставление, а также подстановочные знаки (* и ?). Значения поиска…
Формула ВПР в Excel — 22 факта, которые нужно знать. — В процессе работы в Excel часто возникает задача извлечения нужных данных из рабочих таблиц. Для этой цели в Excel предусмотрена формула ВПР (VLOOKUP в английском варианте). И хотя ВПР относительно…

Суть запроса на выборку – выбрать из исходной таблицы строки, удовлетворяющие определенным критериям (подобно применению стандартного Фильтра ). Произведем отбор значений из исходной таблицы с помощью формул массива . В отличие от применения Фильтра ( CTRL+SHIFT+L или Данные/ Сортировка и фильтр/ Фильтр ) отобранные строки будут помещены в отдельную таблицу.

В этой статье рассмотрим наиболее часто встречающиеся запросы, например: отбор строк таблицы, у которых значение из числового столбца попадает в заданный диапазон (интервал); отбор строк, у которых дата принаждежит определенному периоду; задачи с 2-мя текстовыми критериями и другие. Начнем с простых запросов.

1. Один числовой критерий (Выбрать те Товары, у которых цена выше минимальной)

Пусть имеется Исходная таблица с перечнем Товаров и Ценами (см. файл примера, лист Один критерий — число ).

Необходимо отобразить в отдельной таблице только те записи (строки) из Исходной таблицы, у которых цена выше 25.

Решить эту и последующие задачи можно легко с помощью стандартного фильтра . Для этого выделите заголовки Исходной таблицы и нажмите CTRL+SHIFT+L . Через выпадающий список у заголовка Цены выберите Числовые фильтры. , затем задайте необходимые условия фильтрации и нажмите ОК.

Будут отображены записи удовлетворяющие условиям отбора.

Другим подходом является использование формул массива . В отличие от фильтра отобранные строки будут помещены в отдельную таблицу — своеобразный Отчет , который, например, можно отформатировать в стиль отличный от Исходной таблицы или производить другие ее модификации.

Критерий (минимальную цену) разместим в ячейке Е6 , таблицу для отфильтрованных данных — в диапазоне D10:E19 .

Теперь выделим диапазон D11:D19 (столбец Товар) и в Строке формул введем формулу массива :

Вместо ENTER нажмите сочетание клавиш CTRL+SHIFT+ENTER .

Те же манипуляции произведем с диапазоном E11:E19 куда и введем аналогичную формулу массива :

В результате получим новую таблицу, которая будет содержать только товары, у которых цены попадают в интервал, указанный в ячейках Е5 и Е6 .

Чтобы показать динамизм полученного Отчета (Запроса на выборку) введем в Е6 значение 65. В новую таблицу будет добавлена еще одна запись из Исходной таблицы, удовлетворяющая новому критерию.

Если в Исходную таблицу добавить новый товар с Ценой в диапазоне от 25 до 65, то в новую таблицу будет добавлена новая запись.

В файле примера также содержатся формулы массива с обработкой ошибок, когда в столбце Цена содержится значение ошибки, например #ДЕЛ/0! (см. лист Обработка ошибок ).

Следующие задачи решаются аналогичным образом, поэтому не будем их рассматривать так детально.

3. Один критерий Дата (Выбрать те Товары, у которых Дата поставки совпадает заданной)

Пусть имеется Исходная таблица с перечнем Товаров и Датами поставки (см. файл примера, лист Один критерий — Дата ).

Для отбора строк используются формулы массива, аналогичные Задаче1 (вместо критерия =$B$12:$B$20)*(СТРОКА($B$12:$B$20)-СТРОКА($B$11));$J$12-СТРОКА(A12)+СТРОКА($B$11)+1))

Примечание : После ввода формулы вместо клавиши ENTER (ВВОД) нужно нажать сочетание клавиш CTRL+SHIFT+ENTER. Это сочетание клавиш используется для ввода формул массива.

Скопируйте формулу массива вниз на нужное количество ячеек. Формула вернет только те значения Товаров, которые были поставлены в диапазоне указанных дат. В остальных ячейках будут содержаться ошибки #ЧИСЛО! Ошибки в файле примера (Лист 4.Диапазон Дат) скрыты с помощью Условного форматирования .

Аналогичную формулу нужно ввести и для дат в столбец E.

В ячейке J12 вычислено количество строк исходной таблицы, удовлетворяющих критериям:

Решение2 : Для отбора строк можно использовать формулы массива, аналогичные Задаче2 (т.е. формулы массива, возвращающие несколько значений ):

Для ввода первой формулы выделите диапазон ячеек G12:G20 . После ввода формулы вместо клавиши ENTER (ВВОД) нужно нажать сочетание клавиш CTRL+SHIFT+ENTER.

Решение3 : Если столбец Дат СОРТИРОВАН, то можно не использовать формулы массива.

Сначала необходимо вычислить первую и последнюю позиции строк, которые удовлетворяют критериям. Затем вывести строки с помощью функции СМЕЩ() .

Этот пример еще раз наглядно демонстрирует насколько предварительная сортировка данных облегчает написание формул.

5. Один критерий Дата (Выбрать те Товары, у которых Дата поставки не раньше/ не позже заданной)

Пусть имеется Исходная таблица с перечнем Товаров и Датами поставки (см. файл примера, лист Один критерий — Дата (не позже) ).

Для отбора строк, дата которых не раньше (включая саму дату), используется формула массива:

= ИНДЕКС(A12:A20;НАИМЕНЬШИЙ(ЕСЛИ($E$7 C15;И($B$7>=B15;$B$7 =$B$13:$B$21)*($B$13:$B$21>0);СТРОКА($B$13:$B$21);»»);СТРОКА($B$13:$B$21)-СТРОКА($B$12)) -СТРОКА($B$12))

Условие $E$7=$A$13:$A$21 гарантирует, что будут отобраны товары только определенного типа. Условие $E$8>=$B$13:$B$21 гарантирует, что будут отобраны даты не позже заданной (включая). Условие $B$13:$B$21>0 необходимо, если в диапазоне дат имеются пустые ячейки. Знак * (умножение) используется для задания Условия И (все 3 критерия должны выполняться для строки одновременно).

Примечание . Случай, когда список несортирован, рассмотрен в статье Поиск ДАТЫ (ЧИСЛА) ближайшей к заданной, с условием в MS EXCEL. Несортированный список .

7. Один Текстовый критерий (Выбрать Товары определенного вида)

Пусть имеется Исходная таблица с перечнем Товаров и Ценами (см. файл примера, лист Один критерий — Текст ).

Задача решается аналогично Задачам 1 и 3. Более подробное решение см. в статье Поиск ТЕКСТовых значений в MS EXCEL с выводом их в отдельный список. Часть1. Обычный поиск .

8. Два Текстовых критерия (Выбрать Товары определенного вида, поставленные в заданный месяц)

Пусть имеется Исходная таблица с перечнем Товаров и Ценами (см. файл примера, лист 2 критерия — текст (И) ).

Для отбора строк используется формула массива:

Выражение ($F$6=$A$11:$A$19)*($F$7=$B$11:$B$19) задает оба условия (Товар и Месяц).

Выражение СТРОКА(ДВССЫЛ(«A1:A»&ЧСТРОК($A$11:$A$19))) формирует массив последовательных чисел , т.е. номера строк в таблице.

9. Два Текстовых критерия (Выбрать Товары определенных видов)

Пусть имеется Исходная таблица с перечнем Товаров и Ценами (см. файл примера, лист 2 критерия — текст (ИЛИ) ).

В отличие от Задачи 7 отберем строки с товарами 2-х видов ( Условие ИЛИ ).

Для отбора строк используется формула массива:

= ИНДЕКС(A$11:A$19; НАИБОЛЬШИЙ((($E$6=$A$11:$A$19)+($E$7=$A$11:$A$19))*(СТРОКА($A$11:$A$19)-СТРОКА($A$10)); СЧЁТЕСЛИ($A$11:$A$19;$E$6)+СЧЁТЕСЛИ($A$11:$A$19;$E$7)-ЧСТРОК($A$11:A11)+1))

Условие ($E$6=$A$11:$A$19)+($E$7=$A$11:$A$19) гарантирует, что будут отобраны товары только заданных видов из желтых ячеек (Товар2 и Товар3). Знак + (сложение) используется для задания Условие ИЛИ (должен быть выполнен хотя бы 1 критерий).

Вышеуказанное выражение вернет массив . Умножив его на выражение СТРОКА($A$11:$A$19)-СТРОКА($A$10) , т.е. на массив последовательных чисел , получим массив позиций (номеров строк таблицы), удовлетворяющих критериям. В нашем случае это будет массив .

С помощью функции НАИБОЛЬШИЙ() выведем 3 значения из позиции 5 (строка 15 листа), 6 (16) и 7 (17), т.е. значения Товар2, Товар2 и Товар3. Для этого используем выражение СЧЁТЕСЛИ($A$11:$A$19;$E$6)+СЧЁТЕСЛИ($A$11:$A$19;$E$7)-ЧСТРОК($A$11:A11)+1 , которое последовательно (начиная со строки 11) будет возвращать числа 3; 2; 1; 0; -1; -2; . Формула НАИБОЛЬШИЙ(. ;3) вернет число 5, НАИБОЛЬШИЙ(. ;2) вернет число 6, НАИБОЛЬШИЙ(. ;1) вернет число 7, а НАИБОЛЬШИЙ(. ;0) и далее вернет ошибку, которую мы скроем условным форматированием .

И наконец, с помощью функции ИНДЕКС() последовательно выведем наши значения из соответствующих позиций: = ИНДЕКС(A$11:A$19;5) вернет Товар2, = ИНДЕКС(A$11:A$19;6) вернет Товар2, = ИНДЕКС(A$11:A$19;7) вернет Товар3.

10. Отбор значений с учетом повторов

В разделе Отбор на основании повторяемости собраны статьи о запросах с группировкой данных. Из повторяющихся данных сначала отбираются уникальные значения, а соответствующие им значения в других столбцах — группируются (складываются, усредняются и пр.).

Наиболее популярные статьи из этого раздела:

В качестве примера приведем решения следующей задачи: Выбрать Товары, цена которых лежит в определенном диапазоне и повторяется заданное количество раз или более.

В качестве исходной возьмем таблицу партий товаров.

Предположим, что нас интересует сколько и каких партий товаров поставлялось по цене от 1000р. до 2000р. (критерий 1). Причем, партий с одинаковой ценой должно быть минимум 3 (критерий 2).

Решением является формула массива:

Эта формула возвращает номера строк, которые удовлетворяют обоим критериям.

Формула =СУММПРОИЗВ(($C$14:$C$27>=$B$7)*($C$14:$C$27 =$B$10)) подсчитывает количество строк, которые удовлетворяют критериям.

В файле примера на листе «10.Критерий — колич-во повторов» настроено Условное форматирование , которое позволяет визуально определить строки удовлетворяющие критериям, а также скрыть ячейки, в которых формула массива возвращает ошибку #ЧИСЛО!

11. Используем значение критерия (Любой) или (Все)

В фильтре Сводных таблиц MS EXCEL используется значение (Все), чтобы вывести все значения столбца. Другими словами, в выпадающем списке значений критерия содержится особое значение, которое отменяет сам критерий (см. статью Отчеты в MS EXCEL , Отчет №3).

В файле примера на листе «11. Критерий Любой или (Все)» реализован данный вариант критерия.

Формула в этом случае должна содержать функцию ЕСЛИ() . Если выбрано значение (Все), то используется формула для вывода значений без учета данного критерия. Если выбрано любое другое значение, то критерий работает обычным образом.

Остальная часть формулы аналогична рассмотренным выше.

12. Актуальная цена

Пусть для товара ежедневно заполняется таблица цен (цена может меняться, но не каждый день). Нужно найти актуальнуй цену, т.е. цену на последнюю дату. Если товар всего один, то можно отсортировать по дате и в последней строке будет нужная актуальная цена. Если товаров много, то нужно сначала выбрать Автофильтром нужный товар, затем опять отсортировать по цене.

Чтобы иметь перечень товаров с актуальными ценами придется использовать формулы:

2) определяем последнюю (максимальную) дату для каждого товара с помощью формулы массива =МАКС((Таблица1[товар]=E8)*Таблица1[дата])

3) наконец, выводим актуальную цену =СУММЕСЛИМН(Таблица1[цена];Таблица1[товар];E8;Таблица1[дата];F8)

Для товара не должно быть повторов дат, иначе цены будут суммироваться (если повторяется последняя дата).

Самый быстрый ВПР

Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.

В этом случае, правильный выбор функции, применяемой для связывания таблиц, играет решающую роль — разница в производительности между ними, как мы увидим далее, может составлять более 20 раз!

Когда я писал свою первую книжку пять лет назад, то уже делал сравнительный скоростной тест различных способов поиска и подстановки данных функциями ВПР, ИНДЕКС+ПОИСКПОЗ, СУММЕСЛИ и др. С тех пор сменилось три версии Office, появились надстройки Power Query и Power Pivot, кардинально изменившие весь процесс работы с данными. А в прошлом году ещё и обновился вычислительный движок Excel, получив поддержку динамических массивов и новые функции ПРОСМОТРХ, ФИЛЬТР и т.п.

Так что пришла пора снова взяться за секундомер и выяснить — кто же самый быстрый. Ну и, заодно, проверить — какие способы поиска и подстановки данных в Excel вы знаете :)

Подопытный кролик

Тест будем проводить на следующем примере:

Исходный пример

Это книга Excel с одним листом, где расположены две таблицы: отгрузки (500 000 строк) и прайс-лист (600 строк). Наша задача — подставить цены из прайс-листа в таблицу отгрузок. Для каждого способа будем вводить формулу в ячейку С2 и копировать вниз на весь столбец, замеряя время, которое потребуется Excel, чтобы просчитать весь столбец из полумиллиона ячеек. Полученные значения, безусловно, зависят от множества факторов (поколение процессора, объем оперативной памяти, текущая загрузка системы, версия Office и т.д.), но нам важны не конкретные цифры, а, скорее, их сравнение друг с другом. Важно понимать прожорливость каждого способа и их ограничения.

Способ 1. ВПР

Сначала — классика :) Легендарная функция вертикального просмотра — ВПР (VLOOKUP), которая приходит в голову первой в подобных ситуациях:

ВПР

Здесь участвуют следующие аргументы:

  • B2 — искомое значение, т.е. название товара, который мы хотим найти в прайс-листе
  • $G$2:$H$600 — закреплённая знаками доллара (чтобы не сползала при копировании формулы вниз) абсолютная ссылка на прайс
  • 2 — номер столбца в прайс-листе, откуда мы хотим взять цену
  • 0 или ЛОЖЬ — переключение в режим поиска точного соответствия, когда любое некорректное название товара (например, ФОНЕРА) в столбце B в таблице отгрузок приведёт к появлению ошибки #Н/Д как результата работы функции.

Время вычисления = 4,3 сек.

Способ 2. ВПР с выделением столбцов целиком

Многие пользователи, применяя ВПР, во втором аргументе этой функции, где нужно задать поисковую таблицу (прайс), выделяют не ограниченный диапазон ($G$2:$H$600), а сразу столбцы G:H целиком. Это проще, быстрее, позволяет не думать про F4 и то, что завтра прайс-лист может быть на несколько строк больше. Формула в этом случае выглядит тоже компактнее:

ВПР с выделением столбцов целиком

В старых версиях Excel такое выделение не сильно влияло на скорость вычислений, но сейчас (неожиданно для меня, признаюсь) результат получился в разы хуже предыдущего.

Время вычисления = 14,5 сек.

Однако.

Способ 3. ИНДЕКС и ПОИСКПОЗ

Следующей после ВПР ступенью эволюции для многих пользователей Microsoft Excel обычно является переход на использование связки функций ИНДЕКС (INDEX) и ПОИСКПОЗ (MATCH). Выглядит эта формула так:

ИНДЕКС и ПОИСКПОЗ

Здесь:

Функция ИНДЕКС извлекает из заданного в первом аргументе диапазона (столбца $H$2:$H$600 с ценами в прайс-листе) содержимое ячейки с заданным номером. А номер этот, в свою очередь, определяется функцией ПОИСКПОЗ, у которой три аргумента:

  • Что нужно найти — название товара из B2
  • Где мы это ищем — столбец с названиями товаров в прайсе ($G$2:$G$600)
  • Режим поиска: 0 — точный, 1 или -1 — приблизительный с округлением в меньшую или большую сторону, соответственно.

Формула выходит чуть сложнее, но, при этом имеет несколько ощутимых преимуществ перед классической ВПР, а именно:

  • Не нужно отсчитывать номер столбца (как в третьем аргументе ВПР).
  • Можно извлекать данные, которые находятся левее столбца, где просходит поиск.

По скорости, однако же, этот способ проигрывает ВПР почти в два раза:

Время вычисления = 7,8 сек.

Если же, вдобавок, полениться и выделять не ограниченные диапазоны, а столбцы целиком:

ИНДЕКС и ПОИСКПОЗ с выделением столбцов целиком

… то результат получается совсем печальный:

Время вычисления = 28,5 сек.

28 секунд, Карл! В 6 раз медленнее ВПР!

Способ 4. СУММЕСЛИ

Если нужно найти не текстовые, а именно числовые данные (как в нашем случае — цену), то вместо ВПР вполне можно использовать функцию СУММЕСЛИ (SUMIF). Изначально она задумывалась как инструмент для выборочного суммирования данных по условию (найди и сложи мне все продажи кабелей, например), но можно заставить её искать нужный нам товар и в прайс-листе. Если грузы в нём не повторяются, то суммировать будет не с чем и эта функция просто выведет искомое значение:

СУММЕСЛИ

Здесь:

  • Первый аргумент СУММЕСЛИ — это диапазон проверяемых ячеек, т.е. названия товаров в прайсе ($G$2:$G$600).
  • Второй аргумент (B2) — что мы ищем.
  • Третий аргумент — диапазон ячеек с ценами $H$2:$H$600, числа из которых мы хотим просуммировать, если в соседних ячейках проверяемого диапазона есть искомое значение.

Очевидным минусом такого подхода является то, что он работает только с числами. Также этот способ не удобен, если прайс-лист находится в отдельном файле — придется всё время держать его открытым, т.к. функция СУММЕСЛИ не умеет брать данные из закрытых книг, в отличие от ВПР, для которой это не проблема.

В плюсы же можно записать удобство при поиске сразу по нескольким столбцам — для этого идеально подходит более продвинутая версия этой функции — СУММЕСЛИМН (SUMIFS). Скорость вычислений же, при этом, весьма посредственная:

Время вычисления = 12,8 сек.

При выделении столбцов целиком, т.е. использовании формулы вида =СУММЕСЛИ(G:G; B2; H:H) всё ещё хуже:

Время вычисления = 41,7 сек.

Это самый плохой результат в нашем тесте.

Способ 5. СУММПРОИЗВ

Этот подход сейчас встречается не часто, но всё ещё достаточно регулярно. Обычно так любят извращаться пользователи старой школы, ещё хорошо помнящие те времена, когда в Excel было всего 255 столбцов и 56 цветов :)

Суть этого метода заключается в использовании функции СУММПРОИЗВ (SUMPRODUCT), изначально предназначенной для поэлементного перемножения нескольких диапазонов с последующим суммированием полученных произведений. В нашем случае, вместо одного из массивов будет выступать условие, а вторым будут цены:

СУММПРОИЗВ

Выражение ($G$2:$G$600=B2), по сути, проверяет каждое название груза в прайс-листе на предмет соответствия искомому значению (ФАНЕРА ПР). Результатом каждого сравнения будет логическое значение ИСТИНА (TRUE) или ЛОЖЬ (FALSE), что в Excel интерпретируется как 1 и 0, соответственно. Последующее умножение этих нулей и единиц на цены оставит в живых цену только того товара, который нам, в данном случае, и нужен.

Эта формула является, по сути, формулой массива, но не требует нажатия обычного для них сочетания клавиш Ctrl+Shift+Enter, т.к. функция СУММПРОИЗВ поддерживает массивы уже сама по себе. Возможно, по этой же причине (формулы массива всегда  медленнее, чем обычные) такой скорость пересчёта такой формулы — не очень:

Время вычисления = 11,8 сек.

К плюсам же такого подхода можно отнести:

  • Совместимость с любыми, самыми древними версиями Excel.
  • Возможность задавать сложные условия (и несколько)
  • Способность этой формулы работать с данными из закрытых файлов, если добавить перед ней двойное бинарное отрицание (два подряд знака «минус»). СУММЕСЛИМН таким похвастаться не может.

Способ 6. ПРОСМОТР

Ещё один относительно экзотический способ поиска и подстановки данных, наравне с ВПР — это использование функции ПРОСМОТР (LOOKUP). Только не перепутайте её с новой, буквально, на днях появившейся функцией ПРОСМОТРХ (XLOOKUP) — про неё мы поговорим дальше особо. Функция ПРОСМОТР существовала в Excel начиная с самых ранних версий и тоже вполне может решить нашу задачу:

ПРОСМОТР

Здесь:

  • B2 — название груза, которое мы ищем
  • $G$2:$G$600 — одномерный диапазон-вектор (столбец или строка), где мы ищем совпадение
  • $H$2:$H$600 — такого же размера диапазон, откуда нужно вернуть найденный результат (цену)

На первый взгляд всё выглядит очень удобно и логично, но всю картину портят два неочевидных момента:

  • Эта функция требует обязательной сортировки прайс-листа по возрастанию (алфавиту) и без этого не работает.
  • Если в таблице отгрузок искомое значение будет написано с опечаткой (например, АГЕДОЛ вместо АГИДОЛ), то функция ПРОСМОТР выдаст не ошибку #Н/Д, а цену для ближайшего предыдущего товара:

Ошибка с ПРОСМОТР

При работе с неидеальными данными в реальном мире это гарантированно создаст проблемы, как вы понимаете.

Скорость же вычислений у функции ПРОСМОТР (LOOKUP) весьма приличная:

Время вычисления = 7,6 сек.

Способ 7. Новая функция ПРОСМОТРХ

Эта функция пришла с одним из недавних обновлений пока только пользователям Office 365 и пока отсутствует во всех остальных версиях (Excel 2010, 2013, 2016, 2019). По сравнению с классической ВПР у этой функции есть масса преимуществ (упрощенный синтаксис, возможность искать не только сверху-вниз, возможность сразу задать значение вместо #Н/Д и т.д.) Формула для решения нашей задачи будет выглядеть в этом случае так:

ПРОСМОТРХ

Если не брать в расчёт необязательные 4,5,6 аргументы, то синтаксис этой функции полностью совпадает с её предшественником — функцией ПРОСМОТР (LOOKUP). Скорость вычислений при тестировании на наши 500000 строк тоже оказалась аналогичной:

Время вычисления = 7,6 сек.

Почти в два раза медленнее, чем у ВПР, вместо которой Microsoft предлагает теперь использовать ПРОСМОТРХ. Жаль.

И, опять же, если полениться и выделить диапазоны в прайс-листе целыми столбцами:

ПРОСМОТРХ и выделение столбцов целиком

… то скорость падает до совершенно неприличных уже значений:

Время вычисления = 28,3 сек.

А если на динамических массивах?

Прошлогоднее (осень 2019) обновление вычислительного движка Microsoft Excel добавило ему поддержку динамических массивов (Dynamic Arrays), о которых я уже писал. Это принципиально новый подход к работе с данными, который можно использовать почти с любыми классическими функциями Excel. На примере ВПР это будет выглядеть так:

ВПР на динамических массивах

Разница с классическим вариантом в том, что первым аргументом ВПР здесь выступает не одно искомое значение (а формулу потом нужно копировать вниз на остальные строки), а сразу весь массив из полумиллиона грузов B2:B500000, цены для которых мы хотим найти. Формула при этом сама распространяется вниз, занимая требуемое количество ячеек.

Скорость пересчета в таком варианте меня, откровенно говоря, ошеломила — пауза между нажатием на Enter после ввода формулы и получением результатов почти отсутствовала.

Время вычисления = 1 сек.

Что интересно, и новая ПРОСМОТРХ, и старая ПРОСМОТР, и связка ИНДЕКС+ПОИСКПОЗ в таком режиме тоже были очень быстрыми — время вычислений не больше 1 секунды! Фантастика.

А вот олдскульные подходы на основе СУММПРОИЗВ и СУММЕСЛИ(МН) с динамическими массивами работать отказались :(

Что с умными таблицами?

Обрадовавшись фантастическим результатам, полученным на динамических массивах, я решил вдогон попробовать протестировать разницу в скорости при работе с обычными и «умными» таблицами. Я имею ввиду те самые «красивые таблицы», в которые вы можете преобразовать ваш диапазон с помощью команды Форматировать как таблицу на вкладке Главная (Home — Format as Table) или с помощью сочетания клавиш Ctrl+T.

Если предварительно превратить наши отгрузки и прайс в «умные» (по умолчанию они получат имена Таблица1 и Таблица2, соответственно), то формула с той же ВПР будет выглядеть как:

ВПР на умных таблицах

Здесь:

  • [@Груз] — ссылка на ячейку B2, означающая, в данном случае, что нужно взять значение из той же строки из столбца Груз текущей умной таблицы.
  • Таблица2 — ссылка на прайс-лист

Жирным плюсом такого подхода будет возможность легко добавлять данные в наши таблицы в будущем. При дописывании новых строк в отгрузки или к прайс-листу, наши «умные» таблицы будут растягиваться автоматически.

Скорость же, как выяснилось, тоже вырастает очень значительно и примерно равна скорости работы на динамических массивах:

Время вычисления = 1 сек.

У меня есть подозрение, что дело тут не в самих «умных» таблицах, а всё в том же обновлении вычислительного движка, т.к. на старых версиях Excel такого прироста в скорости на умных таблицах я не помню.

Бонус. Запрос Power Query

Замерять, так замерять! Давайте, для полноты картины, сравним наши перечисленные способы еще и с запросом Power Query, который тоже может решить нашу задачу. Кто-то скажет, что некорректно сравнивать пересчёт формул с механизмом обновления запроса, но мне, откровенно говоря, просто самому было интересно — кто быстрее?

Итак:

  1. Превращаем обе наши таблицы в «умные» с помощью команды Форматировать как таблицу на вкладке Главная (Home — Format as Table) или с помощью сочетания клавиш Ctrl+T.
  2. По очереди загружаем таблицы в Power Query с помощью команды Данные — Из таблицы / диапазона (Data — From Table/Range).
  3. После загрузки в Power Query возвращаемся обратно в Excel, оставляя загруженные данные как подключение. Для этого в окне Power Query выбираем Главная — Закрыть и загрузить — Закрыть и загрузить в… — Только создать подключение (Home — Close&Load — Close&Load to… — Only create connection).
  4. После того, как обе исходные таблицы будут загружены как подключения, создадим ещё один, третий запрос, который будет объединять их между собой, подставляя цены из прайса в отгрузки. Для этого на вкладке Данные выберем Получить данные / Создать запрос — Объединить запросы — Объединить (Get Data / New Query — Merge queries — Merge):

    Объединяем запросы

  5. В открывшемся окне выберем исходные таблицы в выпадающих списках и выделим столбцы, по которым произойдет связывание:

    Настройки объединения

  6. После нажатия на ОК мы вернемся в окно Power Query, где увидим нашу таблицу отгрузок с добавленным к ней столбцом, где в каждой ячейке будет лежать фрагмент прайс-листа, соответствующий этому грузу. Развернем вложенные таблицы с помощью кнопки с двойными стрелками в шапке столбца, выбрав нужные нам данные (цены):

    Разворачиваем вложенные таблицы после объединения

  7. Останется выгрузить готовую таблицу обратно на лист с помощью уже знакомой команды Главная — Закрыть и загрузить (Home — Close&Load).

В отличие от формул, запросы Power Query не обновляются автоматически «на лету», а требуют щелчка правой кнопкой мыши по таблице (или запросу в правой панели) и выбору команды Обновить (Refresh). Также можно воспользоваться командой Обновить все (Refresh All) на вкладке Данные (Data).

Время обновления = 8,2 сек.

Итоговая таблица и выводы

Если вы честно дочитали до этого места, то какие-то выводы, наверное, уже сделали самостоятельно. Если же пропустили все детали и сразу перешли к итогам, то вот вам общая результирующая таблица по скорости всех методов:

Итоговая таблица результатов

Само-собой, у каждого из нас свои предпочтения, задачи и тараканы, но для себя я сформулировал выводы после этого тестирования так:

  • ВПР всё ещё главная рабочая лошадка. После прошлогодних обновлений, ускоряющих ВПР, и осенних обновлений вычислительного движка, эта функция заиграла новыми красками и даёт жару по-полной.
  • Не нужно лениться и выделять столбцы целиком — для всех способов без исключения это ухудшает результаты почти в 3 раза.
  • Экзотические способы из прошлого типа СУММПРОИЗВ и СУММЕСЛИ — в топку. Они работают очень медленно и, вдобавок, не поддерживают динамические массивы.
  • Динамические массивы и умные таблицы — это будущее.

К сожалению, у меня не было возможностей полноценно протестировать эти методы на старых версиях Excel и на Excel for Mac (запускать эмуляцию Office на виртуальной машине и тестировать скорость — не есть правильно). Буду благодарен, если вы сможете найти время, чтобы прогнать эти способы на своих ПК и версиях и поделитесь результатами и своими мыслями в комментариях, чтобы вместе мы смогли составить полную картину.

Ссылки по теме

  • Как использовать функцию ВПР для подстановки значений в Excel
  • Функция ПРОСМОТРХ как наследник ВПР
  • 5 вариантов использования функции ИНДЕКС

Запрос на выборку данных (формулы) в MS EXCEL

​Смотрите также​ новый формат. Чтобы​ выпадающего списка. Нам​Задача №2 – выбрать​ строка таблицы будет​ из таблицы (например,​ своеобразный отчет, который​.​ условным форматированием. Установим​.​ в позицию​​ положение​​ результатов, которые удовлетворяют​ со строки 11)​ этого События: ЕСЛИ($D$15:$D$21;СТРОКА(A$15:A$21);»»)​: После ввода формулы вместо​ которая возвращает несколько​

​Суть запроса на выборку​ формат присваивался для​ нужны все Фамилии​ из исходной таблицы​ на 5 меньше​ текстовых), из которых​ можно форматировать в​Активируется окно настройки сортировки.​ первым ограничением нижнюю​Аналогичным образом в столбец​«Равно»​«ИЛИ»​ заданным условиям, с​ будет возвращать числа​

1. Один числовой критерий (Выбрать те Товары, у которых цена выше минимальной)

​- Функция НАИМЕНЬШИЙ() сортирует​ клавиши ENTER (ВВОД)​ значений, то можно​ – выбрать из​ целой строки, а​ клиентов из столбца​

​ товары, которые поступили​ чем соответственная строка​ функция ИНДЕКС выберет​ стиль отличный от​ Обязательно устанавливаем галочку​ границу отбора по​

​ с выручкой вписываем​. В поле справа​, то тогда останутся​ последующим выводом их​ 3; 2; 1;​ полученный массив номеров​​ нужно нажать сочетание​​ использовать другой подход,​ исходной таблицы строки,​ не только ячейке​ A, без повторений.​ в продажу 20.09.2015.​ листа.​

​ одно результирующие значение.​ исходной таблицы. В​

​ напротив параметра​ выручке в 15000​ формулу следующего содержания:​ от него вписываем​ значения, которые подходят​ на листе отдельным​ 0; -1; -2;​ строк: первыми идут​ клавиш CTRL+SHIFT+ENTER. Это​ который рассмотрен в​ удовлетворяющие определенным критериям​ в столбце A,​

​Перед тем как выбрать​ То есть критерий​​После того как будут​​ Аргумент «диапазон» означает​ этот отчет можно​«Мои данные содержат заголовки»​​ рублей, а вторым​​=ИНДЕКС(C2:C29;НАИМЕНЬШИЙ(ЕСЛИ(15000​

​ слово​​ под любое из​​ списком или в​ … Формула НАИБОЛЬШИЙ(…;3) вернет​ номера строк Событий,​

​ сочетание клавиш используется​
​ разделах ниже: 5.а,​

​ (подобно применению стандартного​​ мы используем смешанную​​ уникальные значения в​​ отбора – дата.​​ отобраны все минимальные​ область ячеек с​

​ вынести не все​, если шапка имеется,​​ условием верхнюю границу​​Опять набираем сочетание клавиш​«Картофель»​ двух условий. В​

​ исходном диапазоне.​
​ число 5, НАИБОЛЬШИЙ(…;2) вернет​

​ которые удовлетворяют критерию;​ для ввода формул​ 7, 10 и​ Фильтра). Произведем отбор значений​ ссылку в формуле​ Excel, подготовим данные​​ Для удобства искомую​​ значения и сопоставлены​

​ числовыми значениями, из​ столбцы, а только​ а галочки нет.​​ в 20000 рублей.​​Ctrl+Shift+Enter​. Переключатель нижнего блока​ нашем случае нужно​

​Наиболее простым способом произвести​ число 6, НАИБОЛЬШИЙ(…;1) вернет​- Функция ИНДЕКС() выводит​ массива.​ 11. В этих​ из исходной таблицы​

​ =$A4.​​ для выпадающего списка:​ дату введем в​ все номера строк​ которых следует выбрать​ нужные (хотя после​ В поле​Вписываем в отдельном столбце​

​.​ так же ставим​ выставить переключатель в​ отбор является применение​ число 7, а НАИБОЛЬШИЙ(…;0)​ названия Событий из​Скопируйте формулу массива вниз​ случаях используются формулы​ с помощью формул​KDE123​Выделите первый столбец таблицы​ отдельную ячейку, I2.​

2. Два числовых критерия (Выбрать те Товары, у которых цена попадает в диапазон)

​ таблицы функция МИН​ первое наименьшее число.​ применения фильтра ненужные​«Сортировать по»​ граничные условия для​

​Во всех трех случаях​ в позицию​ положение​​ расширенного автофильтра. Рассмотрим,​​ и далее вернет​

​ указанный строк.​ на нужное количество​ массива, возвращающие одно​ массива. В отличие​: Помогите, пожалуйста!​ A1:A19.​

​Для решения задачи используется​ выберет наименьший номер​ В аргументе «заголовок_столбца»​ столбцы можно скрыть).​указываем наименование того​ выборки.​ меняется только первое​«Равно»​«И»​ как это сделать​ ошибку, которую мы​Пусть имеется Исходная таблица​ ячеек. Формула вернет​

​ значение. ​​ от применения Фильтра​​Необходимо из таблицы​Выберите инструмент: «ДАННЫЕ»-«Сортировка и​ аналогичная формула массива.​

​ строки. Эта же​
​ для второй функции​
​Основной недостаток – сложность​
​ столбца, в котором​

​Как и в предыдущем​​ значение координат, а​​. В поле напротив​​, то есть, оставить​​ на конкретном примере.​

​ скроем условным форматированием.​ с перечнем Товаров​​ только те значения​​Пусть имеется Исходная таблица​ (​

​ на листе «Разработка»​
​ фильтр»-«Дополнительно».​
​ Только вместо критерия​
​ строка будет содержать​

​ СТРОКА, следует указать​ реализации трехуровневого Связанного​ содержатся скопированные значения​ способе, поочередно выделяем​ в остальном формулы​ него делаем запись​​ данную настройку по​​Выделяем область на листе,​

​И наконец, с помощью​ и Датами поставки​ Товаров, которые были​​ с перечнем Товаров​​CTRL+SHIFT+L​ выбрать строки для​В появившемся окне «Расширенный​ }.​ первое наименьшее число,​ ссылку на ячейку​

​ списка. Но, единожды​ случайных чисел. В​ пустые столбцы новой​ полностью идентичны.​ –​ умолчанию. После того,​ среди данных которой​ функции ИНДЕКС() последовательно​

​ (см. файл примера,​ поставлены в диапазоне​ и Ценами (см.​или Данные/ Сортировка​ которых состояние «Вып»​ фильтр» включите «скопировать​Подобные формулы вводятся и​ которое встречается в​

​ с заголовком столбца,​ его создав и​ поле​ таблицы и вписываем​

3. Один критерий Дата (Выбрать те Товары, у которых Дата поставки совпадает заданной)

​Как видим, таблица заполнена​«Мясо»​ как все значения​ нужно произвести выборку.​ выведем наши значения​ лист 2 критерия​

​ указанных дат. В​ файл примера, лист​ и фильтр/ Фильтр)​

​ и дата разработки​

​ результат в другое​

4. Два критерия Дата (Выбрать те Товары, у которых Дата поставки попадает в диапазон)

​ в другие столбцы​ столбце B6:B18. На​ который содержит диапазон​ поняв принцип работы,​«Сортировка»​

​ в них соответствующие​ данными, но внешний​

​. И вот далее​​ введены, щелкаем по​ Во вкладке​ из соответствующих позиций:​ — Дата-Текст).​

​ остальных ячейках будут​​ Диапазон Чисел).​​ отобранные строки будут​

​ находится в пределах​
​ место», а в​
​ (принцип см. выше).​

​ основании этого номера​​ числовых значений.​ этот недостаток в​оставляем настройки по​ три формулы. В​ вид её не​ мы выполняем то,​ кнопке​

​«Главная»​ =ИНДЕКС(A$11:A$19;5) вернет Товар2, =ИНДЕКС(A$11:A$19;6) вернет Товар2, =ИНДЕКС(A$11:A$19;7) вернет Товар3.​В отличие от Задачи​ содержаться ошибки #ЧИСЛО!​Критерии (нижнюю и верхнюю​ помещены в отдельную​ границы «Начало отсчета​ поле «Поместить результат​Теперь используем текстовый критерий.​ строки функции ИНДЕКС​Естественно эту формулу следует​ достаточной мере компенсируется.​ умолчанию. В поле​

​ первый столбец вносим​ совсем привлекателен, к​ чего ранее не​

​«OK»​​щелкаем по кнопке​​В разделе Отбор на​ 5 будем отбирать​ Ошибки в файле примера​

​ границы цены) разместим​

​ таблицу.​ — Конец отсчета»​ в диапазон:» укажите​

​ Вместо даты в​​ выберет соответствующее значение​ выполнять в массиве.​Алгоритм создания запроса на​«Порядок»​ следующее выражение:​

​ тому же, значения​

​ делали: устанавливаем переключатель​

​.​«Сортировка и фильтр»​​ основании повторяемости собраны​​ строки только того​ (Лист 4.Диапазон Дат) скрыты​ в диапазоне​В этой статье рассмотрим​

​ (Столбец L). Выбранные​​ $F$1.​ ячейку I2 введем​ из таблицы A6:A18.​ Поэтому для подтверждения​

​ выборку следующий:​можно выбрать параметр​=ИНДЕКС(A2:A29;НАИМЕНЬШИЙ(ЕСЛИ(($D$2=C2:C29);СТРОКА(C2:C29);»»);СТРОКА(C2:C29)-СТРОКА($C$1))-СТРОКА($C$1))​ даты заполнены в​ совместимости условий в​Теперь в таблице остались​

​. Она размещается в​ статьи о запросах​ Товара, который указан​ с помощью Условного​

5. Один критерий Дата (Выбрать те Товары, у которых Дата поставки не раньше/ не позже заданной)

​Е5:Е6​ наиболее часто встречающиеся​ данные разместить на​Отметьте галочкой пункт «Только​ текст «Товар 1».​ В итоге формула​ ее ввода следует​

​ШАГ 1​ как​В последующие колонки вписываем​ ней некорректно. Нужно​

​ позицию​

​ только строчки, в​ блоке настроек​ с группировкой данных.​ в критерии. Список​ форматирования.​.​

​ запросы, например: отбор​ новом листе.​ уникальные записи» и​ Немного изменим формулу​ возвращает это значение​ нажимать не просто​Сначала создадим Лист​«По возрастанию»​ точно такие же​ исправить эти недостатки.​«ИЛИ»​

5а. Один критерий Дата (Выбрать События, которые Закончились/ не начались/ происходят на заданную дату)

​ которых сумма выручки​«Редактирование»​ Из повторяющихся данных​

​ дат должен быть​Аналогичную формулу нужно ввести​Т.е. если Цена Товара​ строк таблицы, у​Хотелось бы все​ нажмите ОК.​ массива: {}.​ в ячейку B3​

​ клавишу Enter, а​Списки​, так и​ формулы, только изменив​ Некорректность даты связана​. Теперь строчка, содержащая​ не меньше 10000​

​. В открывшемся после​

​ сначала отбираются уникальные​ отсортирован (для каждого​ и для дат​ попадает в указанный​ которых значение из​ это сделать без​В результате мы получили​Такая большая функция выборки​ в качестве результата​ целую комбинацию клавиш​, в котором будут​«По убыванию»​

​ координаты сразу после​ с тем, что​ любое из указанных​

​ рублей, но не​

​ этого списка выполняем​

​ значения, а соответствующие​ из товаров), по​ в столбец E.​ интервал, то такая​

​ числового столбца попадает​ макросов.​ список данных с​ в Excel.​ вычисления.​

​ CTRL+SHIFT+Enter. Если все​ содержаться перечень дирекций​. Для случайной выборки​

6. Два критерия: Дата и Текст (Выбрать Товары определенного вида, у которых Дата поставки не позже заданной)

​ наименования оператора​ формат ячеек соответствующего​ условий, будет выводиться​ превышает 15000 рублей.​ щелчок по кнопке​ им значения в​

​ товару сортировка не​В ячейке​ запись появится в​ в заданный диапазон​Алексей К​ уникальными значениями (фамилии​​Поняв принцип действия формулы,​ сделано правильно в​ и названия отделов​

​ это значения не​ИНДЕКС​ столбца общий, а​ на экран. Щелкаем​

​Аналогично можно настраивать фильтры​
​«Фильтр»​
​ других столбцах -​

​ требуется.​J12​ новой таблице Отфильтрованные​ (интервал); отбор строк,​: С использованием расширенного​ без повторений).​Сначала возьмем два числовых​ теперь можно легко​ строке формул появятся​ (см. файл примера).​ имеет. После того,​на соответствующие нужным​ нам нужно установить​ по кнопке​ и в других​

​.​​ группируются (складываются, усредняются​Для отбора строк, дата​вычислено количество строк​ данные.​ у которых дата​ фильтра во вложении.​​

7. Один Текстовый критерий (Выбрать Товары определенного вида)

​ критерия:​ ее модифицировать и​ фигурные скобки.​Перечень дирекций (столбец​ как настройки произведены,​ нам столбцам, по​

​ формат даты. Выделяем​«OK»​ столбцах. При этом​Есть возможность поступить и​ и пр.).​ которых не позже​ исходной таблицы, удовлетворяющих​В отличие от предыдущей​ принаждежит определенному периоду;​

8. Два Текстовых критерия (Выбрать Товары определенного вида, поставленные в заданный месяц)

​KDE123​Теперь нам необходимо немного​Задача – отобрать товары,​ настраивать под другие​Обратите внимание ниже на​А​

​ жмем на кнопку​ аналогии с предыдущим​

​ весь столбец, включая​
​.​

​ имеется возможность сохранять​ по-другому. Для этого​Наиболее популярные статьи из​

​ (включая саму дату),​ критериям:​ задачи создадим два​ задачи с 2-мя​

9. Два Текстовых критерия (Выбрать Товары определенных видов)

​: Здорово! Спасибо!​ модифицировать нашу исходную​ которые стоят меньше​ условия. Например, формулу​ рисунок, где в​) будет извлекаться формулой​

​«OK»​ способом.​ ячейки с ошибками,​Как видим, в новой​

​ также фильтрацию и​ после выделения области​

​ этого раздела:​
​ используется формула массива:​

​=СЧЁТЕСЛИМН(B12:B20;»>=»&$E$6;B12:B20;»​ Динамических диапазона: Товары​ текстовыми критериями и​Поясни как работает.​ таблицу. Выделите первые​ 400 и больше​ можно изменить так,​ ячейку B3 была​ массива из исходной​.​

​Каждый раз после ввода​ и кликаем по​ выборке существуют ограничения​ по предыдущим условиям,​ на листе перемещаемся​Отбор уникальных значений (убираем​=ИНДЕКС(A13:A21;​Строки исходной таблицы, которые​ и Цены (без​

​ другие. Начнем с​ Как обновить результаты​ 2 строки и​ 200 рублей. Объединим​ чтобы выбрать первое​ введена данная формула​ таблицы с перечнем​После этого все значения​ не забываем набирать​ выделению правой кнопкой​ по дате (с​ которые были заданы​ во вкладку​ повторы из списка)​НАИМЕНЬШИЙ(ЕСЛИ(($E$7=$A$13:$A$21)*($E$8>=$B$13:$B$21)*($B$13:$B$21>0);СТРОКА($B$13:$B$21);»»);СТРОКА($B$13:$B$21)-СТРОКА($B$12))​ удовлетворяют критериям, выделены также​ них можно обойтись,​ простых запросов.​ отбора, изменив критерии​ выберите инструмент: «ГЛАВНАЯ»-«Ячейки»-«Вставить»​ условия знаком «*».​

​ максимальное значение в​ в массиве:​ сотрудников:​ таблицы выстраиваются в​ сочетание клавиш​

10. Отбор значений с учетом повторов

​ мыши. В появившемся​ 04.05.2016 по 06.05.2016)​ в колонках. Итак,​«Данные»​ в MS EXCEL​-СТРОКА($B$12))​ Условным форматированием.​ но они удобны​Пусть имеется Исходная таблица​ (даты)?​ или нажмите комбинацию​

​ Формула массива выглядит​ Excel:​

​Выборка соответственного значения с​=ЕСЛИОШИБКА(ИНДЕКС(Сотрудники[Дирекция];​ порядке возрастания или​

​Ctrl+Shift+Enter​ списке переходим по​ и по наименованию​ посмотрим, как производится​

​. Щелкаем по кнопке​Отбор уникальных значений с​

​Условие $E$7=$A$13:$A$21 гарантирует, что​Решение2​ при написании формул).​

​ с перечнем Товаров​Алексей К​ горячих клавиш CTRL+SHIFT+=.​

​ следующим образом: {=C2:C10);СТРОКА(C2:C10);»»);СТРОКА(C2:C10)-СТРОКА($C$1))-СТРОКА($C$1))’​Если необходимо изменить условия​ первым наименьшим числом:​ПОИСКПОЗ(0;СЧЁТЕСЛИ($A$1:A1;Сотрудники[Дирекция]);0));»»)​ убывания случайных чисел.​.​ пункту​

​ (картофель и мясо).​ отбор с помощью​

​«Фильтр»​ суммированием по соседнему​ будут отобраны товары​: Для отбора строк​ Соответствующие формулы должны​ и Ценами (см.​: Вкладка Данные-Сортировка и​У нас добавилось 2​ class=’formula’>}.​ формулы так, чтобы​

​С такой формулой нам​

​Подробности работы этой формулы​

​ Можно взять любое​Преимущество данного способа перед​«Формат ячейки…»​

​ По сумме выручки​ фильтра для ячеек​

​, которая размещена на​ столбцу в MS​ только определенного типа.​ можно использовать формулы​ выглядеть в Диспетчере​ файл примера, лист​ фильтр-Дополнительно. Исходный диапазон-таблица​ пустые строки. Теперь​Это для первого столбца​ можно было в​

11. Используем значение критерия (Любой) или (Все)

​ удалось выбрать минимальное​ можно прочитать в​ количество первых строчек​ предыдущим заключается в​.​ ограничений нет.​ в формате даты.​ ленте в группе​ EXCEL​ Условие $E$8>=$B$13:$B$21 гарантирует, что​ массива, аналогичные Задаче2​ имен (Формулы/ Определенные​

​ Один критерий -​ данных, Диапазон условий-табличка​ в ячейку A1​ таблицы-отчета. Для второго​

​ Excel выбрать первое​ значение относительно чисел.​ статье Отбор уникальных​ из таблицы (5,​ том, что если​В открывшемся окне форматирования​Полностью удалить фильтр можно​ Кликаем по значку​«Сортировка и фильтр»​Отбор повторяющихся значений в​ будут отобраны даты​

​ (т.е. формулы массива, возвращающие​
​ имена/ Диспетчер имен)​
​ число).​

​ с шапочкой и​ введите значение «Клиент:».​

excel2.ru

Выборка данных в Microsoft Excel

Выборка в Microsoft Excel

​ и третьего –​ максимальное, но меньше​ Далее разберем принцип​ значений.​ 10, 12, 15​ мы захотим поменять​ открываем вкладку​ теми же способами,​ фильтрации в соответствующем​.​ MS EXCEL​ не позже заданной​ несколько значений):​

​ следующим образом (см.​Необходимо отобразить в отдельной​

Выполнение выборки

​ данными для фильтра,​Пришло время для создания​ меняем первый аргумент​ чем 70:​ действия формулы и​Перечень отделов (диапазон​ и т.п.) и​ границы выборки, то​«Число»​

Способ 1: применение расширенного автофильтра

​ которые использовались для​ столбце. Последовательно кликаем​После этого действия в​Отбор уникальных значений из​ (включая). Условие $B$13:$B$21>0 необходимо,​

  1. ​=ИНДЕКС(A12:A20;НАИМЕНЬШИЙ(ЕСЛИ(($E$6<>=B12:B20);СТРОКА(B12:B20);»»);СТРОКА(B12:B20)-СТРОКА($B$11))-СТРОКА($B$11))​ рисунок ниже).​ таблице только те​ куда поместить диапазон-на​​ выпадающего списка, из​​ функции ИНДЕКС. Результат:​​=70;»»;B6:B18));СТРОКА(B6:B18)-СТРОКА(B5);»»)))’ class=’formula’>​​ пошагово проанализируем весь​B2:E8​​ их можно будет​​ совсем не нужно​. В блоке​ его установки. Причем​​ по пунктам списка​​ шапке таблицы появляются​

    Включение фильтра в Microsoft Excel

    ​ двух диапазонов в​ если в диапазоне​=ИНДЕКС(B12:B20;НАИМЕНЬШИЙ(ЕСЛИ(($E$6<>=B12:B20);СТРОКА(B12:B20);»»);СТРОКА(B12:B20)-СТРОКА($B$11))-СТРОКА($B$11))​Теперь выделим диапазон​ записи (строки) из​​ Ваш выбор ячейка​​ которого мы будем​​Чтобы сделать выборку по​​Как в Excel выбрать​ порядок всех вычислений.​​) будет извлекаться аналогичной формулой​​ считать результатом случайной​

    Включение фильтра через вкладку Данные в Microsoft Excel

  2. ​ будет менять саму​«Числовые форматы»​ неважно, какой именно​«Фильтр по дате»​ пиктограммы для запуска​ MS EXCEL​ дат имеются пустые​Для ввода первой формулы​D11:D19​ Исходной таблицы, у​ (активируется если вверхупереключить​ выбирать фамилии клиентов​ нескольким датам или​ первое минимальное значение​​​​ массива в соответствующие​​ выборки.​​ формулу массива, что​

    Переход в настраиваемый фильтр в Microsoft Excel

  3. ​выделяем значение​ способ применялся. Для​и​ фильтрования в виде​Отбор уникальных СТРОК с​ ячейки. Знак *​ выделите диапазон ячеек​и в Строке​ которых цена выше​ скопировать в другое​ в качестве запроса.​ числовым критериям, используем​
    • ​ кроме нуля:​
    • ​Ключевую роль здесь играет​
    • ​ столбцы на Листе​
    • ​Урок:​
    • ​ само по себе​

    ​«Дата»​ сброса фильтрации, находясь​«Настраиваемый фильтр»​ перевернутых острием вниз​ помощью Расширенного фильтра​ (умножение) используется для​G12:G20​​ формул введем формулу​​ 25.​ место) . Далее​​Перед тем как выбрать​​ аналогичные формулы массива.​Как легко заметить, эти​ функция ИНДЕКС. Ее​​Списки​​Сортировка и фильтрация данных​

    Пользвательский фильтр в Microsoft Excel

  4. ​ довольно проблематично. Достаточно​. В правой части​ во вкладке​.​ небольших треугольников на​

    Результаты фильтрации в Microsoft Excel

  5. ​ в MS EXCEL​ задания Условия И​. После ввода формулы вместо​ массива:​Решить эту и последующие​ ОК​ уникальные значения из​Когда пользователь работает с​ формулы отличаются между​ номинальное задание –​:​ в Excel​ в колонке условий​ окна можно выбрать​«Данные»​Снова запускается окно пользовательского​ правом краю ячеек.​​В качестве примера приведем​​ (все 3 критерия​ клавиши ENTER (ВВОД)​​=ИНДЕКС(Товары;​​ задачи можно легко​

    ​Александр Сергеевич​ списка сделайте следующее:​ большим количеством данных,​​ собой только функциями​​ это выбирать из​​=ЕСЛИОШИБКА(ИНДЕКС(Сотрудники[Отдел];​​Как видим, выборку в​ на листе поменять​ желаемый тип отображения​щелкаем по кнопке​ автофильтра. Выполним отбор​ Кликаем по данному​ решения следующей задачи: Выбрать​ должны выполняться для​ нужно нажать сочетание​​НАИМЕНЬШИЙ(​​ с помощью стандартного​: Тогда на новом​Перейдите в ячейку B1​ для последующего их​ МИН и МАКС​ исходной таблицы (указывается​ПОИСКПОЗ(0;ЕСЛИ(B$1=Сотрудники[Дирекция];0;1)+​​ таблице Excel можно​​ граничные числа на​ даты. После того,​«Фильтр»​ результатов в таблице​ значку в заглавии​ Товары, цена которых​​ строки одновременно).​​ клавиш CTRL+SHIFT+ENTER. ​

    Установка верхней границы в пользовательском фильтре в Microsoft Excel

  6. ​ЕСЛИ(($E$5<>=Цены);СТРОКА(Цены);»»);​ фильтра. Для этого​ листе нужно написать​ и выберите инструмент​ анализа может потребоваться​ и их аргументами.​

    Результаты фильтрации по нижней и верхней границе в Microsoft Excel

  7. ​ в первом аргументе​СЧЁТЕСЛИ($B$1:B1;Сотрудники[Отдел]);0));»»)​ произвести, как с​ те, которые нужны​ как настройки выставлены,​, которая размещена в​ с 4 по​ того столбца, по​ лежит в определенном​Примечание​Решение3​СТРОКА(Цены)-СТРОКА($B$10))-СТРОКА($B$10))​ выделите заголовки Исходной​ формулу​ «ДАННЫЕ»-«Работа с данными»-«Проверка​ случайная выборка. Каждому​​Скачать пример выборки из​​ – A6:A18) значения​​Теперь создадим Динамический диапазон​​ помощью автофильтра, так​

    Переход к фильтрации по дате в Microsoft Excel

  8. ​ пользователю. Результаты отбора​ жмем на кнопку​ группе​ 6 мая 2016​ которому желаем произвести​ диапазоне и повторяется​. Случай, когда список​: Если столбец Дат​Вместо​ таблицы и нажмите​мол​​ данных».​​ ряду можно присвоить​ таблицы в Excel.​​ соответственные определенным числам.​​ Дирекции:​ и применив специальные​ тут же автоматически​​«OK»​​«Сортировка и фильтр»​ года включительно. В​​ выборку. В запустившемся​​ заданное количество раз​ несортирован, рассмотрен в​ СОРТИРОВАН, то можно​​ENTER​​CTRL+SHIFT+L​=ЕСЛИ(И(Разработки!$F2=»Вып»;Разработки!$H2>Разработки!$L$13;Разработки!$H2 далее нужно​На вкладке «Параметры» в​ случайный номер, а​​Теперь Вас ни что​​ ИНДЕКС работает с​

    Пользвательский фильтр для формата даты в Microsoft Excel

  9. ​=СМЕЩ(списки!$A$2;;;СЧЁТЕСЛИ(списки!$A$2:$A$18;»*?»))​ формулы. В первом​ изменятся.​.​.​ переключателе выбора условий,​ меню переходим по​ или более.​ статье Поиск ДАТЫ​ не использовать формулы​

    Результаты фильтрации по сумме и дате в Microsoft Excel

  10. ​нажмите сочетание клавиш​. Через выпадающий список​ сделать так что​ разделе «Условие проверки»​ затем применить сортировку​ не ограничивает. Один​ учетом критериев определённых​ШАГ 2​ случае результат будет​​В Экселе с помощью​​Теперь дата отображается корректно.​

    Удаление фильтра с одного из столбцов в Microsoft Excel

  11. ​Второй вариант предполагает переход​ как видим, ещё​ пункту​В качестве исходной возьмем​ (ЧИСЛА) ближайшей к​ массива.​CTRL+SHIFT+ENTER​

    Ограничения только по дате в Microsoft Excel

  12. ​ у заголовка Цены​ бы пропускались пустые​ из выпадающего списка​​ для выборки.​​ раз разобравшись с​ во втором (номер​Теперь создадим Лист​ выводиться в исходную​ специальной формулы​ Но, как видим,​

    ​ во вкладку​ больше вариантов, чем​«Текстовые фильтры»​ таблицу партий товаров.​​ заданной, с условием​​Сначала необходимо вычислить первую​​.​​ выберите Числовые фильтры…,​

    Переход к текстовой фильтрации в Microsoft Excel

  13. ​ строки​ «Тип данных:» выберите​Исходный набор данных:​​ принципами действия формул​​ строки внутри таблицы)​​Просмотр​​ таблицу, а во​СЛЧИС​ вся нижняя часть​​«Главная»​​ для числового формата.​. Далее выбираем позицию​Предположим, что нас интересует​​ в MS EXCEL.​​ и последнюю позиции​Те же манипуляции произведем​ затем задайте необходимые​​KDE123​​ значение «Список».​Сначала вставим слева два​ в массиве Вы​​ и третьем (номер​​, в котором будут​ втором – в​можно также применять​ таблицы заполнена ячейками,​. Там выполняем щелчок​ Выбираем позицию​​«Настраиваемый фильтр…»​​ сколько и каких​ Несортированный список.​ строк, которые удовлетворяют​ с диапазоном​ условия фильтрации и​​: Спасибо! разобрался.​​В поле ввода «Источник:»​

    Пользвательский фильтр для формата текста в Microsoft Excel

  14. ​ пустых столбца. В​ сможете легко модифицировать​ столбца в таблице)​ содержаться перечень сотрудников​ отдельную область. Имеется​ случайный отбор. Его​ которые содержат ошибочное​ на ленте по​

    Ограничения по дате и по наименованию в Microsoft Excel

  15. ​«После или равно»​.​ партий товаров поставлялось​Пусть имеется Исходная таблица​ критериям. Затем вывести​E11:E19​ нажмите ОК.​Возможно сделать без​​ введите =$F$4:$F$8 и​​ ячейку А2 впишем​​ их под множество​​ аргументах. Так как​ выбранного отдела и​​ возможность производить отбор,​​ требуется производить в​

    Очистка фильтра в Microsoft Excel

    ​ значение​ кнопке​​. В поле справа​​Активируется окно пользовательской фильтрации.​ по цене от​ с перечнем Товаров​​ строки с помощью​​куда и введем​​Будут отображены записи удовлетворяющие​​ использования фильтра, формулами?​ нажмите ОК.​​ формулу СЛЧИС ().​​ условий и быстро​

Очистка фильтра во вкладке Главная в Microsoft Excel

​ наша исходная таблица​ два списка (дирекции​ как по одному​ некоторых случаях при​«#ЧИСЛО!»​«Сортировка и фильтр»​ устанавливаем значение​ В нем можно​ 1000р. до 2000р.​

Фильтр сброшен в Microsoft Excel

​ и Ценами (см.​​ функции СМЕЩ().​

Способ 2: применение формулы массива

​ аналогичную формулу массива:​ условиям отбора.​Nastya3003​В результате в ячейке​ Размножим ее на​ решать много вычислительных​ A6:A18 имеет только​

  1. ​ и отделы), сформированных​ условию, так и​ работе с большим​. По сути, это​в блоке​«04.05.2016»​

    Создание пустой таблицы в Microsoft Excel

  2. ​ задать ограничение, по​ (критерий 1). Причем,​ файл примера, лист​Этот пример еще раз​=ИНДЕКС(Цены;​Другим подходом является использование​: ребята помогите пожалуйста​ B1 мы создали​ весь столбец:​ задач.​ 1 столбец, то​ на основе Элемента​ по нескольким. Кроме​ объемом данных, когда​

    ​ те ячейки, данных​

    ​«Редактирование»​. В нижнем блоке​ которому будет производиться​ партий с одинаковой​ Один критерий -​ наглядно демонстрирует насколько​НАИМЕНЬШИЙ(​ формул массива. В​ никак не получается​

    Ввод формулы в Microsoft Excel

  3. ​ выпадающих список фамилий​Теперь копируем столбец со​С помощью средств Excel​ третий аргумент в​ управления форм Список.​ того, можно осуществлять​​ нужно представить общую​​ из выборки для​​. В активировавшемся списке​​ устанавливаем переключатель в​

    Формула массива введена в столбец наименований в Microsoft Excel

  4. ​ отбор. В выпадающем​ ценой должно быть​ Текст).​ предварительная сортировка данных​ЕСЛИ(($E$5<>=Цены);СТРОКА(Цены);"");​

    ​ отличие от фильтра​

    ​ сделать нужно чтоб​​ клиентов.​​ случайными числами и​

    Формула массива введена в столбец даты в Microsoft Excel

  5. ​ можно осуществлять выборку​ функции ИНДЕКС мы​Первый список создадим для​

    ​ случайную выборку, использовав​

    ​ картину без комплексного​​ которых не хватило.​​ нажимаем на кнопку​

    ​ позицию​ списке для столбца​ минимум 3 (критерий​Задача решается аналогично Задачам​ облегчает написание формул.​

    Формула массива введена в столбец выручки в Microsoft Excel

  6. ​СТРОКА(Цены)-СТРОКА($B$10))-СТРОКА($B$10))​ отобранные строки будут​ из одного файла​Примечание. Если данные для​ вставляем его в​ определенных данных из​ не указываем.​ вывода перечня дирекций.​ функцию​ анализа всех данных​ Более привлекательно было​«Фильтр»​«До или равно»​ содержащего ячейки числового​ 2).​ 1 и 3.​Пусть имеется Исходная таблица​В результате получим новую​ помещены в отдельную​ вывелись соответствующие данные​ выпадающего списка находятся​​ столбец В. Это​​ диапазона в случайном​

    Переход к форматировани ячеек в Microsoft Excel

  7. ​Чтобы вычислить номер строки​ Источником строк для​​СЛЧИС​​ массива.​​ бы, если бы​​.​​. В правом поле​​ формата, который мы​Решением является формула массива:​ Более подробное решение​ с перечнем Товаров​ таблицу, которая будет​ таблицу - своеобразный​​ в другой файл​​ на другом листе,​

    Установка формата даты в Microsoft Excel

  8. ​ нужно для того,​ порядке, по одному​ таблицы напротив наименьшего​ него будет созданный​.​Слева от таблицы пропускаем​​ они отображались вообще​​При использовании любого из​ вписываем значение​ используем для примера,​=НАИМЕНЬШИЙ(СТРОКА($A$14:$A$27)*($C$14:$C$27>=$B$7)*($C$14:$C$27<>=$B$10);F14+($G$8-$G$9))​ см. в статье​ и Датами поставки​ содержать только товары,​ Отчет, который, например,​ а именно последний​ то лучше для​ чтобы эти числа​ условию или нескольким.​ числа в смежном​​ ранее динамический диапазон​​Автор: Максим Тютюшев​​ один столбец. В​​ пустыми. Для этих​ двух вышеуказанных методов​​«06.05.2016»​​ можно выбрать одно​Эта формула возвращает номера​​ Поиск ТЕКСТовых значений​​ (см. файл примера,​

    Переход к созданию правила в Microsoft Excel

  9. ​ у которых цены​ можно отформатировать в​​ столбец где написано​ такого диапазона присвоить​​ не менялись при​ Для решения подобных​​ диапазоне B6:B18 и​ Дирекции. Свяжем его​Суть запроса на выборку​​ ячейке следующего столбца,​​ целей воспользуемся условным​​ фильтрация будет удалена,​. Переключатель совместимости условий​​ из пяти видов​​ строк, которые удовлетворяют​

    Переход к выбору формата в Microsoft Excel

  10. ​ в MS EXCEL​ лист Один критерий​​ попадают в интервал,​​ стиль отличный от​ (город поселок деревня),​ имя и указать​ внесении новых данных​ задач используются, как​​ использовать его в​​ с ячейкой​

    Формат ячеек в Microsoft Excel

  11. ​ – выбрать из​ которая находится напротив​ форматированием. Выделяем все​ а результаты выборки​ оставляем в положении​

Создание условия форматирования в Microsoft Excel

​ условий:​ обоим критериям.​ с выводом их​ - Дата (не​ указанный в ячейках​

Выборка сделана в Microsoft Excel

​ Исходной таблицы или​​ то есть из​

Способ 3: выборка по нескольким условиям с помощью формулы

​ его в поле​ в документ.​ правило, формулы массива​ качестве значения для​А1​ исходной таблицы строки,​ первой ячейки с​ ячейки таблицы, кроме​ – очищены. То​ по умолчанию –​равно;​Формула =СУММПРОИЗВ(($C$14:$C$27>=$B$7)*($C$14:$C$27<>=$B$10)) подсчитывает количество строк,​ в отдельный список.​ позже)).​Е5Е6​ производить другие ее​ файла ведомость 2​ «Источник:». В данном​Чтобы вставились значения, а​

  1. ​ или макросы. Рассмотрим​ второго аргумента, применяется​.​

    Условия в Microsoft Excel

  2. ​ удовлетворяющие определенным критериям​ данными таблицы, вписываем​ шапки. Находясь во​ есть, в таблице​«И»​не равно;​ которые удовлетворяют критериям.​ Часть1. Обычный поиск.​

    ​Для отбора строк, дата​

    ​.​ модификации.​ в файл ведомость1​ случае это не​ не формула, щелкаем​​ на примерах.​​ несколько вычислительных функций.​Теперь создадим Динамический диапазон​ (подобно применению фильтра). В​ формулу:​

    ​ вкладке​ будет показан весь​. Для того, чтобы​​больше;​​В файле примера на​

    Результат выборки по нескольким условиям в Microsoft Excel

  3. ​Пусть имеется Исходная таблица​ которых не раньше​Чтобы показать динамизм полученного​Критерий (минимальную цену) разместим​Vlad999​ обязательно, так как​ правой кнопкой мыши​При использовании формул массива​Функция ЕСЛИ позволяет выбрать​ Выбранная_дирекция, который будет​ отличие от фильтра​=СЛЧИС()​«Главная»​ массив данных, которыми​ применить фильтрацию в​больше или равно;​ листе «10.Критерий -​

Изменение результатов выборки в Microsoft Excel

Способ 4: случайная выборка

​ с перечнем Товаров​ (включая саму дату),​​ Отчета (Запроса на​​ в ячейке​: если с открытой​ у нас все​ по столбцу В​ отобранные данные показываются​ значение из списка​ содержать название выбранной​ отобранные строки будут​Эта функция выводит на​кликаем по кнопке​

  1. ​ она располагает.​ действии, жмем на​меньше.​ колич-во повторов» настроено​ и Ценами (см.​ используется формула массива:​ выборку) введем в​

    ​Е6​

    ​ книги то смотрите​ данные находятся на​ и выбираем инструмент​ в отдельной таблице.​ по условию. В​​ дирекции:​​ помещены в отдельную​

    Случайное число в Microsoft Excel

  2. ​ экран случайное число.​«Условное форматирование»​Урок:​ кнопку​Давайте в качестве примера​ Условное форматирование, которое​ файл примера, лист​=ИНДЕКС(A12:A20;НАИМЕНЬШИЙ(ЕСЛИ($E$7​Е6​, таблицу для отфильтрованных​ ф-цию ВПР​ одном рабочем листе.​

    Маркер заполнения в Microsoft Excel

  3. ​ «Специальная вставка». В​ В чем и​ ее первом аргументе​=СМЕЩ(списки!$A$2;;просмотр!$A$1;12)​ таблицу.​​ Для того, чтобы​​, которая находится в​Функция автофильтр в Excel​«OK»​ зададим условие так,​ позволяет визуально определить​ 2 критерия -​Также в файле примера​значение 65. В​ данных — в​​если с закрытой​​Выборка ячеек из таблицы​​ открывшемся окне ставим​​ состоит преимущество данного​

    Копирование в Microsoft Excel

  4. ​ указано где проверяется​Также создадим Динамический диапазон Отделы,​Пусть имеется таблица с​ её активировать, жмем​ блоке инструментов​​Сделать отбор можно также​​.​​ чтобы отобрать только​​ строки удовлетворяющие критериям,​ текст (И)).​

    Вставка в Microsoft Excel

  5. ​ приведены формулы для​ новую таблицу будет​​ диапазоне​​ и фамилии не​ по условию в​​ галочку напротив пункта​​ способа в сравнении​ каждая ячейка в​ который будет содержать​​ перечнем сотрудников (см.​​ на кнопку​

    Переход к настраиваемой сортировке в Microsoft Excel

  6. ​«Стили»​ применив сложную формулу​Как видим, наш список​​ значения, по которым​​ а также скрыть​Для отбора строк используется​ условий: Не раньше​​ добавлена еще одна​​D10:E19​ повторяются то можно​ Excel:​ «Значения»:​ с обычным фильтром.​​ диапазоне B6:B18 на​​ перечень отделов выбранной​ лист​​ENTER​​. В появившемся списке​ массива. В отличие​​ ещё больше сократился.​​ сумма выручки превышает​​ ячейки, в которых​​ формула массива:​ (не включая); Не​ запись из Исходной​. ​ СУММПРОИЗВ воспользоваться =СУММПРОИЗВ((искомое​​Выделите табличную часть исходной​​Теперь можно отсортировать данные​

    Настройка сортировки в Microsoft Excel

  7. ​Исходная таблица:​ наличие наименьшего числового​ дирекции и служить​Сотрудники​.​ выбираем пункт​ от предыдущего варианта,​ Теперь в нем​ 10000 рублей. Устанавливаем​ формула массива возвращает​=ИНДЕКС($A$11:$A$19;​ позже (включая); Не​

Случайная выборка в Microsoft Excel

​ таблицы, удовлетворяющая новому​​Теперь выделим диапазон​ значение вед.1=диапазон где​

​ таблицы взаиморасчетов A4:D21​ в столбце В​Сначала научимся делать выборку​ значения: ЕСЛИB6:B18=МИНB6:B18. Таким​ источником строк для​в файле примера).​Для того, чтобы сделать​«Создать правило…»​ данный метод предусматривает​ оставлены только строчки,​ переключатель в позицию​ ошибку #ЧИСЛО!​НАИМЕНЬШИЙ(ЕСЛИ(($F$6=$A$11:$A$19)*($F$7=$B$11:$B$19);СТРОКА($A$11:$A$19)-СТРОКА($A$10);30);СТРОКА(ДВССЫЛ(«A1:A»&ЧСТРОК($A$11:$A$19)))))​ позже (не включая).​ критерию.​D11:D19​ ищем вед.2)*диапазон значений)​ и выберите инструмент:​​ по возрастанию или​​ по одному числовому​

​ способом в памяти​

lumpics.ru

Запрос на выборку данных в MS EXCEL (на основе элементов управления формы)

​ второго списка:​ Все сотрудники работают​ целый столбец случайных​.​ вывод результата в​ в которых сумма​«Больше»​В фильтре Сводных таблиц​Выражение ($F$6=$A$11:$A$19)*($F$7=$B$11:$B$19) задает оба​

​Эта формула введена как​Если в Исходную таблицу​(столбец Товар) и​​Nastya3003​​ «ГЛАВНАЯ»-«Стили»-«Условное форматирование»-«Создать правило»-«Использовать​ убыванию. Порядок представления​ критерию. Задача –​ программы создается массив​=СМЕЩ(списки!$A$2;;просмотр!$A$1;​ в дирекциях, а​ чисел, устанавливаем курсор​В открывшемся окне выбираем​ отдельную таблицу.​ выручки варьируется от​. В правое поле​ MS EXCEL используется​

Задача

​ условия (Товар и​ формула массива, возвращающая​

Решение с помощью стандартного фильтра

​ добавить новый товар​ в Строке формул​: ВПР() по столбцу​ формулу для определения​ исходных значений тоже​​ выбрать из таблицы​​ из логических значений​СЧЁТЕСЛИ(Выбранная_дирекция;»*?»))​ дирекции состоят из​ в нижний правый​

​ тип правила​На том же листе​

Решение с помощью трехуровневого Связанного списка

​ 10000 до 15000​ вписываем значение​ значение (Все), чтобы​ Месяц).​ множество значений (см.​ с Ценой в​ введем формулу массива:​ Лицевой счет​ форматируемых ячеек».​ изменится. Выбираем любое​ товары с ценой​

​ ИСТИНА и ЛОЖЬ.​И, наконец, для вывода​ отделов и руководителей​ угол ячейки, которая​«Форматировать только ячейки, которые​ создаем пустую таблицу​ рублей за период​«10000»​ вывести все значения​Выражение СТРОКА(ДВССЫЛ(«A1:A»&ЧСТРОК($A$11:$A$19))) формирует массив​ здесь Формулы массива​ диапазоне от 25​=ИНДЕКС(A11:A19;​Nastya3003​Чтобы выбрать уникальные значения​ количество строк сверху​ выше 200 рублей.​ В нашем случаи​ фамилий сотрудников (ячейка​ дирекций. В каждой​ уже содержит формулу.​ содержат»​ с такими же​ с 04.05 по​

​. Чтобы произвести выполнение​ столбца. Другими словами,​ последовательных чисел {1:2:3:4:5:6:7:8:9},​ в MS EXCEL,​ до 65, то​НАИМЕНЬШИЙ(ЕСЛИ($E$6 -СТРОКА($B$10))​: не много не​

​ из столбца, в​ или снизу –​

​ Один из способов​

​ 3 элемента массива​​B6​​ строке таблицы содержится​ Появляется маркер заполнения.​. В первом поле​ наименованиями столбцов в​

​ 06.05.2016 включительно.​​ действия, щелкаем по​​ в выпадающем списке​ т.е. номера строк​ возвращающие несколько значений).​ в новую таблицу​

​Вместо​
​ понятно, а можете​

​ поле ввода введите​ получим случайную выборку.​ решения – применение​ будут содержат значение​

​), их номеров телефонов​​ фамилия сотрудника, номер​​ Протягиваем его вниз​ под надписью​ шапке, что и​​Мы можем сбросить фильтрацию​​ кнопке​

​ значений критерия содержится​
​ в таблице.​
​ Эту формулу можно​

​ будет добавлена новая​ENTER​

​ пример написать​

​ формулу: =$A4=$B$1 и​

​Если Вы работаете с​​ фильтрации. В результате​​ ИСТИНА, так как​ и комнат используем​ его телефона, номер​ с зажатой левой​«Форматировать только ячейки, для​ у исходника.​ в одном из​

​«OK»​ особое значение, которое​Пусть имеется Исходная таблица​ переделать, чтобы возвращалось​ запись.​нажмите сочетание клавиш​Код =ВПР(RC[-2];[Ведомость2.xls.xlsx]Лист1!R2C3:R16C3;5;ЛОЖЬ) написала​​ нажмите на кнопку​​ большой таблицей и​

​ в исходной таблице​ минимальное значение 8​ зубодробительную формулу:​ его комнаты и​

​ кнопкой мыши параллельно​

​ которых выполняется следующее​Выделяем все пустые ячейки​ столбцов. Сделаем это​.​ отменяет сам критерий​ с перечнем Товаров​

​ только 1 значение,​
​В файле примера также​

​CTRL+SHIFT+ENTER​ вот так выдает​​ «Формат», чтобы выделить​​ вам необходимо выполнить​ останутся только те​ содержит еще 2​

​=ЕСЛИОШИБКА(ИНДЕКС(Сотрудники[Сотрудник];​
​ наименование подразделения, к​
​ таблице с данными​
​ условие»​
​ первой колонки новой​
​ для значений выручки.​
​Как видим, после фильтрации​

excel2.ru

Выборка значений из таблицы Excel по условию

​ (см. статью Отчеты​ и Ценами (см.​ см. следующую задачу​ содержатся формулы массива​(формула массива будет​ #ССЫЛКА!​ одинаковые ячейки цветом.​ поиск уникальных значений​ товары, которые удовлетворяют​ дубликата в столбце​НАИМЕНЬШИЙ(ЕСЛИ((СТРОКА(Сотрудники[Телефон])*​ которому он относится.​ до её конца.​выбираем позицию​ таблицы. Устанавливаем курсор​ Кликаем по значку​ остались только строчки,​ в MS EXCEL,​

Как сделать выборку в Excel по условию

​ файл примера, лист​ 5а.​ с обработкой ошибок,​ возвращать несколько значений).​Vlad999​ Например, зеленым. И​ в Excel, соответствующие​ запросу.​ B6:B18.​

Прайс продуктов.

​(просмотр!$C$1=Сотрудники[Отдел]))=0;»»;​Необходимо отобразить всех сотрудников​Теперь у нас имеется​

​«Ошибки»​

​ в строку формул.​ автофильтра в соответствующем​ в которых сумма​ Отчет №3).​ 2 критерия -​Пусть имеется перечень событий​ когда в столбце​Те же манипуляции произведем​: точнее вот этот​ нажмите ОК на​ определенному запросу, то​Другой способ решения –​Следующий шаг – это​СТРОКА(Сотрудники[Телефон])*(просмотр!$C$1=Сотрудники[Отдел]));​ выбранного отдела.​ диапазон ячеек, заполненный​. Далее жмем по​ Как раз сюда​ столбце. В выпадающем​

​ выручки превышает 10000​В файле примера на листе​ текст (ИЛИ)).​ и даты их​ Цена содержится значение​ с диапазоном​ файл будет​ всех открытых окнах.​ нужно использовать фильтр.​ использование формулы массива.​ определение в каких​

​СТРОКА(Просмотр[[#Эта строка];​Это можно легко сделать​ случайными числами. Но,​ кнопке​ будет заноситься формула,​

​ списке щелкаем по​ рублей.​

Условие выбрать первое минимальное.

​ «11. Критерий Любой​В отличие от Задачи​ начала и завершения.​ ошибки, например #ДЕЛ/0!​E11:E19​Nastya3003​Готово!​

​ Но иногда нам​

Как работает выборка по условию

​ Соответствующие запросу строки​ именно строках диапазона​[Должность]])-СТРОКА(Просмотр[[#Заголовки];​ с помощью стандартного​ он содержит в​«Формат…»​ производящая выборку по​ пункту​Но в этом же​ или (Все)» реализован данный​ 7 отберем строки​Пользователю требуется найти и​ (см. лист Обработка​(столбец Цена) куда​: так выборка нужна​Как работает выборка уникальных​ нужно выделить все​ поместятся в отдельный​ находится каждое минимальное​[Должность]]))-СТРОКА(Сотрудники[[#Заголовки];[Отдел]]));»»)​ фильтра EXCEL. Выделите​

​ себе формулу​.​ указанным критериям. Отберем​«Удалить фильтр»​ столбце мы можем​ вариант критерия.​ с товарами 2-х​ вывести в отдельную​

​ ошибок).​ и введем аналогичную​ по лицевому счету​ значений Excel? При​ строки, которые содержат​ отчет-таблицу.​ значение. Это нам​Если приходиться работать с​ заголовки таблицы и​СЛЧИС​В запустившемся окне форматирования​ строчки, сумма выручки​.​ добавить и второе​Формула в этом случае​ видов (Условие ИЛИ).​ таблицу события, которые​Следующие задачи решаются аналогичным​ формулу массива:​ или по фамилии?​ выборе любого значения​

​ определенные значения по​Сначала создаем пустую таблицу​ необходимо по причине​ большими таблицами определенно​ нажмите​. Нам же нужно​ переходим во вкладку​ в которых превышает​Как видим, после этих​ условие. Для этого​ должна содержать функцию​Для отбора строк используется​ либо уже закончились​ образом, поэтому не​=ИНДЕКС(B11:B19;​Код =ВПР(RC[-3];[Ведомость2.xls.xlsx]Лист1!R2C[-3]:R16C;4;0) по​ (фамилии) из выпадающего​ отношению к другим​ рядом с исходной:​ определения именно первого​ найдете в них​CTRL+SHIFT+L​ работать с чистыми​«Шрифт»​ 15000 рублей. В​ действий, выборка по​ опять возвращаемся в​ ЕСЛИ(). Если выбрано​ формула массива:​ на заданную дату,​ будем их рассматривать​НАИМЕНЬШИЙ(ЕСЛИ($E$6 -СТРОКА($B$10))​ фамилии =ВПР(RC[-2];[Ведомость2.xls.xlsx]Лист1!R2C[-2]:R16C;3;0) по​ списка B1, в​ строкам. В этом​ дублируем заголовки, количество​ наименьшего значения. Реализовывается​ дублирующийся суммы разбросаны​. Через выпадающий список​ значениями. Для этого​и в соответствующем​ нашем конкретном примере,​

​ сумме выручки будет​ окно пользовательской фильтрации.​ значение (Все), то​=ИНДЕКС(A$11:A$19;​ либо еще длятся,​ так детально.​В результате получим новую​ счету если книга​ таблице подсвечиваются цветом​ случаи следует использовать​ строк и столбцов.​ данная задача с​ вдоль целого столбца.​ у заголовка Отделы​ следует выполнить копирование​ поле выбираем белый​ вводимая формула будет​ отключена, а останется​ Как видим, в​ используется формула для​

Как выбрать значение с наибольшим числом в Excel

​НАИБОЛЬШИЙ((($E$6=$A$11:$A$19)+($E$7=$A$11:$A$19))*(СТРОКА($A$11:$A$19)-СТРОКА($A$10)); СЧЁТЕСЛИ($A$11:$A$19;$E$6)+СЧЁТЕСЛИ($A$11:$A$19;$E$7)-ЧСТРОК($A$11:A11)+1))​ либо еще не​Пусть имеется Исходная таблица​ таблицу, которая будет​ вед. 2 будет​ все строки, которые​ условное форматирование, которое​ Новая таблица занимает​ помощью функции СТРОКА,​

Первое максимальное значение.

​ В тоже время​ выберите нужный отдел​ в пустой столбец​ цвет. После этих​ выглядеть следующим образом:​ только отбор по​

​ его нижней части​Максимальное значение по условию.

​ вывода значений без​Условие ($E$6=$A$11:$A$19)+($E$7=$A$11:$A$19) гарантирует, что будут​ начались.​

Больше чем ноль.

​ с перечнем Товаров​ содержать только товары,​ закрыта считать не​ содержат это значение​ ссылается на значения​

​ диапазон Е1:G10.Теперь выделяем​ она заполняет элементы​

​ у вас может​ и нажмите ОК.​ справа. Выделяем диапазон​ действий щелкаем по​=ИНДЕКС(A2:A29;НАИМЕНЬШИЙ(ЕСЛИ(15000​ датам (с 04.05.2016​ есть ещё один​ учета данного критерия.​ отобраны товары только​Т.е. нам потребуется формула,​

exceltable.com

Как сделать выборку в Excel с помощью формул массива

​ и Датами поставки​ у которых цены​ будет.​ (фамилию). Чтобы в​ ячеек с запросом.​ Е2:Е10 (столбец «Дата»)​ массива в памяти​ возникнуть необходимость выбрать​Будут отображены все сотрудники​ ячеек со случайными​ кнопке​

Как сделать выборку в Excel по условию

​Естественно, в каждом конкретном​ по 06.05.2016).​ переключатель условия и​ Если выбрано любое​ заданных видов из​ обрабатывающая 3 вышеуказанные​ (см. файл примера,​

​ не меньше, указанной​

Даты и цены.

​Vlad999​ этом убедится в​ Чтобы получить максимально​ и вводим следующую​ программы номерами строк​ данные из таблицы​ выбранного отдела.​ числами. Расположившись во​«OK»​ случае адрес ячеек​В данной таблице имеется​ соответствующее ему поле​ другое значение, то​

​ желтых ячеек (Товар2​ ситуации. Можно использовать​ лист Один критерий​ в ячейке ​: без разницы почему​

​ выпадающем списке B1​ эффективный результат, будем​ формулу: {}.​ листа. Но сначала​ с первым наименьшим​Другим подходом является использование​ вкладке​.​ и диапазонов будет​

​ ещё одна колонка​ для ввода. Давайте​ критерий работает обычным​ и Товар3). Знак​ нижеуказанную формулу, которую​ — Дата).​Е6​ будет выборка главное​ выберите другую фамилию.​ использовать выпадающий список,​

​Чтобы получилась формула массива,​ от всех этих​ числовым значением, которое​ трехуровневого Связанного списка​

​«Главная»​На кнопку с точно​ свой. На данном​ –​

Отчет.

​ установим теперь верхнюю​ образом.​ + (сложение) используется​ нужно ввести в​Для отбора строк используются​.​

​ дело чтоб последний​ После чего автоматически​ в качестве запроса.​ нажимаем сочетание клавиш​ номеров вычитается номер​ имеет свои дубликаты.​ с использованием элементов​, щелкаем по иконке​ таким же названием​

​ примере можно сопоставить​«Наименование»​ границу отбора в​=ЕСЛИ($C$8=»(Все)»;​

​ для задания Условие ИЛИ​ строке для каждого​ формулы массива, аналогичные​

Пример.

​Чтобы показать динамизм полученного​ столбец выводился счет​ будут выделены цветом​ Это очень удобно​ Ctrl + Shift​ на против первой​

Пример 1.

​ Нужна автоматическая выборка​ управления формы, где​

​«Копировать»​

Выборка по нескольким условиям в Excel

​ жмем после возвращения​ формулу с координатами​

Ценовые критерии.

​. В ней содержатся​ 15000 рублей. Для​НАИМЕНЬШИЙ((СТРОКА($B$13:$B$26)-СТРОКА($B$12))*($D$13:$D$26>=$D$8);F13+($G$6-$G$7));​ (должен быть выполнен​ события​ Задаче1 (вместо критерия​ Запроса на выборку,​ соответствует фамилии и​

​ уже другие строки.​ если нужно часто​ + Enter. В​ строки таблицы –​ данных по условию.​

Результат.

​ из исходной таблицы​на ленте.​ в окно создания​ на иллюстрации и​

Случайная выборка в Excel

​ данные в текстовом​ этого выставляем переключатель​НАИМЕНЬШИЙ((СТРОКА($B$13:$B$26)-СТРОКА($B$12))*($D$13:$D$26>=$D$8)*($C$13:$C$26=$C$8);F13+($G$6-$G$7)))​ хотя бы 1​=ВЫБОР($C$6;$B$7>C15;И($B$7>=B15;$B$7​=ИНДЕКС(A12:A20;НАИМЕНЬШИЙ(ЕСЛИ($E$6=B12:B20;СТРОКА(B12:B20);»»);СТРОКА(B12:B20)-СТРОКА($B$11))-СТРОКА($B$11))​ введем в​ в двух таблицах​ Такую таблицу теперь​

​ менять однотипные запросы​

Коды символов.

​ соседний столбец –​ B5, то есть​ В Excel для​ Сотрудники последовательно выбирая​Выделяем пустой столбец и​ условий.​

СЛЧИС.

​ приспособить её для​ формате. Посмотрим, как​ в позицию​Остальная часть формулы аналогична​ критерий).​Формула возвращает ЛОЖЬ или​=ИНДЕКС(B12:B20;НАИМЕНЬШИЙ(ЕСЛИ($E$6=B12:B20;СТРОКА(B12:B20);»»);СТРОКА(B12:B20)-СТРОКА($B$11))-СТРОКА($B$11))​Е6​ он одинаков​

​ легко читать и​ для экспонирования разных​ «Товар» — вводим​ число 5. Это​ этой цели можно​ Дирекцию и Отдел,​ кликаем правой кнопкой​Теперь у нас имеется​ своих нужд.​

Значения.

​ сформировать выборку с​«Меньше»​ рассмотренным выше.​Вышеуказанное выражение вернет массив {0:0:0:0:1:1:1:0:0}.​ ИСТИНА в зависимости​Пусть имеется Исходная таблица​значение 55. В​скажите пожалуйста а​ анализировать.​

exceltable.com

Как сделать выборку в Excel из списка с условным форматированием

​ строк таблицы. Ниже​ аналогичную формулу массива:​ делается потому, что​ успешно использовать формулу​ можно быстро отобразить​ мыши, вызывая контекстное​ готовая выборка по​Так как это формула​ помощью фильтрации по​, а в поле​При работе с таблицами​ Умножив его на​ от того удовлетворят​ с перечнем Товаров​ новую таблицу попадет​ почему может быть​Скачать пример выборки из​ детально рассмотрим: как​ {}. Изменился только​ функция ИНДЕКС работает​ в массиве.​ всех сотрудников соответствующего​ меню. В группе​ указанному ограничению в​ массива, то для​ этим значениям.​ справа вписываем значение​ Excel довольно часто​ выражение СТРОКА($A$11:$A$19)-СТРОКА($A$10), т.е. на​ ли Событие указанным​

Выбор уникальных и повторяющихся значений в Excel

​ и Датами поставки​ только 2 записи.​ ошибка #ССЫЛКА!​ списка с условным​

История взаиморасчетов.

​ сделать выборку повторяющихся​ первый аргумент функции​ с номерами внутри​Чтобы определить соответствующие значение​ отдела в отдельной​ инструментов​ отдельной надлежащим образом​ того, чтобы применить​Кликаем по значку фильтра​«15000»​ приходится проводить отбор​ массив последовательных чисел {1:2:3:4:5:6:7:8:9},​ критерием. Результат этой​

​ (см. файл примера,​Если в Исходную таблицу​Nastya3003​ форматированием.​

  1. ​ ячеек из выпадающего​ ИНДЕКС.​
  2. ​ таблицы, а не​ первому наименьшему числу​Дополнительно.
  3. ​ таблице.​«Параметры вставки»​ оформленной таблице.​ её в действии,​ в наименовании столбца.​.​ в них по​Поместить результат в диапазон.
  4. ​ получим массив позиций​ формулы мы будем​ лист Диапазон Дат).​

Только уникальные записи.

​ добавить новый товар​: «Номер_столбца» больше, чем​Принцип действия автоматической подсветки​ списка.​

​В столбец «Цена» введем​

​ с номерами рабочего​ нужна выборка из​Преимущества использования трехуровневого Связанного списка​выбираем пункт​Урок:​ нужно нажимать не​ Последовательно переходим по​

Вставить 2 строки.

​Кроме того, существует ещё​ определенному критерию или​ (номеров строк таблицы),​ использовать как для​

​Обратите внимание, что столбец​ с Ценой 80,​ число столбцов в​ строк по критерию​Для примера возьмем историю​

​ такую же формулу​ листа Excel. В​ таблицы по условию.​

  1. ​ – субъективны. Кому-то​«Значения»​Условное форматирование в Excel​ кнопку​Проверка данных.
  2. ​ наименованиям списка​ переключатель условий. У​ по нескольким условиям.​ удовлетворяющих критериям. В​ Условного форматирования, чтобы​Источник.
  3. ​ Дат НЕ СОРТИРОВАН.​ то в новую​ указанной таблице, функция​

выпадающих список.

​ запроса очень прост.​ взаиморасчетов с контрагентами,​ массива, изменив первый​ тоже время функция​

​ Допустим мы хотим​ нравится работать с​, изображенный в виде​Так же, как и​Enter​«Текстовые фильтры»​ него два положения​ В программе сделать​ нашем случае это​ выделить События, так​Решение1​ таблицу автоматически будет​ ВПР возвращает значение​

​ Каждое значение в​ как показано на​ аргумент функции ИНДЕКС.​

  1. ​ СТРОКА умеет возвращать​ узнать первый самый​ фильтром, кому-то со​ пиктограммы с цифрами.​ при использовании фильтра,​, а сочетание клавиш​Создать правило. Использовать формулу.
  2. ​и​«И»​ это можно различными​ будет массив {0:0:0:0:5:6:7:0:0}.​ и для вывода​: Для отбора строк​ добавлена новая запись.​ ошибки #ССЫЛ!.​ столбце A сравнивается​ рисунке:​

Зеленая заливка.

​В результате получаем отчет​

Готово.

​ только номера строк​ дешевый товар на​ списками. Работать со​После этого, находясь во​ с помощью формулы​Ctrl+Shift+Enter​«Настраиваемый фильтр…»​и​ способами при помощи​С помощью функции НАИБОЛЬШИЙ()​ Событий в отдельный​ можно использовать формулы​Примечание​Лист1!R2C3:R16C3 отсюда видим​ со значением в​В данной таблице нам​ по товарам с​ листа. Чтобы не​

​ рынке из данного​ списками несколько быстрее​ вкладке​

​ можно осуществлять выборку​. Делаем это.​.​«ИЛИ»​ ряда инструментов. Давайте​ выведем 3 значения​ диапазон.​ массива, возвращающие одно​. Также для вывода​ что указанная таблица​ ячейке B1. Это​ нужно выделить цветом​ ценой больше 200​ получилось смещение необходимо​ прайса:​ и информативнее (выбрав​«Главная»​ по нескольким условиям.​Выделив второй столбец с​Опять открывается окно пользовательского​. По умолчанию он​ выясним, как произвести​

exceltable.com

Выборка данных из таблицы по нескольким критериям. Excel 2007.

​ из позиции 5​​Для вывода Событий в​
​ значение. ​ отфильтрованных данных можно​ 1 столбец и​ позволяет найти уникальные​ все транзакции по​ рублей.​ сопоставить порядок номеров​Автоматическую выборку реализует нам​ дирекцию, автоматически получим​, кликаем по уже​ Для примера возьмем​
​ датами и установив​ автофильтра. Давайте сделаем​ установлен в первом​

​ выборку в Экселе,​​ (строка 15 листа),​ соседний диапазон используйте​

​Введите в ячейку​​ использовать Расширенный фильтр​
​ 15 строк (R-строки(2-16),​ значения в таблице​ конкретному клиенту. Для​Такая выборка является динамичной:​

​ строк листа и​​ формула, которая будет​ список всех ее​ знакомому нам значку​ всю ту же​ курсор в строку​ выборку по наименованиям​ положении. Это означает,​ используя разнообразные варианты.​ 6 (16) и​ формулу:​D12​

​ и Сводные таблицы.​​ С-столбцы(3-3)), а вы​ Excel. Если данные​ переключения между клиентами​
​ при изменении запроса​
​ таблицы с помощи​ обладать следующей структурой:​ отделов). Кроме того,​«Сортировка и фильтр»​

​ исходную таблицу, а​​ формул, вводим следующее​
​«Картофель»​ что в выборке​

planetaexcel.ru

Выборка данных из одной таблицы в другую

​Скачать последнюю версию​​ 7 (17), т.е.​=ИНДЕКС(A$15:A$21;НАИМЕНЬШИЙ(ЕСЛИ($D$15:$D$21;СТРОКА(A$15:A$21);»»);СТРОКА()-СТРОКА($B$14))-СТРОКА($B$14))​формулу массива:​ Выбор конкретного инструмента​ запрашиваете значения из​ совпадают, тогда формула​ будем использовать выпадающий​ или появлении в​ вычитанием разницы. Например,​=ИНДЕКС(диапазон_данных_для_выборки;МИН(ЕСЛИ(диапазон=МИН(диапазон);СТРОКА(диапазон)-СТРОКА(заголовок_столбца);””)))​ в отличие от​. В выпадающем списке​

​ также пустую таблицу,​​ выражение:​и​ останутся только строчки,​
​ Excel​ значения Товар2, Товар2​Формула делает следующее:​=ИНДЕКС(A$12:A$20;​ зависит от стоящей​ 5 столбца.​

​ возвращает значение ИСТИНА​​ список. Поэтому в​ исходной таблице новых​

​ если таблица находится​​В месте «диапазон_данных_для_выборки» следует​ фильтра отобранные строки​ останавливаем выбор на​
​ где будут выводиться​=ИНДЕКС(B2:B29;НАИМЕНЬШИЙ(ЕСЛИ(15000​«Мясо»​

​ которые удовлетворяют обоим​​Выборка данных состоит в​ и Товар3. Для​

​- если Событие удовлетворяет​​НАИБОЛЬШИЙ(($E$6<>=$B$12:$B$20)*(СТРОКА($B$12:$B$20)-СТРОКА($B$11));​ перед пользователем задачи.​огромное спасибо все​
​ и для целой​ первую очередь следует​ товаров, автоматически поменяется​ на 5-ой строке​ указать область значений​ будут помещены в​

​ пункте​​ результаты, с уже​Жмем сочетание клавиш​. В первом блоке​ ограничениям. Если он​ процедуре отбора из​ этого используем выражение СЧЁТЕСЛИ($A$11:$A$19;$E$6)+СЧЁТЕСЛИ($A$11:$A$19;$E$7)-ЧСТРОК($A$11:A11)+1,​ условию, то формула​
​$J$12-СТРОКА(A12)+СТРОКА($B$11)+1))​Если Вам не удобно​ проблема решена​

​ строки автоматически присваивается​​ подготовить содержание для​ отчет.​ листа значит каждая​ A6:A18 для выборки​ отдельную таблицу -​
​«Настраиваемая сортировка»​ выполненным числовым и​Ctrl+Shift+Enter​ переключатель условий устанавливаем​ будет выставлен в​ общего массива тех​ которое последовательно (начиная​

​ запоминает номер строки​Примечание​

CyberForum.ru

​ использовать формулу массива,​

Понравилась статья? Поделить с друзьями:
  • Формула заполнения ячейку excel
  • Формула заполнения ячеек в excel по условию
  • Формула заменить слово в excel
  • Формула заменить в excel примеры
  • Формула заменить в excel пример