Все секреты excel-функции впр (vlookup) для поиска данных в таблице и извлечения их в другую
Содержание:
- Поиск с помощью ВПР по нескольким условиям
- How to do multiple Vlookup in Excel (nested Vlookup)
- Как работает функция ВПР в Excel: несколько примеров для «чайников».
- Vlookup with If statement: return True/False, Yes/No, etc.
- Комментарии 13
- Задача2. Поиск ближайшего числа
- Синтаксис функций ВПР и ГПР
- ВПР имеет два режима поиска.
- Как работает функция?
- Формулы подстановки Excel: ВПР, ИНДЕКС и ПОИСКПОЗ
- Извлекаем из столбца слева числовые значения.
- Внимание: неточный поиск включен по умолчанию!
Поиск с помощью ВПР по нескольким условиям
Если пользователю программы Excel необходимо из большого каталога найти необходимые данные, он может воспользоваться данным способом для чайников (инструкция).
Итак, имеется документ, в котором обозначены: компании, товары и цены.
Нужно найти цену на конкретный товар – гелевая ручка. Но так как каталог может быть огромным, а гелевые ручки быть не у одной компании, поиск стоимости в Эксель лучше проводить через ВПР с несколькими условиями: название компании и предмета.
Чтобы осуществить поиск следует:
- Создать слева новый столбец с объединёнными данными (название компании и товара).
Делается это просто:
- выделить крайнюю левую ячейку (А1);
- щёлкнуть ПКМ и выбрать «Вставить»;
- отметить добавление столбца и нажать «ОК».
- Внести данные в новый столбец. Для этого нужно нажать на пустое поле А2, ввести формулу объединения (=B2&C2) и нажать кнопку Enter. Чтобы продлить список достаточно растянуть ячейку.
- Нажать на любое свободное место и самостоятельно ввести, что нужно найти (ЛасточкаГелевая ручка).
- Выбрать ячейку где будет отображен результат и заполнить Аргументы функции.
– что нужно найти (щёлкнуть по введенной — ЛасточкаГелевая ручка – А8).
– где искать нужное значение (выделить ячейки от первой до последней — А2 – D5).
Номер столбца – из какого столбца вывести результат (4).
Интервальный просмотр – ЛОЖЬ.
После нажатия команды «ОК», программа отобразит результат.
How to do multiple Vlookup in Excel (nested Vlookup)
Sometimes it may happen that your main table and lookup table do not have a single column in common, which prevents you from doing a Vlookup between two tables. However, there exists another table, which does not contain the information you are looking for but has one common column with the main table and another common column with the lookup table.
In below image illustrates the situation:
The goal is to copy prices to the main table based on Item IDs. The problem is that the table containing prices does not have the Item IDs, meaning we will have to do two Vlookups in one formula.
For the sake of convenience, let’s create a couple of named ranges first:
- Lookup table 1 is named Products (D3:E3).
- Lookup table 2 is named Prices (G3:H3).
The tables can be in the same or different worksheets.
And now, we will perform the so-called double Vlookup, aka nested Vlookup.
First, make a VLOOKUP formula to find the product name in the Lookup table 1 (named Products) based on the item id (A3):
Next, put the above formula in the lookup_value argument of another VLOOKUP function to pull prices from Lookup table 2 (named Prices) based on the product name returned by the nested VLOOKUP:
The screenshot below shows our nested Vlookup formula in action:
Как работает функция ВПР в Excel: несколько примеров для «чайников».
Предположим, нам необходимо из списка сотрудников выбрать данные определенного человека. Посмотрим, какие здесь есть тонкости.
Во-первых, нужно сразу определиться: точный либо приблизительный поиск нам нужен. Ведь они предъявляют разные требования к подготовке исходных данных.
Использование точного и приблизительного поиска.
Посмотрите, какие результаты выборки цен мы получаем с использованием приблизительного поиска на неупорядоченном массиве данных.
Обратите внимание, что четвертый параметр равен 1. Кое-что из результатов определено верно, но в большинстве случаев – ошибки
Функция продолжает просматривать данные столбца D с наименованиями товаров до тех пор, пока не встретит значение больше, чем заданное ей в качестве критерия поиска. Тогда она останавливается и возвращает цену
Кое-что из результатов определено верно, но в большинстве случаев – ошибки. Функция продолжает просматривать данные столбца D с наименованиями товаров до тех пор, пока не встретит значение больше, чем заданное ей в качестве критерия поиска. Тогда она останавливается и возвращает цену.
Поиск цены на египетские бананы закончился на первой же позиции, так как во второй записаны сливы. А это слово по правилам алфавита стоит ниже, чем «Бананы Египет». Значит, дальше искать не нужно. Получили 145
И не важно, что это цена абрикосов. Поиск цены на сливы происходил до тех пор, пока в D15 не встретилось слово, которое по алфавиту стоит ниже: яблоки
Остановились и взяли цену из предыдущей строки.
А теперь взгляните, как должно было все происходить, если все делать верно. Всего лишь делаем сортировку, как указано стрелкой.
Вы спросите: «А зачем тогда этот неточный просмотр, если с ним столько проблем?»
Он отлично подходит для выбора значений из определенных интервалов.
Допустим, у нас установлена скидка для покупателей в зависимости от количества приобретенного товара. Нужно быстро рассчитать, сколько процентов положено на совершенную покупку.
Если у нас количество товара 11 единиц, то мы просматриваем столбец D до тех пор, пока не встретим число, большее 11. Это 20 и находится оно в 4-й строке. Останавливаемся здесь. Значит, наша скидка расположена в 3-й строке и равна 3%.
Использование нескольких условий.
Еще один простой пример для «чайников» – как использовать при выборе нужного значения несколько условий?
Предположим, у нас есть список имен и фамилий. Нам нужно найти нужного человека и вывести сумму его дохода.
В F2 используем следующую формулу:
Разберем пошагово, как в этом случае работает ВПР.
В начале мы формируем условие. Для этого при помощи оператора & «склеиваем» вместе имя и фамилию, а между ними вставляем пробел.
Не забываем при этом пробел заключить в кавычки, иначе Excel не воспримет его как текст.
Затем в таблице с доходами ищем ячейку с именем и фамилией, разделенными пробелом.
Дальше все происходит по уже отработанной схеме.
Можно попробовать подстраховаться на тот случай, если между именем и фамилией введено несколько пробелов. Знак пробела в формуле заменяем на знак подстановки «*».
Приметно так – D2&”*”&E2
Vlookup with If statement: return True/False, Yes/No, etc.
One of the most common scenarios when you combine If and Vlookup together is to compare the value returned by Vlookup with a sample value and return Yes / No or True / False as the result.
In most cases, the following generic formula would work nicely:
Translated in plain English, the formula instructs Excel to return True if Vlookup is true (i.e. equal to the sample value). If Vlookup is false (not equal to the sample value), the formula returns False.
Below you will a find a few real-life uses of this IF Vlookup formula.
Example 1. Compare Vlookup result with a specific value
Let’s say, you have a list of items in column A and quantity in column B. You are creating a dashboard for your users and need a formula that would check the quantity for an item in E1 and inform the user whether the item is in stock or sold out.
You pull the quantity with a regular formula like this:
Then, write an IF statement that compares Vlookup’s result with zero, and returns «No» if it is equal to 0, «Yes» otherwise:
Instead of Yes/No, you can return TRUE/FALSE or In Stock/Sold out or any other two choices. For example:
You can also compare the value returned by Vlookup with sample text. In this case, be sure to enclose a text string in quotation marks, like this:
Example 2. Compare Vlookup result with another cell
Another typical example of Vlookup with If condition in Excel is comparing the Vlookup output with a value in another cell. For example, we can check if it’s greater than or equal to a number in cell G2:
And here is our If formula with Vlookup in action:
In a similar fashion, you can use any other logical operator together with a cell reference in your Excel If Vlookup formula.
Example 3. Vlookup values in a shorter list
To compare each cell in the target column with another list and return True or Yes if a match is found, False or No otherwise, use this generic IF ISNA VLOOKUP formula:
If Vlookup results in the #N/A error, the formula returns «No», meaning the lookup value is not found in the lookup list. If the match is found, «Yes» is returned. For example:
If your business logic requires the opposite results, simply swap «Yes» and «No» to reverse the formula’s logic:
Комментарии 13
для интеграции есть адд-он к Excel: RExcel — http://rcom.univie.ac.at/download.html#RExcel.
А если все делать в R, то есть пакеты и для открытия файлов xls, и сохранения результатов в них же.
Ээээ, кхм… Это хорошо, что сделали типа ВПР, но через ПОИСКПОЗ, хотя в первоначальной статье именно про это в коментариях и говорилось. Однако… Функции пита ВПР или ПОИСКПОЗ прменяются в 2-х видах задач: 1. Разовая обработка больших массивов данных в экселе. Как оказала практика, если вы через ОЛЕ выгружаете данные эксель, то лучше выгружать сразу в Аксес. Для статитстической обработки очень больших данных это намного практичнее и быстрее. Более того, если выгружать в эксель и обрабатывать в нем, то нюансы функции ВПР не так важны, как и скорость — работа разовая, можно 1- сек подождать.
2. Рабочие файлы, в которых ежедневно, ежеднелельно и ежемесячно ведется работа, обрабатываемые данные могут заносится туда выгрузками или вручную (т.е. никаких сортировок). И функции типа ВПР, ПОИСПОЗ или СУММПРОИЗВ применяются в массовых масштабах для создания реляционной базы. Данные измеряются не 200 тыс строк, а на порядок меньше, зато указанные функции используются по 5-15 раз в каждой строке, итого они вызываются под 1 млн раз. Это я к чему? При такое количестве вызоов функций любое использование ВБА подвешивает программу на минуты и часы. По этой простой причине примеются исключительно встроенные фукнции, т.к. скрипты катасрофически тормознутые. Если у вас 100 вызовов ВБА — это нормально, если 100 тыс. — это беда. Причем тормозит именно сам механизм ВБа, даже если вы там внутри вызываете встроенные функции.
Задача2. Поиск ближайшего числа
Предположим, что нужно найти товар, у которого цена равна или наиболее близка к искомой.
Чтобы использовать функцию ВПР() для решения этой задачи нужно выполнить несколько условий:
- Ключевой столбец, по которому должен производиться поиск, должен быть самым левым в таблице;
- Ключевой столбец должен быть обязательно отсортирован по возрастанию;
- Значение параметра Интервальный_просмотр нужно задать ИСТИНА или вообще опустить.
Для вывода Наименования товара используйте формулу =ВПР($A7;$A$11:$B$17;2;ИСТИНА)
Для вывода найденной цены (она не обязательно будет совпадать с заданной) используйте формулу: =ВПР($A7;$A$11:$B$17;1;ИСТИНА)
Как видно из картинки выше, ВПР() нашла наибольшую цену, которая меньше или равна заданной (см. файл примера лист «Поиск ближайшего числа»). Это связано следует из того как функция производит поиск: если функция ВПР() находит значение, которое больше искомого, то она выводит значение, которое расположено на строку выше его. Как следствие, если искомое значение меньше минимального в ключевом столбце, то функцию вернет ошибку #Н/Д.
Найденное значение может быть далеко не самым ближайшим. Например, если попытаться найти ближайшую цену для 199, то функция вернет 150 (хотя ближайшее все же 200). Это опять следствие того, что функция находит наибольшее число, которое меньше или равно заданному.
Если нужно найти по настоящему ближайшее к искомому значению, то ВПР() тут не поможет. Такого рода задачи решены в разделе Ближайшее ЧИСЛО. Там же можно найти решение задачи о поиске ближайшего при несортированном ключевом столбце.
Примечание. Для удобства, строка таблицы, содержащая найденное решение, выделена Условным форматированием. Это можно сделать с помощью формулы =ПОИСКПОЗ($A$7;$A$11:$A$17;1)=СТРОКА()-СТРОКА($A$10).
Примечание: Если в ключевом столбце имеется значение совпадающее с искомым, то функция с параметром Интервальный_просмотр =ЛОЖЬ вернет первое найденное значение, равное искомому, а с параметром =ИСТИНА — последнее (см. картинку ниже).
Если столбец, по которому производится поиск не самый левый, то ВПР() не поможет. В этом случае нужно использовать функции ПОИСКПОЗ()+ИНДЕКС() или ПРОСМОТР().
Функция офисного пакета Excel ВПР позволяет найти искомые данные в указанной таблице и в указанном столбце и вернуть его, как результат. Данная функция может быть очень полезной при сопоставлении данных из разных таблиц или при сведении информации в какой-то единый массив для дальнейшего анализа.
ВПР (VLOOKUP в английском варианте) расшифровывается, как вертикальный просмотр. Функция является одной из самых востребованных в Excel. Она позволяет, к примеру, легко отыскать и сопоставить телефонные данные человека или организаций из справочной таблицы по его имени. Можно сопоставить цену товаров по их наименованиям. Эти и многие другие возможности предоставит для Вас функция ВПР. Пользоваться ей достаточно просто.
Синтаксис функций ВПР и ГПР
Функции имеют 4 аргумента:
- ЧТО ищем – искомый параметр (цифры и/или текст) либо ссылка на ячейку с искомым значением;
- ГДЕ ищем – массив данных, где будет производиться поиск (для ВПР – поиск значения осуществляется в ПЕРВОМ столбце таблицы; для ГПР – в ПЕРВОЙ строке);
- НОМЕР столбца/строки – откуда именно возвращается соответствующее значение (1 – из первого столбца или первой строки, 2 – из второго и т.д.);
- ИНТЕРВАЛЬНЫЙ ПРОСМОТР – точное или приблизительное значение должна найти функция (ЛОЖЬ/0 – точное; ИСТИНА/1/не указано – приблизительное).
! Если значения в диапазоне отсортированы в возрастающем порядке (либо по алфавиту), мы указываем ИСТИНА/1. В противном случае – ЛОЖЬ/0.
ВПР имеет два режима поиска.
Четвертый параметр «интервальный просмотр» позволяет задать режим сравнения, в котором нужно работать – точный или приблизительный. Это логический параметр, то есть для него возможно 2 варианта:
- или ЛОЖЬ – интервальный просмотр выключен (ищем точное соответствие)
- 1 или ИСТИНА – интервальный просмотр включен (достаточно приблизительного)
Если этот параметр — ЛОЖЬ, то ищется точное равенство в первом столбце с аргументом «искомое». Если же такого нет, возвращается ошибка #Н/Д. Точный режим нужен, когда вы хотите найти информацию, основанную на каком-то уникальном ключе. Скажем, информацию о товаре — по коду товара, или данные фильма по его названию, человека — по фамилии.
Если он равен ИСТИНА или вовсе пропущен, то допускается неточное совпадение в данных отсортированной таблицы с аргументом «искомое». То есть нам нужно «лучшее соответствие», «как можно самое близкое». Возможно, вы просматриваете почтовые тарифы по весу посылки, ищете налоговую ставку на основе дохода, или определяете скидку на основе ежемесячного объема продаж. В этих случаях вы, скорее всего, не найдете именно ваш вес либо точную цифру вашего дохода. А если точного нет, то принимается ближайшее подходящее значение.
Обратите внимание, что при этом предполагается, что наш перечень отсортирован по столбцу поиска
Как работает функция?
Программа после поиска искомого значения переходит во второй столбец, чтобы извлечь возвращаемый элемент.
С одним условием
Рассмотрим функцию на простом примере поиска сотрудника по присвоенному ему коду. Таблицу нужно отсортировать в порядке возрастания.
- Кликнуть по ячейке справа от таблицы или под ней и вписать искомый номер.
-
В ячейке рядом ввести функцию ВПР через знак «=», либо же использовать опцию «Вставить функцию» в разделе «Формулы». Проще использовать именно опцию – там есть подсказки, какие именно данные нужны.
-
Задать параметры поиска, заполнив соответствующие поля. Интервальный просмотр в данном случае пропустим.
- Нажать «Enter» – и появится результат поиска.
Когда таблица не отсортирована и данные введены в хаотичном порядке, результат будет неправильный – программа найдет ближайшее соответствие («ИСТИНА»). Но можно не сортировать таблицу, а указать интервальный просмотр «ЛОЖЬ».
Чтобы найти другой элемент, следует просто изменить первый аргумент, и результат автоматически преобразится.
С несколькими условиями
Часто на практике требуется сравнить данные нескольких диапазонов и выбрать значение с учетом 2-х и более критериев. Здесь задействована также функция ЕСЛИ, которая отвечает как раз за условия.
Из таблицы нужно найти показатель выручки по конкретному менеджеру в определенный день:
-
В первую выделенную ячейку вписать дату, во вторую – фамилию менеджера. В третьей ячейке будет происходить поиск.
-
Кликнуть по пустой ячейке и ввести формулу =ВПР(G1;ЕСЛИ(C2:C12=G2;A2:D12;»»);4;0).
- Для подтверждения действия зажать комбинацию клавиш Ctrl+Shift+Enter. Нажатие на «Enter» не сработает в этом случае, потому что формула должна быть выполнена в массиве (об этом свидетельствуют скобки «{}», в которые взята вся формула).
Поиск по нескольким столбцам
Объем данных расширен, и нужно найти конкретное значение среди нескольких столбцов, просуммировав данные с помощью функции СУММ.
-
Кликнуть по ячейке и ввести формулу =СУММ(ВПР(G1;A1:D12;{2;3;4};ЛОЖЬ)). Для третьего аргумента перечисление столбцов происходит в скобках «{}».
- Одновременно зажать клавиши Ctrl+Shift+Enter. В результате формула будет взята в фигурные скобки «{}».
Программа сравнивает данные в таблице и, как только определяет точное совпадение, суммирует их.
Таким же способом можно найти среднее значение с помощью СРЗНАЧ: =СРЗНАЧ(ВПР(G1;A1:D12;{2;3;4};ЛОЖЬ)).
Сравнение двух таблиц
ВПР помогает сопоставить значения в таблицах.
Необходимо сравнить зарплату сотрудников за 2 месяца, для этого:
-
В таблице с зарплатой за март добавить еще один столбец.
-
Клацнуть по первой ячейке в столбце и написать функцию ВПР со следующими аргументами: =ВПР($A$2:$A$12;ссылка_на_новый_лист!$A$2:$B$12;2;ЛОЖЬ). То есть нужно выделить диапазон с фамилиями менеджеров и сделать ссылки (строки и столбца) неизменными с помощью знака «$», посмотреть его в таблице с новой зарплатой, взять данные из второго столбца новой зарплаты и подставить их в ячейку С2. В результате отобразится первый результат.
- При помощи маркера заполнения протянуть полученное значение вниз.
По желанию теперь можно найти численную и процентную разницу.
Поиск в выпадающем списке
Необходимо настроить функцию так, чтобы при выборе элемента из выпадающего списка отображалось его числовое значение.
Для создания раскрывающегося списка:
- Поставить курсор в ячейку, где он будет располагаться.
-
Перейти в раздел книги «Данные» – «Проверка данных».
-
В «Типе данных» выбрать «Список», задать диапазон (в нашем случае – фамилии менеджеров).
-
Нажать «Ок». Отобразится список.
- В следующую ячейку вписать функцию ВПР. Первый аргумент – ссылка на раскрывающийся список, второй – диапазон таблицы, третий – номер столбца, четвертый – «ЛОЖЬ». В итоге получится следующее: =ВПР(E1;A1:B12;2;ЛОЖЬ). Нажать «Enter».
Меняется фамилия в списке – меняется и зарплата.
Перенос данных
Есть таблица с менеджерами и объемом их продаж. Во второй таблице значится сумма премии за продажу для каждого менеджера. Необходимо перенести данные в левую таблицу, чтобы подсчитать общую выручку (произведение объема продаж и премии за 1 продажу: =ПРОИЗВЕД(C2*D2)).
-
Выделить первую ячейку с премией в левой таблице. Написать функцию с аргументами, сделать неизменными значения из второй таблицы, указать в третьем аргументе столбец 2, вместо «ЛОЖЬ» можно вписать 0: =ВПР(B2;$G$2:$H$12;2;0)
- Протянуть формулу вниз, чтобы заполнить все ячейки.
Формулы подстановки Excel: ВПР, ИНДЕКС и ПОИСКПОЗ
Если произвести поиск по функциям подстановки, Google покажет, что ВПР намного популярнее функции ИНДЕКС. Оно и понятно, ведь чтобы придать функции ИНДЕКС тот же функционал, что и ВПР, необходимо воспользоваться еще одной формулой – ПОИСКПОЗ. Что касается меня, было всегда непросто попробовать и освоить две новые функции одновременно. Но они дают больше возможностей и гибкости в создании электронных таблиц. Но обо всем по порядку.
Функция ВПР()
Предположим, у вас есть таблица с данными о работниках. В первой колонке хранится табельный номер сотрудника, в остальных – другие данные (ФИО, отдел и т.д.). Если у вас есть табельный номер, то можно воспользоваться функцией ВПР, чтобы вернуть определенную информацию о сотруднике. Синтаксис формулы =ВПР(искомое_значение; таблица; номер_столбца; ). Она говорит Excel: «Найди в таблице строку, первая ячейка которой совпадает с искомым_значением, и верни значение ячейки с порядковым номером номер_столбца».
Но случаются ситуации, когда у вас есть имя сотрудника и необходимо вернуть табельный номер. На рисунке в ячейке A10 – имя работника и требуется определить табельный номер в ячейке B10.
Когда ключевое поле находится правее данных, которые вы хотите получить, ВПР не поможет. Если, конечно, была бы возможность задать номер_столбца -1, тогда проблем бы не было. Одним из распространенных решений является добавление нового столбца A, копирование имен сотрудников в этот столбец, заполнить табельные номера с помощью ВПР, сохранить их как значения и удалить временную колонку A.
Функция ИНДЕКС()
Чтобы решить нашу проблему в один шаг, необходимо воспользоваться формулами ИНДЕКС и ПОИСКПОЗ. Сложность данного подхода заключается в том, что требуется применить две функции, которые, возможно, вы никогда не применяли до этого. Для упрощения понимания решим эту задачу в два этапа.
Начнем с функции ИНДЕКС. Кошмарное название. Когда кто-нибудь говорит «индекс», у меня в голове не возникает ни единой ассоциации, чем же занимается эта функция. А требует она целых три аргумента: =ИНДЕКС(массив; номер_строки; ).
Говоря по-простому, Excel идет в массив данных и возвращает значение, находящееся на пересечении указанной строки и столбца. Как будто бы просто. Таким образом, формула =ИНДЕКС($A$2:$C$6;4;2) вернет значение, находящееся в ячейке B5.
Применительно к нашей проблеме, чтобы вернуть табельный номер работника, формула должна выглядеть следующим образом =ИНДЕКС($A$2:$A$6;?;1). Выглядит как бессмыслица, но если мы заменим знак вопроса формулой ПОИСКПОЗ, у нас есть решение.
Функция ПОИСКПОЗ()
Синтаксис этой функции таков: =ПОИСКПОЗ(искомое_значение; просматриваемы_массив; ).
Она говорит Excel: «Найди искомое_значение в массиве данных и верни номер строки массива, в которой это значение встречается». Таким образом, чтобы найти в какой строке находиться имя сотрудника в ячейке A10, необходимо прописать формулу =ПОИСКПОЗ(A10; $B$2:$B$6; 0). Если в ячейке A10 будет имя «Колин Фарел», тогда ПОИСКПОЗ вернет 5-ю строку массива B2:B6.
Ну, в принципе, все. Функция ПОИСКПОЗ указывает функции ИНДЕКС, в какой строке искать значение. Замените знак вопроса в формуле ИНДЕКС формулой ПОИСКОПОЗ и вы получите эквивалент ВПР с возможностью поиска данных, находящихся левее ключевого столбца. Получиться так:
В начале было непривычно, был огромный соблазн вставить еще одну колону и работать, как всегда работал. Но со временем использование функции ИНДЕКС вошло в привычку. Оказалось, что это быстрее и требует меньших манипуляций. Так что в следующий раз, когда у вас возникнет желание задать номеру столбца отрицательное число в ВПР, воспользуйтесь сочетанием двух странных функций ИНДЕКС и ПОИСКПОЗ, чтобы решить свою проблему.
Извлекаем из столбца слева числовые значения.
Этот «обратный ВПР» подходит только для чисел. Предположим, нам нужно подсчитать количество литров в определенном заказе. Но объем также находится левее, чем расположен его код.
Используем ВПР в комбинации с СУММПРОИЗВ (SUMPRODUCT).
Наша итоговая формула:
Давайте пошагово разберем все действия.
Сразу вспомним важную особенность СУММПРОИЗВ: она работает с предложенным ей диапазоном как с массивом, то есть последовательно перебирает все его элементы от начала до конца.
Вначале ВПР(C2;D10:D25;1;0) позволяет нам найти в перечне заказов интересующий нас и вывести его же (порядковый номер колонки 1, то есть, что ищем, то и возвращаем). Если будет получена ошибка, то она автоматически в нашем случае функцией СУММПРОИЗВ преобразуется в ноль. Сравниваем извлеченное с соответствующим значением из перечня кодов при помощи равенства: ВПР(C2;D10:D25;1;0)=D10:D25
В случае соответствия получаем ИСТИНА (что соответствует 1), в противном случае – ЛОЖЬ (или 0).
В итоге получаем виртуальный набор цифр, состоящий из 0 и 1. Поскольку коды у нас не повторяются, единица будет в этом списке всего одна. Перемножаем этот набор нулей и единиц с соответствующими величинами объема C10:C25. Все произведения дадут нам 0, кроме одного – соответствующего нашему, где была 1. Общая сумма этих произведений и даст нам искомый объем по нужной позиции.
И еще один вариант левого ВПР с числовыми значениями. На этот раз используем функцию СУММЕСЛИ (SUMIF).
Она позволяет находить сумму в зависимости от выполнения определенных условий. Смотрите пример.
Формула расчета:
Синтаксис здесь такой:
СУММЕСЛИ(диапазон_просмотра; критерий; что_суммируем).
Находим сумму чисел из диапазона C10:C25, соответствующих тем ячейкам из D10:D25, которые равны С2.
Важное ограничение – коды не должны дублироваться, иначе получим сумму сразу нескольких позиций!
Дополнительные материалы о функции ВПР:
5 1 голос
Рейтинг статьи
Внимание: неточный поиск включен по умолчанию!
К сожалению, четвертый аргумент является необязательным и по умолчанию имеет значение ИСТИНА. Это означает, что программа ищет не именно ваше, а просто похожее значение по умолчанию, даже если вы указали только 3 аргумента.
Если аргумент используется ЛОЖЬ (или ноль), то сортировка не обязательна, поскольку ищется точное соответствие.
Это часто создает проблемы, потому что многие люди невольно оставляют ВПР в режиме по умолчанию, забывают точно указать, как именно они хотят искать. А это может привести к неверному результату, если в данных не было сортировки. То есть, программа обнаружит первое подходящее значение и прекратит поиск. Допустим, мы ищем «апельсин», а первым в списке числится «банан». Эксель решит, что после слова на букву Б нет смысла искать апельсин, ведь список должен быть отсортирован по алфавиту. А если вы не сделали сортировку, то ваш апельсин вполне может находиться где-то ниже в списке. Но найти его уже не удастся. Результат — ошибка в заполнении таблицы с товарами и ценами.
Чтобы избежать этой проблемы, обязательно используйте ЛОЖЬ или ноль в качестве 4-го аргумента, когда нужен именно точный поиск.
В подавляющем большинстве случаев используется точное сравнение: если в прайс-листе найдется точно такое же название товара, то программа выведет его цену. В противном случае мы получим ошибку #N/A.
Вы спросите – а зачем же тогда этот параметр, если его значение ИСТИНА (TRUE) или же отсутствие приводит к таким проблемам? Ответ заключается в том, что если всё же вы будете применять её на отсортированном массиве, то производительность и скорость вычислений возрастут по разным оценкам где-то в 50 (пятьдесят!) раз. При работе с большими объемами данных это будет очень заметно.
Поэтому, если есть такая возможность, старайтесь сортировать большие массивы данных. Если делать всё без ошибок, то производительность Excel вырастет многократно.
Поэтому мы рекомендуем всегда устанавливать 4-й аргумент явным образом, даже если в конкретной ситуации этого не требуется. Таким образом, у вас всегда есть визуальное напоминание о режиме поиска, который вы используете.