Почему не работает впр
Перейти к содержимому

Почему не работает впр

6 причин, почему функция ВПР не работает

Функция VLOOKUP (ВПР) – одна из самых популярных среди функций категории Ссылки и массивы в Excel. А также это одна из самых сложны функций Excel, где страшная ошибка #N/A (#Н/Д) может стать привычной картиной. В этой статье мы рассмотрим 6 наиболее частых причин, почему функция ВПР не работает.

Вам нужно точное совпадение

Последний аргумент функции ВПР, известный как range_lookup (интервальный_просмотр), спрашивает, какое совпадение Вы хотите получить – приблизительное или точное.

В большинстве случаев люди ищут конкретный продукт, заказ, сотрудника или клиента, и потому хотят точное совпадение. Если производится поиск уникального значения, то аргументом range_lookup (интервальный_просмотр) должно быть FALSE (ЛОЖЬ).

Этот аргумент не обязателен, но если его не указать, то будет использовано значение TRUE (ИСТИНА). В таком случае для правильной работы функции необходимо, чтобы данные были отсортированы в порядке возрастания.

На рисунке ниже показана функция ВПР с пропущенным аргументом range_lookup (интервальный_просмотр), которая возвращает ошибочный результат.

Решение

Если Вы ищите уникальное значение, задайте последний аргумент равным FALSE (ЛОЖЬ). Функция ВПР в примере выше должна выглядеть так:

Зафиксируйте ссылки на таблицу

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

На рисунке ниже показан пример функции ВПР, введенной некорректно. Для аргументов lookup_value (искомое_значение) и table_array (таблица) введены неправильные диапазоны ячеек.

Функция ВПР не работает

Решение

Аргумент table_array (таблица) – это таблица, которую ВПР использует для поиска и извлечения информации. Чтобы корректно скопировать функцию ВПР, в аргументе table_array (таблица) должна быть абсолютная ссылка на диапазон ячеек.

Кликните по адресу ссылки внутри формулы и нажмите F4 на клавиатуре, чтобы превратить относительную ссылку в абсолютную. Формула должна быть записана так:

В этом примере ссылки в аргументах lookup_value (искомое_значение) и table_array (таблица) сделаны абсолютными. Иногда достаточно зафиксировать только аргумент table_array (таблица).

Вставлен столбец

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

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

Функция ВПР не работает

Столбец Quantity (Количество) был 3-м по счету, но после добавления нового столбца он стал 4-м. Однако функция ВПР автоматически не обновилась.

Решение 1

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

Решение 2

Другой вариант – вставить функцию MATCH (ПОИСКПОЗ) в аргумент col_index_num (номер_столбца) функции ВПР.

Функция ПОИСКПОЗ может быть использована для того, чтобы найти и возвратить номер требуемого столбца. Это сделает аргумент col_index_num (номер_столбца) динамичным, т.е. можно будет вставлять новые столбцы в таблицу, не влияя на работу функции ВПР.

Формула, показанная ниже, может быть использована в этом примере, чтобы решить проблему, описанную выше.

Таблица стала больше

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

Функция ВПР не работает

Решение

Форматируйте диапазон ячеек как таблицу (Excel 2007+) или как именованный диапазон. Такие приёмы дадут гарантию, что ВПР всегда будет обрабатывать всю таблицу.

Чтобы форматировать диапазон как таблицу, выделите диапазон ячеек, который собираетесь использовать для аргумента table_array (таблица). На Ленте меню нажмите Home > Format as Table (Главная > Форматировать как таблицу) и выберите стиль из галереи. Откройте вкладку Table Tools > Design (Работа с таблицами > Конструктор) и в соответствующем поле измените имя таблицы.

В формуле на рисунке ниже использовано имя таблицы FruitList.

Функция ВПР не работает

ВПР не может смотреть влево

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

Решение

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

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

Функция ВПР не работает

Данные в таблице дублируются

Функция ВПР может извлечь только одну запись. Она возвратит первую найденную запись, соответствующую введённому Вами условию поиска.

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

Решение 1

Нужны ли Вам повторяющиеся данные в списке? Если нет – удалите их. Это можно сделать быстро при помощи кнопки Removes Duplicates (Удалить дубликаты) на вкладке Data (Данные).

Решение 2

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

Таблица ниже – это список заказов. Допустим, Вы хотите найти все заказы определённого фрукта.

Функция ВПР не работает

Сводная таблица позволяет выбрать значение из столбца ID в фильтре, которое соответствует определенному фрукту, и получить список всех связанных заказов. В нашем примере выбрано значение ID равное 23 (Бананы).

Функция ВПР не работает

ВПР без забот

Эта статья показывает решения 6 наиболее распространённых причин сбоя в работе функции ВПР. Вооружившись этой информацией, Вы сможете насладиться более беззаботным будущим в компании замечательных функций Excel.

Использование функции ВПР (VLOOKUP) для подстановки значений

Кому лень или нет времени читать — смотрим видео. Подробности и нюансы — в тексте ниже.

Постановка задачи

Итак, имеем две таблицы — таблицу заказов и прайс-лист:

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

Решение

В наборе функций Excel, в категории Ссылки и массивы (Lookup and reference) имеется функция ВПР (VLOOKUP) . Эта функция ищет заданное значение (в нашем примере это слово «Яблоки») в крайнем левом столбце указанной таблицы (прайс-листа) двигаясь сверху-вниз и, найдя его, выдает содержимое соседней ячейки (23 руб.) Схематически работу этой функции можно представить так:

Для простоты дальнейшего использования функции сразу сделайте одну вещь — дайте диапазону ячеек прайс-листа собственное имя. Для этого выделите все ячейки прайс-листа кроме «шапки» (G3:H19), выберите в меню Вставка — Имя — Присвоить (Insert — Name — Define) или нажмите CTRL+F3 и введите любое имя (без пробелов), например Прайс. Теперь в дальнейшем можно будет использовать это имя для ссылки на прайс-лист.

Теперь используем функцию ВПР. Выделите ячейку, куда она будет введена (D3) и откройте вкладку Формулы — Вставка функции (Formulas — Insert Function) . В категории Ссылки и массивы (Lookup and Reference) найдите функцию ВПР (VLOOKUP) и нажмите ОК. Появится окно ввода аргументов для функции:

vlookup3.png

Заполняем их по очереди:

  • Искомое значение (Lookup Value) — то наименование товара, которое функция должна найти в крайнем левом столбце прайс-листа. В нашем случае — слово «Яблоки» из ячейки B3.
  • Таблица (Table Array) — таблица из которой берутся искомые значения, то есть наш прайс-лист. Для ссылки используем собственное имя «Прайс» данное ранее. Если вы не давали имя, то можно просто выделить таблицу, но не забудьте нажать потом клавишу F4 , чтобы закрепить ссылку знаками доллара , т.к. в противном случае она будет соскальзывать при копировании нашей формулы вниз, на остальные ячейки столбца D3:D30.
  • Номер_столбца (Column index number) — порядковый номер (не буква!) столбца в прайс-листе из которого будем брать значения цены. Первый столбец прайс-листа с названиями имеет номер 1, следовательно нам нужна цена из столбца с номером 2.
  • Интервальный_просмотр (Range Lookup) — в это поле можно вводить только два значения: ЛОЖЬ или ИСТИНА:
      • Если введено значение 0 или ЛОЖЬ (FALSE) , то фактически это означает, что разрешен поиск только точного соответствия, т.е. если функция не найдет в прайс-листе укзанного в таблице заказов нестандартного товара (если будет введено, например, «Кокос»), то она выдаст ошибку #Н/Д (нет данных).
      • Если введено значение 1 или ИСТИНА (TRUE) , то это значит, что Вы разрешаете поиск не точного, а приблизительного соответствия, т.е. в случае с «кокосом» функция попытается найти товар с наименованием, которое максимально похоже на «кокос» и выдаст цену для этого наименования. В большинстве случаев такая приблизительная подстановка может сыграть с пользователем злую шутку, подставив значение не того товара, который был на самом деле! Так что для большинства реальных бизнес-задач приблизительный поиск лучше не разрешать. Исключением является случай, когда мы ищем числа, а не текст — например, при расчете Ступенчатых скидок.

      Все! Осталось нажать ОК и скопировать введенную функцию на весь столбец.

      Ошибки #Н/Д и их подавление

      Функция ВПР (VLOOKUP) возвращает ошибку #Н/Д (#N/A) если:

      • Включен точный поиск (аргумент Интервальный просмотр=0) и искомого наименования нет в Таблице.
      • Включен приблизительный поиск (Интервальный просмотр=1), но Таблица, в которой происходит поиск не отсортирована по возрастанию наименований.
      • Формат ячейки, откуда берется искомое значение наименования (например B3 в нашем случае) и формат ячеек первого столбца (F3:F19) таблицы отличаются (например, числовой и текстовый). Этот случай особенно характерен при использовании вместо текстовых наименований числовых кодов (номера счетов, идентификаторы, даты и т.п.) В этом случае можно использовать функции Ч и ТЕКСТ для преобразования форматов данных. Выглядеть это будет примерно так:
        =ВПР(ТЕКСТ(B3);прайс;0)
        Подробнее об этом можно почитать тут.
      • Функция не может найти нужного значения, потому что в коде присутствуют пробелы или невидимые непечатаемые знаки (перенос строки и т.п.). В этом случае можно использовать текстовые функции СЖПРОБЕЛЫ (TRIM) и ПЕЧСИМВ (CLEAN) для их удаления:
        =ВПР(СЖПРОБЕЛЫ(ПЕЧСИМВ(B3));прайс;0)
        =VLOOKUP(TRIM(CLEAN(B3));прайс;0)

      Для подавления сообщения об ошибке #Н/Д (#N/A) в тех случаях, когда функция не может найти точно соответствия, можно воспользоваться функцией ЕСЛИОШИБКА (IFERROR) . Так, например, вот такая конструкция перехватывает любые ошибки создаваемые ВПР и заменяет их нулями:

      Если нужно извлечь не одно значение а сразу весь набор (если их встречается несколько разных), то придется шаманить с формулой массива. или использовать новую функцию ПРОСМОТРX (XLOOKUP) из Office 365.

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

        .
      • Функции VLOOKUP2 и VLOOKUP3 из надстройки PLEX

      :)

      Не за что — стараемся по мере сил и способностей Все мои видеоуроки можно найти (и подписаться на них) на канале planetaexcel на YouTube.

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

      :)

      Спасибо Вам, Николай, как раз то что надо!

      :)

      Сцепить два ваших критерия в отдельном столбце в один и делать ВПР по нему.
      Либо написать свой вариант ВПР на Visual Basic

      Подскажите, почему формула не работает? Составил Таблицу из 2-х столбцов, в первом Наименование, во втором параметр. Рядом 2 ячейки — выбор Наименования (через выпадающий список), во второй должно ставиться значение через формулу ВПР. Но появляются ошибки: При выборе Строчки «Ручка Опера» значение подставляется неверно, При выборе строчки «Ручка Бридж» значения не находит.

      Ручка Н 54
      Ручка С 36
      Ручка Сэко 16
      Ручка Опера 37
      Ручка Тауэр 62
      Ручка Бридж 2

      P.S.: и как сюда пример готовый добавить?

      ;)

      Спасибо, экономил очень много времении )))))

      Помогите, ВПР формулу прописал. Перепроверил. И мне в нужном месте вместо числового значения выдало ошибку #ССЫЛКА! Что делать и как ее обойти. И вообще почему она появилась? Для понимания проблемы. Всё сделал как в указанном примере. Но результат я уже написал.

      :)

      УРРРЯЯЯЯЯЯ, сам разобрался. Проблема решилась когда я повторно пересмотрел урок и понял, что столбец указал не правильный для цены. Нужно указывать номер стоблца именно в ДИАПАЗОНЕ В КОТОРОМ БУДЕТ ВЫБИРАТЬСЯ ЦЕНА, а не столбец по порядку начиная с первого.

      ;)

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

      Б 826Д*60*100 1 067,00 Нет этого товара в Ч.Р. 10 937 Б 826Д*60*100
      Б 826Д*60*70 914,00 914,00 10 939 Б 826Д*60*70
      Б 826Д*60*80 965,00 965,00 10 940 Б 826Д*60*80
      Б 826Д*60*90 1 016,00 1 016,00 10 941 Б 826Д*60*90
      Б 826Д*61*90,5 1 042,00 1 042,00 10 942 Б 826Д*61*90,5
      Б 826Д*62*96 1 067,00 1 067,00 10 943 Б 826Д*62*96
      Б 826Д*63*73 965,00 965,00 10 944 Б 826Д*63*73
      914,00 Б 826Д**

      Николай, как быть в случае если цены в течении периода меняются. Предполагаем что в ТАБЛИЦЕ ЗАКАЗОВ есть столбец ДАТА. И в ПРАЙС-ЛИСТЕ есть столбцы ЦЕНА НА ЯНВАРЬ, ЦЕНА НА ФЕВРАЛ и т.д.

      Очень полезная штука!
      Николай, у меня вопрос.
      Есть три таблицы:
      1. Список товаров с артикулами и другими данными
      2. Таблица соответствия артикула уникальному номеру (2 столбца).
      3. Таблица соответствия уникального номера пути к фотографиям. В этой таблице два столбца, в одном уникальный номер, в другом путь к фото товара. Фотографий может быть как одна так и несколько. То есть айди может быть в пяти йчейках напротив которых ячейка с указанием пути.

      Вопрос: Как в первую таблицу вытащить пути к нескольким фотографиям одного товара в одну ячейку из третей через вторую? При этом пути к фото разместить через символ | например.

      Заранее огромное спасибо!

      Николай, здравствуйте!
      У меня вопрос. Может ли ВПР найти артикул с текстом?
      Например, «525 393-090» ищем в «Кроссовки 525 393-090»

      Заранее огромное спасибо!

      ВПР не может, но можно по-другому:

      Добрый день, Николай!
      Пожалуйста, помогите понять работу предложенной вами здесь формулы с функциями ПРОСМОТР и ПОИСК.
      Она создана как-то не в соответствии с описанием этих функций, но. как ни странно, работает!

      Непонятки вот в чём.

      По описанию функции ПРОСМОТР, аргумент №1 — строка с искомым значением, аргумент №2 — область-вектор (т.е. одномерная), в которой происходит поиск ячейки со значением, заданным аргументом №1, аргумент №3 — область-вектор, из которой выбирается значение-результат. То есть, если в области “аргумент №2” находится ячейка, значение которой равно “аргумент №1” — функция вычисляет порядковый номер этой ячейки в этой области и возвращает значение ячейки уже из области “аргумент №3” с тем же порядковым номером.

      Вопрос 1. В этом свете, непонятно в вашем примере, какой смысл имеет на месте аргумента №1 значение 2^15 ?
      Вопрос 2. В качестве аргумента №2 в вашей формуле стоит функция ПОИСК, результатом работы которой является вроде как «позиция первого вхождения знака или текстовой строки». А по описанию функции ПРОСМОТР, аргументом №2 должен быть дипазон ячеек (область). Как так?
      Вопрос 3. По описанию фукции ПОИСК её аргумент №1 — строковый (текстовой), а в вашей формуле на этом месте — дипазон ячеек (область). Как так?
      Вопрос 4. Ещё по функции ПОИСК. Когда я скопировал часть вашей формулы (аргумент №2 из ПРОСМОТР) в отдельную ячейку, чтобы посмотреть промежуточный результат, то есть, =ПОИСК(F$2:F$4;A2) — к моему недоумению результатом оказалось #ЗНАЧ! ! То есть, фукция отдельно — вроде неправильная, но внутри другой функции как-то работает?

      ;-)

      Повторю, вся эта конструкция (формула) тем не менее, работает! Шаманство какое-то.

      .

      После долгих размышлений и экспериментов я догадался (в экселовской СПРАВКЕ об этом ни пол-слова! ), что конструкция ПОИСК(F$2:F$4;A2) возвращает виртуальный массив (!) из 4-х элементов (для удобства далее я его буду условно называть “ Просматриваемый_Вектор ”), с значениями, являющимися результатом поиска в значении ячейки A2 значений из соответствующих ячеек массива F$2:F$4 (далее буду условно называть “ Массив_Примет ”),
      то есть,
      в результирующий массив в элемент Просматриваемый_Вектор (1) помещается результат обычной функции ПОИСК(F$2;A2) (как бы, ПОИСК( Массив_Примет (1);A2)), в элемент Просматриваемый_Вектор (2) — результат ПОИСК(F$3;A2) (как бы, Массив_Примет (2);A2), и т. д.
      То есть, в элементы Просматриваемый_Вектор (i) помещается: либо число (найденная в A2 позиция искомой подстроки Массив_Примет (i)), либо значение #ЗНАЧ! (если значение-подстрока Массив_Примет (i) в A2не найдена).

      Что-ж, с моими вопросами 2, 3, 4 из предыдущего сообщения вроде разобрались. (За исключением того, что такое использование функции ПОИСК в экселовской Справке — отсутствует, т.е. — это недокументированная возможность?)

      Остался вопрос 1 , по функции ПРОСМОТР:
      Почему для выявления среди элементов массива Просматриваемый_Вектор элемента, содержащего число, их надо сравнивать именно c значением 2^15 ?

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

      Я правильно понимаю, что Вы исключили в функции VLOOKUP 2 такую вещь как » приблизительный поиск (Интервальный просмотр=1) » ?
      Т.е. она ищет только точно совпадение. Верно ?
      У меня потребность именно в приблизительном поиске и лучше (крайне желательно) без сортировки таблицы.

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

      =ВПР(A2;$J$2:$L$97864;3;0)

      а собственно значения (хотя бы #Н/Д ) не выдается. Много раз следовала Вашему уроку, но не получается..

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

      Николай, добрый день.

      Есть такая таблица:

      A B C
      1 ИМЯ
      2 500

      при помощи функции ВПР (искомое значение «ИМЯ»;) мы можем присвоить значение из строки №1. Но, там пустые ячейки.
      Как присвоить значение из строки, которая находится ниже? В данном примере «500»

      Добрый день! А если в таблице позиции повторяются, а значения у них разные? ВПР цепляет тогда первое совпадение и получаются некорректные данные.

      Например структура таблицы такая:
      СКЛАД 1
      яблоки 15 кг
      груши 20 кг
      апельсины 15 кг
      СКЛАД 2
      арбузы 30 кг
      дыни 30 кг
      яблоки 10 кг

      В этом случае получается всегда «яблоки 15 кг»

      Доброе время суток, Николай, а если ситуация вот такая:
      Наименование
      Сочное Яблоко красное 121212
      Сочное Яблоко зеленое 333222
      Сочное яблоко грени 4443344
      Сочная Груша зелёная 33333
      Сочная Груша желтая 55555
      и т.д. до бесконечности, как это бывает в прайсах. Искать надо по слову Яблоко\Груша, как это можно реализовать?

      Заранее, огромное Вам спасибо.
      С уважением, Джон.

      Добрый день. Как можно в одной таблице совместить возможности функций ВПР и VLOOKUP3
      Т.е. есть исходные данные которые содержат в разных строках одинаковый артикул.
      Если использовать ВПР, то она ищет только первое значение, если VLOOKUP3, то массив, но только для одного артикула. А мне нужно в одну таблицу «собрать» данные соответствующие и одиночным артикулам и если их несколько.
      Т.е. по сути сводная таблица, но с простой, двумерной структурой.

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

      Файл1 Закупка

      № п/п Наименование Страна Артикул Дата покупки Объем
      партии, кг
      Цена Стоимость партии
      9 Капуста Россия 0004/01 01.12.2015 5 12 60
      8 Ананас Эквадор 0001/02 02.12.2015 10 120 1200
      14 Киви Тунис 0005/01 03.12.2015 13 60 780
      11 Грейпфрут Марокко 0003/01 04.12.2015 14 45 630
      17 Нектарин Тайланд 0007/01 05.12.2015 14 40 560
      5 Киви Тунис 0005/01 01.01.2016 23 60 1380
      10 Манго Тайланд 0006/01 01.01.2016 10 80 800
      13 Киви Тунис 0005/01 01.01.2016 15 80 1200
      16 Абрикос Армения 0001/01 01.01.2016 26 40 1040
      3 Капуста Россия 0004/01 01.02.2016 35 12 420
      6 Капуста Россия 0004/01 02.02.2016 36 12 432
      2 Груши Россия 0003/02 03.02.2016 40 38 1520
      15 Персик Армения 0008/01 04.02.2016 42 45 1890
      1 Яблоки Россия 0009/01 01.03.2016 60 23 1380
      4 Мандарины Марокко 0006/02 01.03.2016 45 45 2025
      7 Киви Тунис 0005/01 01.03.2016 60 60 3600
      12 Банан Алжир 0002/01 01.03.2016 48 22 1056

      Файл2 Продажи

      № п/п Артикул Дата продажи Объем
      партии, кг
      Цена Стоимость партии
      1 0009/01 10.03.2016 60 33 1980
      2 0003/02 10.02.2016 40 48 1920
      3 0004/01 03.02.2016 35 22 770
      4 0006/02 10.03.2016 45 55 2475
      5 0005/01 20.01.2016 23 70 1610
      6 0004/01 03.02.2016 36 30 1080
      7 0005/01 10.03.2016 40 70 2800
      8 0001/02 10.01.2016 10 130 1300
      9 0005/01 11.03.2016 15 80 1200
      10 0004/01 15.01.2016 5 35 175
      11 0005/01 12.03.2016 5 90 450
      12 0006/01 05.01.2016 10 90 900
      13 0003/01 16.01.2016 14 55 770
      14 0002/01 10.03.2016 48 32 1536
      15 0005/01 05.01.2016 15 90 1350
      16 0005/01 15.01.2016 10 70 700
      17 0005/01 15.01.2016 3 80 240
      18 0008/01 15.03.2016 42 55 2310
      19 0001/01 15.01.2016 20 50 1000
      20 0007/01 17.01.2016 14 50 700
      21 0001/01 15.01.2016 6 60 360

      Что необходимо

      Сводная таблица по продажам
      Наименование Страна Артикул Продано Средняя цена Сумма
      Абрикос Армения 0001/01 20 50 1000
      Ананас Эквадор 0001/02 10 130 1300
      Банан Алжир 0002/01 48 32 1536
      Грейпфрут Марокко 0003/01 14 55 770
      Груши Россия 0003/02 40 48 1920
      Капуста Россия 0004/01 76 29 2204
      Киви Тунис 0005/01 111 78.57 8721.27
      Манго Тайланд 0006/01 10 90 900
      Мандарины Марокко 0006/02 45 55 2475
      Нектарин Тайланд 0007/01 14 50 700
      Персик Армения 0008/01 42 55 2310
      Яблоки Россия 0009/01 60 33 1980

      Не могли бы помочь. При использовании ВПР вопросов не возникло. Но при синхронизации моей таблицы и таблицы поставщика, в некоторых товарах , определяется как #Н/Д.
      Это понятно так как не было найдено арт. в таблице поставщика. Но как сделать, если в таблице поставщика нет точного арт. номера оставлять то что уже было в ячейки, а не ставить #Н/Д.

      День добрый! Подскажите пожалуйста, как сделать ВПР в такой ситуации (я уже думала о других формулах, как поискпоз, просмотр, но что-то как-то не выходит). Во вкладке Исходник 10 столбцов : Фио, группа, город, ДАТА. 9-й столбец Показатель, 10-й — время. Данные идут вертикально по Датам. Необходимо перенести данные Во вкладку Показатель, где первые 3 столбца Фио, группа, город, а после идут 1,2,3 . , то есть даты, они что во вкладке Исходник и Показатель указаны как числа (общий формат), так как сам файл идет за определенный месяц. Как в формуле привязать эти числа, чтоб переносились данные во вкладку Показатель по определенному Фио и дате.
      Вкладка Исходник

      ФИО Группа Город Дата Показатель Время
      Петров Иван Смирнов Саратов 3 196 0:01:54
      Петров Иван Смирнов Саратов 4 176 0:02:54
      Иванова Катя Кузнецов Омск 5 171 0:03:10

      Вкладка Показатель

      ФИО Группа Город 1 2 3 4 5 6
      Петров Иван Смирнов Саратов
      Смирнова Юлия Попов Самара
      Мартынова Екатерина Попов Самара
      Иванова Катя Кузнецов Омск

      Заранее спасибо.

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

      Пример:
      Имеется: «лист-1» с названиями моделей и их техническим описанием.
      Необходимо: на «лист-2» указывать актуальные в данный момент модели (в определенных ячейках, позиции ячеек определены для возможности последующей печати), и чтобы рядом с ними автоматически выводились таблицы с их описаниями с «лист-1».
      Далее лист с таблицами выбранных моделей отправляется на печать.

      Подскажите как можно заставить ВПР работать со списком «Наименование»(из вашего примера), диапазон которого меняется, может быть короче или длиннее. Нужно составить универсальный шаблон, где будут прописаны все формулы, но расчёты будут основываться на выборке с помощью ВПР по списку «Наименование», но длинна списка может меняться бессистемно в широком диапазоне 10-10 000.

      Функция ВПР() в EXCEL

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

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

      Синтаксис функции

      ВПР(искомое_значение; таблица; номер_столбца; интервальный_просмотр)

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

      Таблица — ссылка на диапазон ячеек. В левом столбце таблицы ищется Искомое_значение , а из столбцов расположенных правее, выводится соответствующий результат (хотя, в принципе, можно вывести можно вывести значение из левого столбца (в этом случае это будет само искомое_значение )). Часто левый столбец называется ключевым . Если первый столбец не содержит искомое_значение , то функция возвращает значение ошибки #Н/Д.

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

      Параметр интервальный_просмотр может принимать 2 значения: ИСТИНА (ищется значение ближайшее к критерию или совпадающее с ним) и ЛОЖЬ (ищется значение в точности совпадающее с критерием). Значение ИСТИНА предполагает, что первый столбец в таблице отсортирован в алфавитном порядке или по возрастанию. Это способ используется в функции по умолчанию, если не указан другой.

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

      Задача1. Справочник товаров

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

      Задача состоит в том, чтобы, выбрав нужный Артикул товара, вывести его Наименование и Цену .

      Примечание . Это «классическая» задача для использования ВПР() (см. статью Справочник ).

      Для вывода Наименования используйте формулу =ВПР($E9;$A$13:$C$19;2;ЛОЖЬ) или = ВПР($E9;$A$13:$C$19;2;ИСТИНА) или = ВПР($E9;$A$13:$C$19;2) (т.е. значение параметра Интервальный_просмотр можно задать ЛОЖЬ или ИСТИНА или вообще опустить). Значение параметра номер_столбца нужно задать =2, т.к. номер столбца Наименование равен 2 (Ключевой столбец всегда номер 1).

      Для вывода Цены используйте аналогичную формулу =ВПР($E9;$A$13:$C$19;3;ЛОЖЬ) (значение параметра номер_столбца нужно задать =3).

      Ключевой столбец в нашем случае содержит числа и должен гарантировано содержать искомое значение (условие задачи). Если первый столбец не содержит искомый артикул , то функция возвращает значение ошибки #Н/Д. Это может произойти, например, при опечатке при вводе артикула. Чтобы не ошибиться с вводом искомого артикула можно использовать Выпадающий список (см. ячейку Е9 ).

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

      При решении таких задач ключевой столбец лучше предварительно отсортировать (это также поможет сделать Выпадающий список нагляднее). Кроме того, в случае несортированного списка, ВПР() с параметром Интервальный_просмотр ИСТИНА (или опущен) работать не будет.

      В файле примера лист Справочник также рассмотрены альтернативные формулы (получим тот же результат) с использованием функций ИНДЕКС() , ПОИСКПОЗ() и ПРОСМОТР() . Если ключевой столбец (столбец с артикулами) не является самым левым в таблице, то функция ВПР() не применима. В этом случае нужно использовать альтернативные формулы. Связка функций ИНДЕКС() , ПОИСКПОЗ() образуют так называемый «правый ВПР»: =ИНДЕКС(B13:B19;ПОИСКПОЗ($E$9;$A$13:$A$19;0);1)

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

      Примечание . Для удобства, строка таблицы, содержащая найденное решение, выделена Условным форматированием . (см. статью Выделение строк таблицы в MS EXCEL в зависимости от условия в ячейке ).

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

      Задача2. Поиск ближайшего числа

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

      Чтобы использовать функцию ВПР() для решения этой задачи нужно выполнить несколько условий:

      1. Ключевой столбец, по которому должен производиться поиск, должен быть самым левым в таблице;
      2. Ключевой столбец должен быть обязательно отсортирован по возрастанию;
      3. Значение параметра Интервальный_просмотр нужно задать ИСТИНА или вообще опустить.

      Для вывода Наименования товара используйте формулу =ВПР($A7;$A$11:$B$17;2;ИСТИНА)

      Для вывода найденной цены (она не обязательно будет совпадать с заданной) используйте формулу: =ВПР($A7;$A$11:$B$17;1;ИСТИНА)

      Как видно из картинки выше, ВПР() нашла наибольшую цену, которая меньше или равна заданной (см. файл примера лист «Поиск ближайшего числа» ). Это связано следует из того как функция производит поиск: если функция ВПР() находит значение, которое больше искомого, то она выводит значение, которое расположено на строку выше его. Как следствие, если искомое значение меньше минимального в ключевом столбце, то функцию вернет ошибку #Н/Д.

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

      Если нужно найти по настоящему ближайшее к искомому значению, то ВПР() тут не поможет. Такого рода задачи решены в разделе Ближайшее ЧИСЛО . Там же можно найти решение задачи о поиске ближайшего при несортированном ключевом столбце.

      Примечание . Для удобства, строка таблицы, содержащая найденное решение, выделена Условным форматированием . Это можно сделать с помощью формулы =ПОИСКПОЗ($A$7;$A$11:$A$17;1)=СТРОКА()-СТРОКА($A$10) .

      Примечание : Если в ключевом столбце имеется значение совпадающее с искомым, то функция с параметром Интервальный_просмотр =ЛОЖЬ вернет первое найденное значение, равное искомому, а с параметром =ИСТИНА — последнее (см. картинку ниже).

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *