创建一个数据透视表 table,其中生成的列是原始列和行的乘积?
Create a pivot table where the resulting columns are the product of the original columns and rows?
如果没有大量昂贵的脚本编写,这可能是不可能完成的,但我希望 运行 由专家来完成,以防我遗漏了什么。很难解释(因为它是荒谬的..即不是我的选择),所以我只举一个非常简单的例子。
我的源数据sheet是这样的...
+----------+-------+------+--------+
| Date | Time | Cars | Trucks |
+----------+-------+------+--------+
| 01/01/19 | 08:00 | 2 | 12 |
| 01/01/19 | 12:00 | 4 | 10 |
| 01/01/19 | 20:00 | 6 | 8 |
| 01/02/19 | 08:00 | 8 | 6 |
| 01/02/19 | 12:00 | 10 | 4 |
| 01/02/19 | 20:00 | 12 | 2 |
+----------+-------+------+--------+
.. 我想让另一个 sheet 像 ...
一样动态显示它
+----------+---------------+---------------+---------------+
| | 08:00 | 12:00 | 20:00 |
+----------+------+--------+------+--------+------+--------+
| | Cars | Trucks | Cars | Trucks | Cars | Trucks |
+----------+------+--------+------+--------+------+--------+
| 01/01/19 | 2 | 12 | 4 | 10 | 6 | 8 |
| 01/02/19 | 8 | 6 | 10 | 4 | 12 | 2 |
+----------+------+--------+------+--------+------+--------+
换句话说,每次在类别合并的列。
请记住,实际上,这是一个大型数据集。此外,我在 header 中有一点灵活性,因为输出中的两个 header 行可以是一个。像 "Cars 8:00"、"Trucks 8:00"、"Cars 12:00"...等等
有人知道如何使用枢轴 table 完成此操作吗?或者其他一些简单的方法?
这是同一示例的实时版本...
https://docs.google.com/spreadsheets/d/1npQikx3Zwa2QZwDAk8IxyawYw2hkeYpPe9Nh4ImkZAE/edit?usp=sharing
尝试:
=ARRAYFORMULA({{TEXT(SUBSTITUTE(SPLIT(TRANSPOSE(QUERY(TRANSPOSE(QUERY(
QUERY({Source!A2:B, TRANSPOSE(QUERY(TRANSPOSE(Source!C2:D),,999^99))},
"select Col1,max(Col3) where Col1 is not null group by Col1 pivot Col2"),
"limit 0", 1)),,999^99)), " "), "1899-12-30", ), "hh:mm"), ""}; {"",
SPLIT(REPT(Source!C1&" "&Source!D1&" ", COUNTUNIQUE(Source!B2:B)), " ")};
TRANSPOSE(QUERY(TRANSPOSE(SPLIT(TRANSPOSE(QUERY(TRANSPOSE(QUERY(QUERY({Source!A2:B,
TRANSPOSE(QUERY(TRANSPOSE(Source!C2:D),,999^99))},
"select Col1,max(Col3) where Col1 is not null group by Col1 pivot Col2"),
"offset 1", 0))&" ",,999^99)), " ", 1, 0)), "where "&JOIN(" or ", "Col"&
ROW(INDIRECT("A1:A"&COUNTUNIQUE(Source!A2:A)))&" is not null"), 0))})
spreadsheet demo
如果没有大量昂贵的脚本编写,这可能是不可能完成的,但我希望 运行 由专家来完成,以防我遗漏了什么。很难解释(因为它是荒谬的..即不是我的选择),所以我只举一个非常简单的例子。
我的源数据sheet是这样的...
+----------+-------+------+--------+
| Date | Time | Cars | Trucks |
+----------+-------+------+--------+
| 01/01/19 | 08:00 | 2 | 12 |
| 01/01/19 | 12:00 | 4 | 10 |
| 01/01/19 | 20:00 | 6 | 8 |
| 01/02/19 | 08:00 | 8 | 6 |
| 01/02/19 | 12:00 | 10 | 4 |
| 01/02/19 | 20:00 | 12 | 2 |
+----------+-------+------+--------+
.. 我想让另一个 sheet 像 ...
一样动态显示它+----------+---------------+---------------+---------------+
| | 08:00 | 12:00 | 20:00 |
+----------+------+--------+------+--------+------+--------+
| | Cars | Trucks | Cars | Trucks | Cars | Trucks |
+----------+------+--------+------+--------+------+--------+
| 01/01/19 | 2 | 12 | 4 | 10 | 6 | 8 |
| 01/02/19 | 8 | 6 | 10 | 4 | 12 | 2 |
+----------+------+--------+------+--------+------+--------+
换句话说,每次在类别合并的列。 请记住,实际上,这是一个大型数据集。此外,我在 header 中有一点灵活性,因为输出中的两个 header 行可以是一个。像 "Cars 8:00"、"Trucks 8:00"、"Cars 12:00"...等等
有人知道如何使用枢轴 table 完成此操作吗?或者其他一些简单的方法?
这是同一示例的实时版本... https://docs.google.com/spreadsheets/d/1npQikx3Zwa2QZwDAk8IxyawYw2hkeYpPe9Nh4ImkZAE/edit?usp=sharing
尝试:
=ARRAYFORMULA({{TEXT(SUBSTITUTE(SPLIT(TRANSPOSE(QUERY(TRANSPOSE(QUERY(
QUERY({Source!A2:B, TRANSPOSE(QUERY(TRANSPOSE(Source!C2:D),,999^99))},
"select Col1,max(Col3) where Col1 is not null group by Col1 pivot Col2"),
"limit 0", 1)),,999^99)), " "), "1899-12-30", ), "hh:mm"), ""}; {"",
SPLIT(REPT(Source!C1&" "&Source!D1&" ", COUNTUNIQUE(Source!B2:B)), " ")};
TRANSPOSE(QUERY(TRANSPOSE(SPLIT(TRANSPOSE(QUERY(TRANSPOSE(QUERY(QUERY({Source!A2:B,
TRANSPOSE(QUERY(TRANSPOSE(Source!C2:D),,999^99))},
"select Col1,max(Col3) where Col1 is not null group by Col1 pivot Col2"),
"offset 1", 0))&" ",,999^99)), " ", 1, 0)), "where "&JOIN(" or ", "Col"&
ROW(INDIRECT("A1:A"&COUNTUNIQUE(Source!A2:A)))&" is not null"), 0))})