bra*_*hes 1 worksheet-function microsoft-excel
我在单元格 G5 中有一个值:
I~W478i~100
Run Code Online (Sandbox Code Playgroud)
和 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
Run Code Online (Sandbox Code Playgroud)
我是 MATCH 公式来确定数组中值的位置:
=MATCH(G5,F31:F43,0)
Run Code Online (Sandbox Code Playgroud)
这是返回#N/A。
我认为 F31 中的值应该与 G5 中的值相匹配。为了仔细检查,我创建了另一个公式:
=IF(G5=F31,TRUE,FALSE)
Run Code Online (Sandbox Code Playgroud)
返回 TRUE。但是 MATCH 函数仍然返回 #N/A。我已经检查了值和数组,并且都是数据类型“常规”。
此问题的可能原因是什么?
问题是“~”字符在MATCH函数的第一个参数中使用时是一个特殊字符。它用于指示“~”后面的字符不是通配符(请参阅文档)。如果您希望第一个参数包含“~”字符,则需要使用两个“~”字符。
因此,如果您将 G5 中的值从 更改I~W478i~100为I~~W478i~~100,您的MATCH函数将返回 1 而不是 #N/A。
正如 Scott Craner(感谢 Scott)在对该问题的评论中指出的那样,您也可以保留 G5 原样,并用于SUBSTITUTE插入额外的“~”字符作为公式的一部分。
=MATCH(SUBSTITUTE(G5,"~","~~"),F31:F43,0)
Run Code Online (Sandbox Code Playgroud)
请注意,如果 F31:F43 中的值也可能包含"*"或"?"字符,则您还需要将 every"*"改为"~*"和 every "?"to "~?"。
| 归档时间: |
|
| 查看次数: |
65 次 |
| 最近记录: |