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_1 和 Agg_2s 列求和条件列的值。
参考文献:
有没有一种简单的方法可以根据值= 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_1 和 Agg_2s 列求和条件列的值。