У меня проблема с формулой 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>

игнорируйте отметки «<excel>», которые они там только для форматирования, чтобы сделать столбцы более четкими!

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

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

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

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

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

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

1 ответ1

1

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

Формула ищет значение в G1 , « Доставка - Стандартная доставка до 17:00 », но в массиве данных нет ничего, что соответствует ему.

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

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

Жгуты VLOOKUP это будет выглядеть следующим образом ;

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .