0

嗨,任何人都可以解释以下内容

=INDEX(Sheet2!$B$2:$B$1214,MATCH(1,(Sheet2!$A$2:$A$1214=B2)*(Sheet2!$F$2:$F$1214=O2),0))

我试图通过查看 Index with Match 函数来理解这一点。

Match(1,-------

为什么 Match() 函数的第一个参数是 1?

4

2 回答 2

2

让我们看一下从内部组件开始的公式MATCH。为此,我假设这是一个数组公式

作为一个数组公式,Sheet2!$A$2:$A$1214=B2给出一个 和 的向量,TRUEFALSE取决于 中的值是否Sheet2!$A$2:$A$1214相等B2。同样,根据 中的值是否相等,Sheet2!$F$2:$F$1214=O2给出TRUE和的向量。FALSESheet2!$F$2:$F$1214O2

现在,将和的两个向量逐行(Sheet2!$A$2:$A$1214=B2)*(Sheet2!$F$2:$F$1214=O2)相乘。因为,但是,这给出了一个向量,取决于同一是否等于和等于。TRUEFALSETRUE*TRUE=1FALSE*TRUE=TRUE*FALSE=FALSE*FALSE=010B2Sheet2!$A$rO2Sheet2!$F$r r

然后在同一行的equals和equals处找到MATCH(1, ...)第一行。rSheet2B2Sheet2!$A$rO2Sheet2!$F$r r

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

于 2013-05-02T06:51:03.570 回答
1

看起来您的问题出在 MATCH 函数上,所以我将对此进行解释。我们首先假设我们在 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 所做的是将 $A$1 的值与 $B$1、$B$2 等进行比较。结果将返回如下:

"$B$1:$B$5 = $A$1" = {​​假,真,假,假,假}

"$C$1:$C$5 = $A$2" = {​​假,真,假,假,假}

然后我们这样做..

($B$1:$B$5 = $A$1) * ($C$1:$C$5 = $A$2)

它将在我们上面得到的每个结果中从相同位置获取 1 个数据,将其相乘并返回结果。

“{假,真,假,假,假} * {假,真,假,假,假}”

= {0, 1, 0, 0, 0}

所以 MATCH 函数的输入如下..

MATCH(1, {0, 1, 0, 0, 0}, 0)

这个等式的意思是它将尝试在数组中查找值“1”,并返回匹配的第一个值的位置

在我们的例子中,它将返回 2。

然后这个“2”作为 row_num 传递给 INDEX 函数。

其余的你可以自己解释。

于 2013-05-02T07:07:34.843 回答