Читаем Магия таблиц. 100+ приемов ускорения работы в Excel (и немного в Google Таблицах) полностью

ПРОСМОТРX может заменить и ГПР / HLOOKUP — функция будет работать и с горизонтальными массивами.

НЕКОТОРЫЕ АСПЕКТЫ РАБОТЫ С ФУНКЦИЯМИ ПОИСКА

• ВПР и ПОИСКПОЗ (в режиме поиска текста при последнем аргументе = 0) ищут сверху вниз, то есть если искомое значение повторяется несколько раз, то будет найдено первое вхождение.

• Все функции (ВПР, ПОИСКПОЗ, ПРОСМОТРX) ищут текст без учета регистра — "ipad" и "IPAD" для них являются одинаковыми значениями.

• В функциях ВПР и ПОИСКОЗ можно использовать символы подстановки — звездочку (*) и знак вопроса (?). Это не отменяет последнего аргумента, равного нулю, если вы ищете текст. Просто ваш запрос уже является не точным текстом, а текстом с символами подстановки. В любом случае ВПР будет искать первое точное совпадение с тем шаблоном, что задан в первом аргументе (например, если будет текст "ipad*" в качестве искомого значения, то ВПР найдет первую ячейку, начинающуюся с "ipad").

В функции ПРОСМОТРX символы подстановки тоже возможны, но для их работы нужно явно указать аргумент «режим_сопоставления» = 2. У функций ВПР и ПОИСКПОЗ они работают по умолчанию.

СРАВНЕНИЕ ФУНКЦИЙ ДЛЯ ПОИСКА ЗНАЧЕНИЙ


ПОИСК ПО НЕСКОЛЬКИМ КРИТЕРИЯМ

Файл с примером: ВПР по 2 критериям.xlsx

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



Самое простое решение: добавить вспомогательные столбцы в обеих таблицах, в которых создать уникальный ключ из двух значений. Можно объединить их с помощью амперсанда (&) или одной из текстовых функций (СЦЕП / CONCAT, СЦЕПИТЬ / CONCATENATE).



И далее использовать функцию ВПР как обычно.



А еще можно производить конкатенацию (объединение текстовых значений) прямо внутри формулы. Тогда можно избавиться от вспомогательного столбца в таблице с ВПР — будем соединять два значения там с помощью амперсанда в самой функции.



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

Здесь мы ищем объединенное значение (Курс + Формат, A2&C2) в столбце, сделанном в формуле из двух столбцов на листе «Ставки роялти» — B и C.



В старых версиях Excel не забудьте ввести такую формулу с помощью сочетания клавиш Ctrl + Shift + Enter (это формула массива, и до Excel 2019 включительно такие нужно вводить явным образом).

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



СУММЕСЛИМН / SUMIFS для поиска чисел

Если вы ищете числа, как в данном случае (ставки роялти — числовые значения), можно обойтись вовсе без ВПР или ИНДЕКС + ПОИСКПОЗ.

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



Плюс в том, что с этой функцией легко работать и при большом количестве условий.

Но и минус есть: если мы ищем текст, а не числа, то подойдут только предыдущие варианты, а не СУММЕСЛИМН.

ВПР С РАЗНЫХ ЛИСТОВ

Файл с примером: ВПР с разных листов.xlsx

Если вам нужно «подтягивать» данные с помощью ВПР / VLOOKUP с разных листов (например, на каждый город/месяц/склад у вас отдельный лист с данными), можно собрать ссылку с помощью функции ДВССЫЛ / INDIRECT.



Обычная ссылка на другой лист выглядит так:

='Название_листа'!A: B

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

Сначала берем апостроф (в кавычках), потом к нему добавляем название листа, справа еще один апостроф, восклицательный знак и диапазон:

="'" & ячейка с названием листа & "'!диапазон"

Чтобы превратить полученную текстовую строку в ссылку, используем функцию ДВССЫЛ / INDIRECT — она ровно для этого и используется:

=ДВССЫЛ ("'" & ячейка с названием листа & "'!диапазон")

И отправляем это внутрь ВПР'а как второй аргумент:

=ВПР(значение для поиска; ДВССЫЛ("'" & ячейка с названием листа & "'!диапазон"); номер столбца; 0)



Генерация случайных чисел и дат

В Excel и в Google Таблицах есть функции для генерации случайных чисел: СЛЧИС / RAND и СЛУЧМЕЖДУ / RANDBETWEEN (последняя появилась в Excel 2007).

Перейти на страницу:

Все книги серии МИФ. Бизнес

Похожие книги

Разработка приложений в среде Linux. Второе издание
Разработка приложений в среде Linux. Второе издание

Книга известных профессионалов в области разработки коммерческих приложений в Linux представляет СЃРѕР±РѕР№ отличный справочник для широкого круга программистов в Linux, а также тех разработчиков на языке С, которые перешли в среду Linux из РґСЂСѓРіРёС… операционных систем. РџРѕРґСЂРѕР±но рассматриваются концепции, лежащие в основе процесса создания системных приложений, а также разнообразные доступные инструменты и библиотеки. Среди рассматриваемых в книге вопросов можно выделить анализ особенностей применения лицензий GNU, использование СЃРІРѕР±одно распространяемых компиляторов и библиотек, системное программирование для Linux, а также написание и отладка собственных переносимых библиотек. Р

Майкл К. Джонсон , Эрик В. Троан

Программирование, программы, базы данных