为 excel 中的每一行和每一列查找相交值

Find an intersecting value for each row and column in excel

我在 A 列的行中有每月数据。我在 headers 中也有从 B 列到 G 列的每月数据。在 H 列中,我为所有行填充了当前月份。我想显示值,例如,如果行中的月份是一月,当前月份是三月,则找到一月和三月相交的值,并对所有行执行此操作。我尝试在 J 列中使用以下公式,但它只在有效时给出第一个值。列 I 中的结果是需要的。为清楚起见,附上图片。

=INDEX(B1:H2,MATCH(A2,$A:A2,0),MATCH(A2,$B:H2,0))

您可以使用 SUMPRODUCT 来完成。

我制作了一个假数据集,其值与您显示的值不同,因此我可以正确测试更改当前月份是否有效。

即使列 CurrentMonth 包含不同的月份

,它仍然有效

我的公式是:

=SUMPRODUCT(--($B:$G=H2);B2:G2)

这是它的工作原理:

    如果范围 B1:G1 等于该行中的当前月份,
  1. --($B:$G=H2) 将 return 1 和 0 的数组。所以如果 CurrentMonth=Mar 那么它将 return {0;0;1;0;0;0}
  2. 使用 SUMPRODUCT,我们将前一个数组乘以当前行中的范围 B:G,因此对于第 2 行,它将是 B2:G2。因此,例如,它将是 {0;0;1;0;0;0} * {1;2;3;4;5;6} = {0;0;3;0;0;0} 我们对这个数组求和,得到 3

只需将 INDEX 与一个匹配项一起使用:

=INDEX(B2:G2,,MATCH(H2,$B:$G,0))