(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给出了一个向量TRUEFALSE取决于Sheet2!$A$2:$A$1214的值是否等于B2 。 类似地, Sheet2!$F$2:$F$1214=O2给出了TRUEFALSE的向量,取决于Sheet2!$F$2:$F$1214的值是否等于O2

现在, (Sheet2!$A$2:$A$1214=B2)*(Sheet2!$F$2:$F$1214=O2)将两个向量TRUEFALSE逐行相乘。 由于TRUE*TRUE=1 ,但FALSE*TRUE=TRUE*FALSE=FALSE*FALSE=0 ,这给出10的向量,取决于whetter B2等于Sheet2!$A$rO2等于Sheet2!$F$r 对于同一行 r

MATCH(1, ...)然后findSheet2上的第一行r ,其中B2等于Sheet2!$A$rO2等于Sheet2!$F$r ,对于同一行 r

最后, INDEX为您提供Sheet2!$B$2:$B$1214这行r