Функция Excel VLOOKUP возвращает значение из неправильной строки, но без пробелов

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

Формула, которую я использую: =VLOOKUP(G1, A:B, 2)

Значение ячейки G1 = "Доставка - Стандартная доставка до 5 вечера"

<excel
The array A:B is as below:
Column A                               Column B
Shipping Rate Name                     Service
2 Day (Isle of Man)                     11
2 Day (Scilly Isles)                    11
2 Day (Scottish Highlands)              11
Saturday by 10am                        18
Saturday by 12pm                        17
Saturday by 5pm                         16
Standard Delivery (Channel Islands)     12
Standard Delivery (EIRE)                12
Standard Delivery (Northern Ireland)    12
Standard Delivery by 10am               14
Standard Delivery by 12pm               13
Standard Delivery by 5pm                12
excel>

игнорируйте пометки "", которые они есть, только для форматирования, чтобы сделать столбцы более четкими!

Вопрос, который у меня возник, состоит в том, что результат формулы "16", в то время как теоретически он должен быть "12" (это то, на что я надеялся в любом случае)

Если кто-то может помочь, это будет очень цениться!

РЕДАКТИРОВАТЬ: еще несколько заметок:

  • Если я поставлю FALSE(точное совпадение) в конце формулы, результатом будет "#N/A". Если я поставлю TRUE (Приблизительное совпадение) в конце, результат все равно будет "16"

  • Я не заметил, что каждое значение на самом деле находится на отдельном листе, я просто упростил его для этого вопроса. Ячейка G1 - это один лист, массив A: B - на следующем листе, а сама формула - на другом листе.

  • Не имеет никакого значения, если я помещу весь массив, формулу и значение на одном листе - я все равно получаю "16"!!!!

1 ответ

Решение

Проблема в том, что нет совпадения.

Формула ищет значение в G1, " Доставка - Стандартная доставка до 5 вечера ", но в массиве данных нет ничего, что соответствовало бы ему.

Если G1 не было предыдущего текста "*Shipping - *", он вернул бы искомое значение.

Если я вас правильно понял, вы сказали, что система, из которой поступают данные, добавляет текст "* Shipping - *" при импорте. Итак, настройте свой VLOOKUP формула для включения MID функция обрезки ненужного текста - MID(G1, 12, 99),

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

=VLOOKUP(MID(G1, 12, 99), A:B, 2, FALSE)

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

Другие вопросы по тегам