【问题标题】:How to aggregate tabular data如何聚合表格数据
【发布时间】:2014-11-22 04:09:25
【问题描述】:

我在 Google 表格中显示了一些值,如下所示。

   Name  Answer

    A      yes
    A      No
    B      No
    A      Yes
    X      Yes
    A      Yes

我想聚合这些值并将结果显示在另一个表中,如下所示:

   Name  Total Right Wrong Right%

    A      4     3     1     75
    B      1     0     1      0
    X      1     1     0     100

如何使用电子表格公式做到这一点?

【问题讨论】:

    标签: google-sheets spreadsheet formulas


    【解决方案1】:

    看看this example sheet 我使用这个公式来生成所需的输出

    =query(ArrayFormula(if(len(query({filter(Sheet1!A2:B, len(Sheet1!B2:B)),filter(ArrayFormula(if(Sheet1!B2:B="yes", "Right", "Wrong")), len(Sheet1!B2:B))}, "select Col1, count(Col2) group by Col1 pivot Col3"))=0, 0, (query({filter(A2:B, len(Sheet1!B2:B)),filter(ArrayFormula(if(Sheet1!B2:B="yes", "Right", "Wrong")), len(Sheet1!B2:B))}, "select Col1, count(Col2) group by Col1 pivot Col3")))), "select Col1, (Col2+Col3)*1, Col2, Col3,  (Col2/(Col2+Col3))*100 label (Col2+Col3)*1 'Total', (Col2/(Col2+Col3))*100 'Right %', Col1 'Names' ")
    

    【讨论】:

    • 另外,这也可以工作: =ArrayFormula({{"Names"; sort(unique(filter(A2:A, len(A2:A))))}, query(value(query ({filter(Sheet1!A2:B, len(Sheet1!B2:B)),filter(ArrayFormula(if(Sheet1!B2:B="yes", "Right", "Wrong")), len(Sheet1! B2:B))}, "select Col1, count(Col2) group by Col1 pivot Col3")), "select (Col2+Col3)*1, Col2, Col3, (Col2/(Col2+Col3))*100 标签(Col2+Col3)*1 '总计', (Col2/(Col2+Col3))*100 '正确%', Col2 '正确', Col3 '错误' ")})
    猜你喜欢
    • 2012-12-03
    • 2023-02-04
    • 2015-06-28
    • 2011-01-16
    • 2015-07-27
    • 2016-05-03
    • 2020-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多