Eu tenho um valor na célula G5:
I~W478i~100
E um array em 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
Eu sou a fórmula MATCH para determinar a posição do valor na matriz:
=MATCH(G5,F31:F43,0)
Isso está retornando #N/A.
Acredito que o valor em F31 deva corresponder ao de G5. Para verificar, crio outra fórmula:
=IF(G5=F31,TRUE,FALSE)
O que retorna VERDADEIRO. No entanto, a função MATCH ainda retorna #N/A. Verifiquei o valor e a matriz e ambos são do tipo de dados "Geral".
Quais são as possíveis causas deste problema?
Responder1
O problema é que o caractere “~” é um caractere especial quando usado no primeiro parâmetro da MATCH
função. É usado para indicar que o caractere após "~" não é um caractere curinga (veja odocumentação). Se quiser que o primeiro parâmetro inclua caracteres "~", você precisará usar dois caracteres "~".
Portanto, se você alterar o valor em G5 de I~W478i~100
para I~~W478i~~100
, sua MATCH
função retornará 1 em vez de #N/A.
Como Scott Craner (obrigado Scott) aponta em um comentário sobre a questão, você também pode deixar G5 como está e usar SUBSTITUTE
para inserir os caracteres "~" extras como parte da fórmula.
=MATCH(SUBSTITUTE(G5,"~","~~"),F31:F43,0)
Observe que se os valores em F31:F43 também puderem conter caracteres "*"
ou "?"
, você também precisará alterar cada "*"
para "~*"
e cada "?"
para "~?"
.