У меня есть значение в ячейке 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 "?"
на "~?"
.