(Sheet2!$ B $ 2:$ B $ 1214,MATCH(1,(Sheet2!$ A $ 2:$ A $ 1214 = B2)*(Sheet2!$ F $ 2:$ F $ 1214 = O2),0))
嗨,任何人都可以请解释以下
=INDEX(Sheet2!$B$2:$B$1214,MATCH(1,(Sheet2!$A$2:$A$1214=B2)*(Sheet2!$F$2:$F$1214=O2),0))
我试图通过查看带有匹配function的索引来理解这一点。
Match(1,-------
为什么Match()函数的第一个参数是1?
看起来你的问题是与MATCHfunction,所以我只是解释一下。 我们首先假设我们在excel中有一些数据如下。
$ A $ 1 = 2; $ A $ 2 = 7
$ B $ 1:$ B $ 5 = {1,2,3,4,5}
$ C $ 1:$ C $ 5 = {6,7,8,9,0}
现在,我们尝试解决下面的公式:
$ B $ 1:$ B $ 5 = $ A $ 1
$ C $ 1:$ C $ 5 = $ A $ 2
excel的function是将$ A $ 1的值与$ B $ 1,$ B $ 2等进行比较。 结果将返回如下:
“$ B $ 1:$ B $ 5 = $ A $ 1”= {FALSE,TRUE,FALSE,FALSE,FALSE}
“$ C $ 1:$ C $ 5 = $ A $ 2”= {FALSE,TRUE,FALSE,FALSE,FALSE}
那我们这样做
($ B $ 1:$ B $ 5 = $ A $ 1)*($ C $ 1:$ C $ 5 = $ A $ 2)
在上面得到的每个结果中,将从同一位置获取1个数据,并将其乘以并返回结果。
“{FALSE,TRUE,FALSE,FALSE,FALSE} * {FALSE,TRUE,FALSE,FALSE,FALSE}
= {0,1,0,0,0}
所以MATCHfunction将有如下input。
MATCH(1,{0,1,0,0,0},0)
这个方程意味着它会尝试在数组中查找值“1”,并返回匹配的FIRST值的位置。
在我们的情况下,它将返回2。
然后这个“2”作为row_num传递给INDEX函数。
你可以自己解释。
我们来看看从MATCH
内部组件开始的公式。 为此,我假设这是一个数组公式 。
作为一个数组公式, Sheet2!$A$2:$A$1214=B2
给出了一个向量TRUE
和FALSE
取决于Sheet2!$A$2:$A$1214
的值是否等于B2
。 类似地, Sheet2!$F$2:$F$1214=O2
给出了TRUE
和FALSE
的向量,取决于Sheet2!$F$2:$F$1214
的值是否等于O2
。
现在, (Sheet2!$A$2:$A$1214=B2)*(Sheet2!$F$2:$F$1214=O2)
将两个向量TRUE
和FALSE
逐行相乘。 由于TRUE*TRUE=1
,但FALSE*TRUE=TRUE*FALSE=FALSE*FALSE=0
,这给出1
和0
的向量,取决于whetter B2
等于Sheet2!$A$r
和O2
等于Sheet2!$F$r
对于同一行 r
。
MATCH(1, ...)
然后findSheet2
上的第一行r
,其中B2
等于Sheet2!$A$r
, O2
等于Sheet2!$F$r
,对于同一行 r
。
最后, INDEX
为您提供Sheet2!$B$2:$B$1214
这行r
。