【问题标题】:Using array with index match使用索引匹配的数组
【发布时间】:2018-06-28 13:34:09
【问题描述】:

我最初使用带有 IF 语句的数组 {=...} 来为列中的最大值设置不同的值:

{=IF([@Column1]*[@Column2]=MAX([Column1]*[Column2]),1.5,0.5)}

因此,如果该行中第 1 列的值乘以同一行中第 2 列的值是应用于所有行的相同方程的最大值,则值为 1.5,否则值为 0.5。

但是!如果例如[Column1] 是一个字符串列表,我想在其中使用 INDEX(MATCH()) 从另一个表中查找一个值,并在上面的公式中使用它 #VALUE!。

{=IF(INDEX(Matrix1[Column6];MATCH([@[Column1]];Matrix1[Column7];0)))*[@Column2]=MAX(IF(INDEX(Matrix1[Column6];MATCH([[Column1]];Matrix1[Column7];0)))*[Column2]),1.5,0.5)}

我的猜测是使用数组括号“{}”时 INDEX(MATCH()) 是错误的。

我不知道如何解决这个问题。非常感谢任何帮助!

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    INDEX 不喜欢在没有任何操作的情况下返回数组,最好在第二部分使用SUMIF,例如

    =IF(INDEX(Matrix1[Column6];MATCH([@[Column1]];Matrix1[Column7];0)))*[@Column2]=MAX(SUMIF(Matrix1[Column7];[[Column1]];Matrix1[Column6])*[Column2]);1.5;0.5)

    CTRL+SHIFT+ENTER

    确认

    在这种情况下,SUMIF 被用作“伪查找”函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-01
      • 2016-11-30
      • 1970-01-01
      • 1970-01-01
      • 2021-08-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多