在Excel中为每一行和每一列找到一个相交值

问题描述

我在A列的行中有月度数据。在B列到G列的标题中也有月度数据。在H列中,我为所有行填充了当月。我想显示一个值,例如,如果行中的月份是Jan,当前月份是Mar,则找到Jan和Mar相交的值,并对所有行执行此操作。我尝试在J列中使用以下公式,但仅在工作时才给出第一个值。 I列中的结果是理想的。为了清楚起见,附件为图片

enter image description here

mean std AAPL 0.755739 2.379347 TSL 0.280437 0.992349 GDXJ 0.434482 1.340593 DAL 1.389140 2.838230

解决方法

您可以使用SUMPRODUCT来实现。

我创建了一个伪造的数据集,该数据集具有与显示的值不同的不同的值,因此我可以正确地测试是否可以更改“当前月份”。

即使列CurrentMonth拥有不同的月份,它仍然有效

enter image description here

我的公式是:

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

它是这样工作的:

    如果范围--($B$1:$G$1=H2)等于该行中的当前月份,则
  1. B1:G1将返回1和0的数组。因此,如果情况为CurrentMonth=Mar,则它将返回{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$1:$G$1,0))

enter image description here