【问题标题】:Sum multiple 2-way lookup values in one equation在一个方程中求和多个 2 路查找值
【发布时间】:2017-07-21 13:20:31
【问题描述】:

我已经征服了一个 Y 轴和一个 X 轴值的 2 路查找,使用

=SUMPRODUCT((Y_AXIS_VALUE_ARRAY = Y_LOOKUP_VALUE)*(X_AXIS_VALUE_ARRAY = X_LOOKUP_VALUE), LOOKUP_ARRAY)

但是,如果我有多个 Y_LOOKUP 值和多个 X_LOOKUP 值,并希望将所有这些值的结果汇总到一个等式中,这是可能的。 下面的示例显示了我在此示例中所追求的公式应返回 105.78 (80.45 + 25.33)。

上面提到的公式在用于 X/Y 查找值是一个值数组时返回错误 MULTIPLY 的数组参数大小不同。

这是我的测试谷歌表:https://docs.google.com/a/rentping.com/spreadsheets/d/1GWQHAclo19f1VxLBixI4eyKJDN1QRk6SzXKJDWj6ZaE/edit?usp=sharing

“测试”表包含选择 X/Y 查找值的界面,“项目”表包含被引用的表。 L、M、N、O 列是进行选择的地方,K 列是公式所在的地方。正如您所看到的,当只有一列有选择时,公式会准确地获取值,但是一旦在这些列中选择了第二个值,公式就会崩溃。

【问题讨论】:

    标签: google-sheets formula array-formulas


    【解决方案1】:

    执行双重查找的一种更简单的方法是使用filter 两次:用于行和用于列。包装器iferror 在找不到任何内容时会抑制输出。

    =iferror(filter(filter(Items!A:Z, Items!A:A = L2), Items!A1:Z1 = L3)) 
    

    有 4 列可供选择,我会选择

    =iferror(filter(filter(Items!A:Z, Items!A:A = L2), Items!A1:Z1 = L3)) 
    +iferror(filter(filter(Items!A:Z, Items!A:A = M2), Items!A1:Z1 = M3)) 
    +iferror(filter(filter(Items!A:Z, Items!A:A = N2), Items!A1:Z1 = N3))
    +iferror(filter(filter(Items!A:Z, Items!A:A = O2), Items!A1:Z1 = O3))
    

    或者,使用查找的附加隐藏列(每个输入列一个隐藏列),然后列 K 可以是隐藏列上的简单 sum

    【讨论】:

    • 感谢您的回答!我的问题应该更清楚。虽然您的答案确实解决了那里的问题(以及我最终实现的形式),但我正在寻找的是一个动态公式,它可以与任意数量的列一起使用......类似于上面提到的 sumproduct 公式。
    • 我认为没有。
    • 我是这么想的,但觉得值得一问。
    猜你喜欢
    • 2015-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多