帮我解释一下Excel数组公式{=MATCH(,0/FIND(B2,A$1:A$100),)}是什么意思.

{=MATCH(,0/FIND(B2,A$1:A$100),)} 这是excel数组公式,实现在a1:a100区域查找包含B2的单元格,返回该单元格的行号。能正常实现目的,只是我不明白为什么这样可以算出来,同样的公式表达式如果不是数组公式又会出错,而且match的函数的第1、3个参数都省略了,只有第二个参数0/FIND(B2,A$1:A$100),这个参数也跟平时的公式不太一样的,呵呵,实在是搞不明白,只有拜托各位了:)

两个省略的参数,EXCEL会认为是0,公式实际上是
=MATCH(0,0/FIND(B2,A$1:A$100),0)
FIND(B2,A$1:A$100)中,是在A1:A100搜索B2的值,有匹配值的返回TRUE,找不到的返回FALSE。结果为由TRUE、FALSE组成的数组。
0/数组,即0分别除以数组中的每一个元素,0/TRUE返回0,0/FALSE返回错误值。
MATCH在0和错误值组成的数组中,搜索0值,忽略错误值,返回第一个0值的位置,从而达到返回第一个符合条件的数据位置。追问

有点明白了,FIND(B2,A$1:A$100)是不是这样理解:你说的返回结果是由TRUE、FALSE组成的数组,这里有100个单元格查找,就有100个值,所以我直接显示其结果{=FIND(B2,A$1:A$100)}显示的是#VALUE! 有没有办法把这个数组显示出来?

追答

不好意思,上面所说的不对,FIND(B2,A$1:A$100)返回的是数值和错误值组成的数组。
0/数值,返回0;0/错误值,返回错误值。

一个单元格只能显示数组中的一个元素,无法显示整个数组。
在编辑栏中,选中公式的这一部分,按F9,你可以看到数组的值。(数组元素不超过100个时,可以显示)

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-06-26
此公式的完整写法
=MATCH(0,0/FIND(B2,A$1:A$100),0)
省略的参数,都当0来计算

第一个参数0 , 是数值0
第三个参数0, 相当于false值追问

请问第二个参数0/FIND(B2,A$1:A$100)是什么回事?

追答

find(B2,A1:A100)
只会得出两种结果, 实际数值或错误值

0/find(B2,A1:A100)
相当于拿0来除以这个结果
0除以任何数值得0
而0除以任何错误值,仍然是错误值

那么用MATCH查找0的第一个位置就有效了

第2个回答  2013-06-26
比如A列不是一个B2的值有多个,那么=MATCH(,0/FIND(B2,A$1:A$100),)返回的是最上那个值的位置(行号),=MATCH(B2,A$1:A$100)返回的最下面那的位置。
相似回答