Соответствие возвращает #N/A

Соответствие возвращает #N/A

У меня есть значение в ячейке G5:

I~W478i~100

И массив в F31:F43:

I~W478i~100
II~W707a~79
I~W621c~97.5
II~W693a~81.5
I~W452n~80
I~W693a~71.5
II~W707a~64
I~W478i~75
II~W724a~100
I~W707a~79
I~W693a~91.5
I~W587a~69
III~W724a~75

Я использую формулу ПОИСКПОЗ для определения позиции значения в массиве:

=MATCH(G5,F31:F43,0)

Это возвращает #N/A.

Я считаю, что значение в F31 должно совпадать со значением в G5. Для двойной проверки я создаю еще одну формулу:

=IF(G5=F31,TRUE,FALSE)

Который возвращает TRUE. Однако функция MATCH все еще возвращает #N/A. Я проверил и значение, и массив, и оба имеют тип данных "General".

Каковы возможные причины этой проблемы?

решение1

Проблема в том, что символ "~" является специальным символом при использовании в первом параметре функции MATCH. Он используется для указания того, что символ, следующий за "~", не является подстановочным знаком (см.документация). Если вы хотите, чтобы первый параметр включал символы «~», вам нужно использовать два символа «~».

Таким образом, если вы измените значение в G5 с I~W478i~100на I~~W478i~~100, ваша MATCHфункция вернет 1 вместо #N/A.

Как указывает Скотт Крейнер (спасибо, Скотт) в комментарии к вопросу, вы также можете оставить G5 как есть и использовать его SUBSTITUTEдля вставки дополнительных символов «~» как части формулы.

=MATCH(SUBSTITUTE(G5,"~","~~"),F31:F43,0)

Обратите внимание, что если значения в F31:F43 также могут содержать символы "*"или "?", вам также необходимо будет изменить every "*"на "~*"и every "?"на "~?".

Связанный контент