【问题标题】:Excel: Identifying the reference row used in final result of an array formulaExcel:识别数组公式最终结果中使用的参考行
【发布时间】:2019-10-02 10:23:09
【问题描述】:

一直在使用 stackoverflow 作为参考来构建我一直在从事的 excel 项目。唉,这是一个我无法找到解决方案的问题,尽管尝试了很多次。希望有人可以在这里提供帮助,非常感谢!

示例数据如下(实际数据比较复杂,但为了简单起见已将其浓缩为要领):

第 I 列有一个数组公式,可以找到每个 ID 的对象 A+B 之和的最小值(仍然掌握数组公式的概念,因此它可能看起来比实际更混乱):

{=IF(E2="A",MIN(IF(D2&"B"=$F$2:$F$8,G2+$H$2:$H$8)),MIN(IF(D2&"A"=$F$2:$F$8,H2+$G$2:$G$8)))}

我有兴趣将用于计算数组公式中最终结果的变量行引用(在 J 列中以红色突出显示)用于工作表中的其他目的。有没有办法返回这个结果?

【问题讨论】:

    标签: arrays excel


    【解决方案1】:

    如果数据按样本排序,那么这应该是可行的。

    顺便说一句,我真的很感激这一点:

    (实际数据更复杂,但为了简单起见已将其浓缩为要领)

    这是我的方式(放入J2然后向下拖动):

    =IF(E2="A",G2,H2)
    
    +
    
    IF(
        COUNTIF(
            INDIRECT("$F$2:F"&(MATCH(D2&IF(E2="A","B","A"),$F$2:$F$8,0)+1),TRUE),
            INDIRECT("F"&(MATCH(D2&IF(E2="A","B","A"),$F$2:$F$8,0)+1),TRUE)
            )=1,
    
        MIN(
            OFFSET(
                INDIRECT("G"&(MATCH(D2&IF(E2="A","B","A"),$F$2:$F$8,0)+1),TRUE),
                0,
                IF(INDIRECT("E"&(MATCH(D2&IF(E2="A","B","A"),$F$2:$F$8,0)+1),TRUE)="B",1,0),
                COUNTIF($F$2:$F$8,INDIRECT("F"&(MATCH(D2&IF(E2="A","B","A"),$F$2:$F$8,0)+1),TRUE)),
                1
                )
    
            )
    
        ,""
    
    )
    

    想法:使用间接偏移来定义 min() 范围。有了索引匹配的一些“想法”,就会调用 min() 值。

    请参考reference file 以获得更清晰的每个代码部分的细分/来源,以及一些学习曲线。

    如果可行/不可行/可理解,请分享。 /(^_^)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-20
      • 1970-01-01
      • 2018-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多