Easy Pivot table 用于根据条件将列转换为行

Easy Pivot table for turning columns into rows based on condition

有没有一种简单的方法可以根据值= 1将一些二进制列转换为行,然后聚合聚合字段的总数。

示例:

Condition_1 Condition_2 Condition_3 agg_1 agg_2
0 1 1 50 100
1 1 1 50 100
0 0 1 50 100
0 1 0 50 100

have 设置为:

Cohort agg_1 Agg_2
Condition_1 50 100
Condition_2 150 300
Condition_3 150 300

试试这个:

示例数据:

  • 在单元格 A8 中插入此公式以填充列名称:={"Cohort", D1:E1}

  • 在单元格 A9 中插入此公式以填充行名称:=transpose(A1:C1)

  • 在单元格 B9 中插入此公式以对聚合字段求和并将其拖动到 B11=query(query({index($A:$C,,match(A9, $A:$C)),$D:$E}, "select sum(Col2), sum(Col3) where Col1 = 1", 0), "offset 1", 0)

在上面公式的索引部分,会创建一个table,它由目标条件列+agg_1和[=82组成=]列:

示例:

然后使用查询函数,它将根据 Agg_1Agg_2s 列求和条件列的值

参考文献: