Функция vlookup возвращает значение которое находится за пределами допустимого диапазона
Нужно организовать рейтинг
Дано: таблица четыре столбца, с периодически меняющимися значениями.
А также список с тремя столбцами, где у каждого столбца изначально имеется значение 0.
Я себе представляю это так:
Необходимо сравнить значения из первых трех столбцов с последним. У того столбца и у которого значение наиболее близкое к четвертому нужно присвоить единицу в списке. А будет лучше если будет так: у того столбца у которого значение отличается от значения в четвертом столбце не более чем на +1 или на -1, присвоить «2», если же такого нет, то тому столбцу который был ближе всех, присвоить единицу.
После обновления значений в таблице, в списке значения не меняются и прибавляются к уже существующим.
Начал с VLOOKUP, но не могу понять значение ошибки.
Формула:
=VLOOKUP(E12, B12:D12, 6, TRUE)
Таблица: https://u.to/Q91GGA
Ошибка: #ref
Функция VLOOKUP возвращает значение, которое находится за пределами допустимого диапазона.
Нужно организовать рейтинг
Дано: таблица четыре столбца, с периодически меняющимися значениями.
А также список с тремя столбцами, где у каждого столбца изначально имеется значение 0.
Я себе представляю это так:
Необходимо сравнить значения из первых трех столбцов с последним. У того столбца и у которого значение наиболее близкое к четвертому нужно присвоить единицу в списке. А будет лучше если будет так: у того столбца у которого значение отличается от значения в четвертом столбце не более чем на +1 или на -1, присвоить «2», если же такого нет, то тому столбцу который был ближе всех, присвоить единицу.
После обновления значений в таблице, в списке значения не меняются и прибавляются к уже существующим.
Начал с VLOOKUP, но не могу понять значение ошибки.
Формула:
=VLOOKUP(E12, B12:D12, 6, TRUE)
Таблица: https://u.to/Q91GGA
Ошибка: #ref
Функция VLOOKUP возвращает значение, которое находится за пределами допустимого диапазона. terat
Сообщение отредактировал Pelena — Пятница, 08.05.2020, 09:14
Сообщение И так задачка
Нужно организовать рейтинг
Дано: таблица четыре столбца, с периодически меняющимися значениями.
А также список с тремя столбцами, где у каждого столбца изначально имеется значение 0.
Я себе представляю это так:
Необходимо сравнить значения из первых трех столбцов с последним. У того столбца и у которого значение наиболее близкое к четвертому нужно присвоить единицу в списке. А будет лучше если будет так: у того столбца у которого значение отличается от значения в четвертом столбце не более чем на +1 или на -1, присвоить «2», если же такого нет, то тому столбцу который был ближе всех, присвоить единицу.
После обновления значений в таблице, в списке значения не меняются и прибавляются к уже существующим.
Начал с VLOOKUP, но не могу понять значение ошибки.
Формула:
=VLOOKUP(E12, B12:D12, 6, TRUE)
Таблица: https://u.to/Q91GGA
Ошибка: #ref
Функция VLOOKUP возвращает значение, которое находится за пределами допустимого диапазона. Автор — terat
Дата добавления — 06.05.2020 в 18:45
Группа: Друзья
Ранг: Старожил
Сообщений: 2346
Замечаний: 0% ±
Excel 2007,2010,2013
а вы уверены, что тут нужен впр?
вот вам куча формул и ни одного впр [vba]
=ArrayFormula(rank(abs(B12:D12-E12),abs(B12:D12-E12),2))
=index(sort(transpose()),1,2)
=index(Sort(
=ArrayFormula(transpose(Index(Sort(
[/vba]
[p.s.]чего-то не обратил внимания на название темы, terat, надо бы его поменять
а вы уверены, что тут нужен впр?
вот вам куча формул и ни одного впр [vba]
=ArrayFormula(rank(abs(B12:D12-E12),abs(B12:D12-E12),2))
=index(sort(transpose()),1,2)
=index(Sort(
=ArrayFormula(transpose(Index(Sort(
[/vba]
[p.s.]чего-то не обратил внимания на название темы, terat, надо бы его поменять krosav4ig
email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
Сообщение отредактировал krosav4ig — Четверг, 07.05.2020, 01:30
Сообщение а вы уверены, что тут нужен впр?
вот вам куча формул и ни одного впр [vba]
=ArrayFormula(rank(abs(B12:D12-E12),abs(B12:D12-E12),2))
=index(sort(transpose()),1,2)
=index(Sort(
=ArrayFormula(transpose(Index(Sort(
[/vba]
[p.s.]чего-то не обратил внимания на название темы, terat, надо бы его поменять Автор — krosav4ig
Дата добавления — 07.05.2020 в 00:19
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Замечаний: 0% ±
Excel 2019
Так конечно выходит интереснее
Правда есть момент. Выходит что формулы считают все по порядку. Я имею ввиду если попадается значение 18 и в столбце 2 и в столбце 3, то предпочтение отдается столбцу 2. Если попадается значение 15 в столбце 1 и 3, то предпочтение 3. Т.е. всегда по порядку?
[p.s.]А что не так с названием темы? ведь в этом весь смысл.
Так конечно выходит интереснее
Правда есть момент. Выходит что формулы считают все по порядку. Я имею ввиду если попадается значение 18 и в столбце 2 и в столбце 3, то предпочтение отдается столбцу 2. Если попадается значение 15 в столбце 1 и 3, то предпочтение 3. Т.е. всегда по порядку?
[p.s.]А что не так с названием темы? ведь в этом весь смысл. terat
Сообщение Так конечно выходит интереснее
Правда есть момент. Выходит что формулы считают все по порядку. Я имею ввиду если попадается значение 18 и в столбце 2 и в столбце 3, то предпочтение отдается столбцу 2. Если попадается значение 15 в столбце 1 и 3, то предпочтение 3. Т.е. всегда по порядку?
[p.s.]А что не так с названием темы? ведь в этом весь смысл. Автор — terat
Дата добавления — 08.05.2020 в 05:57
Группа: Админы
Ранг: Местный житель
Сообщений: 19074
Замечаний: ±
Excel 365 & Mac Excel
Цитата terat, 08.05.2020 в 05:57, в сообщении № 3 ( )
А что не так с названием темы?
слишком общее название, просто немного конкретизируйте
Цитата terat, 08.05.2020 в 05:57, в сообщении № 3 ( )
А что не так с названием темы?
слишком общее название, просто немного конкретизируйте Pelena
Цитата terat, 08.05.2020 в 05:57, в сообщении № 3 ( )
А что не так с названием темы?
слишком общее название, просто немного конкретизируйте Автор — Pelena
Дата добавления — 08.05.2020 в 08:26
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Замечаний: 0% ±
Excel 2019
Цитата Pelena, 08.05.2020 в 08:26, в сообщении № 4 ( )
слишком общее название, просто немного конкретизируйте
Как это сделать?
Можете поправить? «Система рейтинга и поиск приближённых значений»
Цитата Pelena, 08.05.2020 в 08:26, в сообщении № 4 ( )
слишком общее название, просто немного конкретизируйте
Как это сделать?
Можете поправить? «Система рейтинга и поиск приближённых значений» terat
Цитата Pelena, 08.05.2020 в 08:26, в сообщении № 4 ( )
слишком общее название, просто немного конкретизируйте
Как это сделать?
Можете поправить? «Система рейтинга и поиск приближённых значений» Автор — terat
Дата добавления — 08.05.2020 в 08:47
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Замечаний: 0% ±
Excel 2019
Решил не много по другому сделать. Под каждой таблицей рядом с ячейкой о температуре выводить результат. Только не могу не как саму формулу придумать. Вот если словестно ее перевести получится так:
A = Прогноз
B = фактический прогноз погоды, т.е. та погода которая уже была.
Условие: ЕСЛИ A больше на 3 или меньше на 3 градуса от значения B то оправдано, иначе если A равен B то идеально равен, иначе не оправдано.
Вот где-то близко и совсем просто должно быть, но не могу разобраться.
Решил не много по другому сделать. Под каждой таблицей рядом с ячейкой о температуре выводить результат. Только не могу не как саму формулу придумать. Вот если словестно ее перевести получится так:
A = Прогноз
B = фактический прогноз погоды, т.е. та погода которая уже была.
Условие: ЕСЛИ A больше на 3 или меньше на 3 градуса от значения B то оправдано, иначе если A равен B то идеально равен, иначе не оправдано.
Вот где-то близко и совсем просто должно быть, но не могу разобраться. terat
Сообщение Решил не много по другому сделать. Под каждой таблицей рядом с ячейкой о температуре выводить результат. Только не могу не как саму формулу придумать. Вот если словестно ее перевести получится так:
A = Прогноз
B = фактический прогноз погоды, т.е. та погода которая уже была.
Условие: ЕСЛИ A больше на 3 или меньше на 3 градуса от значения B то оправдано, иначе если A равен B то идеально равен, иначе не оправдано.
Вот где-то близко и совсем просто должно быть, но не могу разобраться. Автор — terat
Дата добавления — 16.05.2020 в 14:09
Функция vlookup возвращает значение которое находится за пределами допустимого диапазона
Argument ‘Topic id’ is null or empty
Сейчас на форуме
© Николай Павлов, Planetaexcel, 2006-2023
info@planetaexcel.ru
Использование любых материалов сайта допускается строго с указанием прямой ссылки на источник, упоминанием названия сайта, имени автора и неизменности исходного текста и иллюстраций.
ООО «Планета Эксел» ИНН 7735603520 ОГРН 1147746834949 | ИП Павлов Николай Владимирович ИНН 633015842586 ОГРНИП 310633031600071 |
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.
Исправление ошибки #Н/Д в функции ВПР
Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Excel для Mac 2011 Excel для Windows Phone 10 Еще. Меньше
В этом разделе описаны наиболее распространенные причины ВПР для ошибочного результата функции и приведены рекомендации по использованию INDEX и MATCH .
Совет: Кроме того, ознакомьтесь с материалом Краткая справочная карточка: советы по устранению неполадок функции ВПР. На ней указаны основные причины получения результата #Н/Д. Сведения приводятся в удобном формате PDF. Файл в формате PDF можно распечатать или предоставить другим пользователям.
Проблема: искомое значение не находится в первом столбце аргумента таблица
Одно из ограничений функции ВПР состоит в том, что она можно искать значения только в крайнем левом столбце таблицы. Если искомое значение находится не в первом столбце массива, появится ошибка #НД.
В следующей таблице нам нужно узнать количество проданной капусты.
Ошибка #Н/Д #N/A возникает, поскольку значение поиска «Капуста» находится во втором столбце (Продукты) аргумента таблица A2:C10. В этом случае Excel ищет значение в столбце A, а не в столбце B.
Решение. Чтобы исправить ошибку, измените ссылку ВПР так, чтобы она указывала на правильный столбец. Если это невозможно, попробуйте переместить столбцы. Это тоже может быть весьма неудобно при использовании больших или сложных таблиц, где значения в ячейках получены в результате других вычислений (или невозможно перемещать столбцы по другим причинам). В таком случае можно использовать сочетание функций ИНДЕКС и ПОИСКПОЗ, которые позволяют находить значения в любом столбце вне зависимости от его позиции в таблице подстановки. (см. следующий раздел).
Попробуйте использовать функции ИНДЕКС и ПОИСКПОЗ
Функции ИНДЕКС и ПОИСКПОЗ можно эффективно применять во многих случаях, когда функция ВПР не позволяет получить нужные результаты. Основное их преимущество заключается в том, что значения можно искать в столбце таблицы в любой позиции в таблице подстановки. Функция ИНДЕКС возвращает значение из указанной таблицы или диапазона в соответствии с его позицией. Функция ПОИСКПОЗ возвращает относительную позицию значения в диапазоне или таблице. Используя функции ИНДЕКС и ПОИСКПОЗ вместе, можно находить значение в таблице или в массиве, указав относительную позицию значения.
Существует несколько преимуществ использования функций ИНДЕКС и ПОИСКПОЗ вместо ВПР.
- При использовании функций ИНДЕКС и ПОИСКПОЗ возвращаемое значение не обязательно должно находиться в том же столбце, что и столбец подстановки. При использовании функции ВПР возвращаемое значение, напротив, должно быть в указанном диапазоне. Почему это важно? При использовании функции ВПР вам нужно знать номер столбца, содержащего значение. Это может показаться не слишком сложным, но это всерьез затрудняет работу, если используется большая таблица, в которой нужно подсчитать количество столбцов. Кроме того, если добавить или удалить столбец. придется пересчитать столбцы и изменить значение аргумента номер_столбца. При использовании функций ИНДЕКС и ПОИСКПОЗ не нужно подсчитывать столбцы.
- При использовании функций ИНДЕКС и ПОИСКПОЗ можно указать строку или столбец (или и строку, и столбец) в массиве. Это означает, что значения можно искать по вертикали и по горизонтали.
- С помощью функций ИНДЕКС и ПОИСКПОЗ можно находить значения в любом столбце. В отличие от функции ВПР, которая находит только значения в первом столбце таблицы, функции ИНДЕКС и ПОИСКПОЗ будут работать вне зависимости от того, в каком столбце находится значение.
- Это позволяет использовать динамические ссылки на столбец, содержащий возвращаемое значение.Таким образом, эти функции будут работать, даже если вы добавлять столбцы в таблицу. С другой стороны, ВПР не сможет найти значение, если добавить столбец в таблицу, поскольку эта функция использует статическую ссылку на таблицу.
- Функции ИНДЕКС и ПОИСКПОЗ обеспечивают более гибкие возможности поиска.Они могут находить точное совпадение, а также значение больше или меньше искомого. ВПР ищет только наиболее близкое (по умолчанию) или точное значение. Кроме того, функция ВПР предполагает, что первый столбец в таблице отсортирован в алфавитном порядке, и возвращает первое наиболее близкое совпадение, поэтому вы можете получить не те данные, которые ожидали.
Синтаксис
Чтобы создать синтаксис для функций ИНДЕКС или ПОИСКПОЗ, необходимо вложить синтаксис функции ПОИСКПОЗ в аргумент массива или ссылки функции ИНДЕКС. Это выглядит следующим образом:
=ИНДЕКС(массив или ссылка; ПОИСКПОЗ(искомое_значение;массив;[тип_совпадения])
Заменим функцию ВПР в приведенном выше примере функциями ИНДЕКС и ПОИСКПОЗ. Синтаксис будет выглядеть следующим образом:
=ИНДЕКС(C2:C10;ПОИСКПОЗ(B13;B2:B10;0))
=ИНДЕКС(возвратить значение из C2:C10, которое будет соответствовать ПОИСКПОЗ(первое значение «Капуста» в массиве B2:B10))
Формула ищет в C2:C10 первое значение, соответствующее значению Капуста (B7), и возвращает значение в ячейке C7 (100).
Проблема: не найдено точное совпадение
Если для аргумента диапазон_поиска задано значение ЛОЖЬ, а функции ВПР не удается найти точное совпадение, возвращается ошибка #Н/Д.
Решение. Если вы уверены, что необходимые данные действительно есть в таблице, но функции ВПР не удается их найти, убедитесь, что в ячейках нет скрытых пробелов или непечатаемых символов. Кроме того, убедитесь, в ячейках выбран правильный тип данных. Например, для ячеек с числами необходимо выбрать формат Числовой, а не Текстовый.
Также можно использовать функции ПЕЧСИМВ или СЖПРОБЕЛЫ для очистки данных в ячейках.
Проблема: искомое значение меньше, чем наименьшее значение в массиве
Если для аргумента диапазон_поиска задано значение ИСТИНА, а искомое значение меньше наименьшего значения в массиве, возвращается ошибка #Н/Д. Функция ищет приблизительное совпадение в массиве и возвращает ближайшее значение, которое меньше искомого.
В приведенном ниже примере искомое значение равно 100, но в диапазоне B2:C10 нет значений меньше 100, поэтому возникает ошибка.
- Исправьте искомое значение.
- Если невозможно изменить искомое значение, а при подстановке значений требуется более высокая гибкость, попробуйте использовать функции ИНДЕКС и ПОИСКПОЗ вместо ВПР — см. раздел выше в этой статье. Они позволяют находить значения больше или меньше искомого, а также равные ему. Дополнительные сведения см. в предыдущем разделе этой статьи.
Проблема: столбец подстановки не отсортирован в порядке возрастания
Если для аргумента диапазон_поиска задано значение ИСТИНА, но один из столбцов не отсортирован по возрастанию (от А до Я), возвращается ошибка #Н/Д.
- Измените функцию ВПР так, чтобы искать точное совпадение. Для этого укажите для аргумента диапазон_поиска значение ЛОЖЬ. Для значения ЛОЖЬ сортировка не требуется.
- Для поиска значения в несортированной таблице можно также использовать функции ИНДЕКС и ПОИСКПОЗ.
Проблема: значение является большим числом с плавающей запятой
При наличии в ячейках значений времени или больших десятичных чисел Excel возвращает ошибку «#Н/Д» из-за точности чисел с плавающей запятой. Числа с плавающей запятой включают цифры после десятичной запятой. (Значения времени хранятся в Excel в виде чисел с плавающей запятой.) Excel не может хранить крупные числа с плавающей запятой, поэтому для правильной работы функции такие числа нужно округлять до 5 десятичных разрядов.
Решение. Округлите числа до 5 десятичных разрядов с помощью функции ОКРУГЛ.
Дополнительные сведения
Вы всегда можете задать вопрос эксперту в Excel Tech Community или получить поддержку в сообществах.
См. также
- Исправление ошибки #Н/Д
- ВПР: как избавиться от ошибок #Н/Д
- Арифметические операции со значениями с плавающей запятой могут выдавать неточные результаты в Excel
- Краткий справочник: функция ВПР
- Функция ВПР
- Полные сведения о формулах в Excel
- Рекомендации, позволяющие избежать появления неработающих формул
- Поиск ошибок в формулах
- Все функции Excel (по алфавиту)
- Функции Excel (по категориям)