我在儲存格 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公式來決定數組中值的位置:
=MATCH(G5,F31:F43,0)
這將返回#N/A。
我相信F31中的值應該與G5中的值相符。為了仔細檢查,我創建了另一個公式:
=IF(G5=F31,TRUE,FALSE)
回傳 TRUE。然而 MATCH 函數仍然傳回#N/A。我已經檢查了值和數組,兩者都是資料類型“常規”。
導致此問題的可能原因有哪些?
答案1
問題在於“~”字元在MATCH
函數的第一個參數中使用時是一個特殊字元。用於指示“~”後面的字元不是通配符(參見文件)。如果希望第一個參數包含“~”字符,則需要使用兩個“~”字符。
因此,如果您將 G5 中的值從 更改為I~W478i~100
,I~~W478i~~100
您的MATCH
函數將返回 1 而不是 #N/A。
正如 Scott Craner(感謝 Scott)在對該問題的評論中指出的那樣,您也可以保留 G5 不變,並使用SUBSTITUTE
插入額外的“~”字符作為公式的一部分。
=MATCH(SUBSTITUTE(G5,"~","~~"),F31:F43,0)
請注意,如果 F31:F43 中的值可能還包含"*"
或"?"
字符,您還需要將 every 更改為"*"
和"~*"
every "?"
to "~?"
。