【问题标题】:Find an intersecting value for each row and column in excel在excel中查找每一行和每一列的相交值
【发布时间】:2020-09-05 01:10:56
【问题描述】:

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

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

【问题讨论】:

    标签: excel indexing match formula sumproduct


    【解决方案1】:

    您可以使用 SUMPRODUCT 做到这一点。

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

    即使列 CurrentMonth 包含不同的月份,它也可以工作

    我的公式是:

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

    这就是它的工作原理:

    1. 如果B1:G1 的范围等于该行中的当前月份,--($B$1:$G$1=H2) 将返回一个 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

    【讨论】:

      【解决方案2】:

      只需将 INDEX 与一个 MATCH 一起使用:

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

      【讨论】:

      • 非常感谢!两个答案都很棒,完全符合我的要求
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-07
      • 1970-01-01
      相关资源
      最近更新 更多