【问题标题】:Perform a lookup to find out values from another column and summarises them using Google Sheets执行查找以找出另一列中的值并使用 Google 表格对其进行汇总
【发布时间】:2019-09-02 21:08:32
【问题描述】:

下面的示例数据。

我希望能够对 Col2 中每次出现的 Col 1 的值求和,具体取决于与 Col1 中的值结合应用的“其他 Cols”中的值

Col1------Col2-----Other Cols  
A---------40-------other data  
A-------------------other data  
A-------------------other data  
B---------30-------other data  
B-------------------other data  
C-------------------other data  
C-------------------other data  
C---------90-------other data  

例如,“其他数据”中的值可能意味着不包括 Col1 = B 的值,因此正确的结果是 130 (40+90)

如果可能,我希望能够在单个查询中实现上述目标。

在实际数据中,Col1 有超过 2,000 行数据和大约 200 个不同的值(每天都在增长!!)

我自己能做到的!

1) 我创建了一个查询,根据应用于“其他数据”的选择标准,为 Col1 的每个有效出现输出一行,即

A  
C

2) 从逻辑上讲,我接下来想做的,但我不能这样做,因为我不知道该怎么做,就是回顾原始数据以找出 A 和 C 的值的 Col B 值(即 40 和 90)

3) 然后,我希望能够对识别的值求和(即 40 + 90),以便在一个查询/单元格中返回答案 130!!!

能够实现步骤(2)会非常有用???

做 (2) + (3) 就完美了!!!

(注意,Col2 的值对于 Col1 的每组值都是唯一的)

【问题讨论】:

    标签: google-sheets google-sheets-formula google-sheets-query google-query-language


    【解决方案1】:
    =SUM(IFERROR(QUERY(A2:C, 
     "select sum(B) 
      where C = 'yes' 
      group by A 
      label sum(B)''", 0)))
    


    =ARRAYFORMULA(SUM(QUERY(UNIQUE({A2:A, 
     IF(C2:C="",, VLOOKUP(ROW(B2:B), IF(
     QUERY(A2:C, "select B order by A desc,B desc", 0)<>"", {ROW(B2:B),
     QUERY(A2:C, "select B order by A desc,B desc", 0)}), 2)), C2:C}), 
     "select sum(Col2) where Col3='yes' group by Col1 label sum(Col2)''", 0)))
    

    【讨论】:

    • 再次感谢您。它会为我节省很多时间。真是太感谢你了!
    • 不幸的是,我在尝试实现该公式时遇到了问题。参考示例数据,只要 ColC 中存在 ColA 中的给定值的“是”实例,公式需要做的是对 ColB 求和。即 C1 和 C2 = x,C3 = 是的有效情况对 ColB 求和(我的问题并不清楚,抱歉)
    猜你喜欢
    • 2020-10-22
    • 2017-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-29
    • 1970-01-01
    • 2021-05-05
    • 1970-01-01
    相关资源
    最近更新 更多