【问题标题】:How to SUM filtered columns for each row?如何对每一行的过滤列求和?
【发布时间】:2017-03-15 10:25:20
【问题描述】:

Google 表格问题。

我有以下表格,可以通过添加行和列来增长。添加列的第一个单元格可以是红色或蓝色,随机:

MonthYear | red | blue | blue | red
Jan/2017  | 100 |  200 |   10 |  20
Feb/2017  | 800 |  900 |   50 |  60

我需要的结果应该是每种颜色的总和:

MonthYear | red | blue
Jan/2017  | 120 |  210
Feb/2017  | 860 |  950 

如何使用在数据表中添加新行/列时自动更新结果的公式来执行此操作?

非常感谢!

【问题讨论】:

    标签: google-sheets spreadsheet formulas


    【解决方案1】:

    单一公式解决方案,将公式粘贴到另一张表中:

    ={FILTER(Sheet1!A:A,Sheet1!A:A<>""),{TRANSPOSE(UNIQUE(TRANSPOSE(FILTER(Sheet1!B1:1,Sheet1!B1:1<>""))));MMULT(ARRAYFORMULA(OFFSET(Sheet1!B2,,,COUNTA(Sheet1!A2:A),COUNTA(Sheet1!B1:1))*1),ArrayFormula(--(TRANSPOSE(UNIQUE(TRANSPOSE(FILTER(Sheet1!B1:1,Sheet1!B1:1<>""))))=TRANSPOSE(FILTER(Sheet1!B1:1,Sheet1!B1:1<>"")))))}}
    

    我制作了一个Sample sheet 并附有解决方案和解释。

    【讨论】:

    • 我对这个解决方案很感兴趣,因为它没有用户 QUERY。但我担心试图把它作为一个单一的公式来做会使事情复杂化。是否可以使用多个公式进行简化?
    • 有很多方法可以将其拆分为多个公式。您可以尝试在单独的地方计算公式的任何部分。
    • 您能否选择这个解决方案并解释(或指出我的解释)每个步骤?我可以按原样使用您的解决方案,但我想提高对 Google 表格的理解。谢谢!
    • 请看我的示例文件。
    • 谢谢,很有帮助!
    【解决方案2】:

    我设置了一个生成此输出的示例表:

    https://docs.google.com/spreadsheets/d/1xex8ptlabXsclb5fJFO5pG78_EQPAJ65xxpNHDhshoU/edit?usp=sharing

    使用的公式是:

    单元格 A1:=ArrayFormula(Sheet1!A:A)

    单元格 B1:=TRANSPOSE(UNIQUE(TRANSPOSE(Sheet1!B1:1)))

    单元格 B2:=SUM(QUERY(TRANSPOSE(QUERY({Sheet1!$A$2:$A,FILTER(Sheet1!$A$2:$Z,Sheet1!$1:$1=B$1)},"where Col1= date '"&amp;TEXT($A2,"yyyy-mm-dd")&amp;"'",0)),,1))

    然后将 B2 公式复制到 B2:C3 范围的其余部分

    【讨论】:

    • 让我试着处理一下 - 我对 QUERY 不是很熟悉。
    • 克里斯,当我在 Sheet1 中添加另一行时,它不会自动在摘要中捕获。那是因为每个结果单元格都有自己的公式......我正在寻找一种解决方案,其中有一个带有结果公式的单元格,并且在添加新行或新列时不需要触摸它。
    • 同意,我的公式需要复制到每个新单元格中。 @MaxMakhrov 建议的出色数组公式将按您的意愿工作。我在工作表中添加了一个额外的选项卡来演示差异(突出显示的单元格包含公式)。
    猜你喜欢
    • 2020-07-27
    • 1970-01-01
    • 2021-08-12
    • 2019-06-17
    • 1970-01-01
    • 2021-10-29
    • 2021-11-19
    • 1970-01-01
    • 2014-12-06
    相关资源
    最近更新 更多