在 Google 个工作表中对来自查询的多个文本值进行分组
Grouping multiple text values from Query in Google Sheets
所以我有一个从 Google 工作表中的查询函数创建的数据透视表 table,我希望根据决策规则按行分组。
枢轴 table 基本上看起来像这样(类 和成绩的 table,以及带有学生姓名的 header:
| John Dough | John Though | John Doe |... | John A Hill
History | 79 | | |... | |
Chem 101 | | | 87 |... | |
Phys 101 | | | |... | 77 |
Phys 202 | | | |... | |
Geo 101 | | 75 | |... | |
... | | | ... |... | |
Sport AT | | | 85 |... | |
现在,假设期末考试需要的分数是 75,我想做的就是得到这个 table:
| Failed Passed
History | John Dough | John A Hill , John Deere
Chem 101 | John E , John Tra | John Son , John Snow
Phys 101 | John B Good , John Na | #N/A
Phys 202 | John Bon Jovi | John Diy , John L , John R
Geo 101 | #N/A | John Lennon
... | ... | ...
Sport AT | John Bone | John the revelator
要点是我想用公式包装现有的枢轴 table,所以它看起来像:
=MagicFormula[Query("Data !A1:X99","select yada yada, sum(yada), Pivot(whatever)]
我的问题是,可以通过包装来完成吗?
=ARRAYFORMULA({"", "PASSED", "FAILED"; A2:A, REGEXREPLACE(TRIM({
TRANSPOSE(QUERY(TRANSPOSE(IF((B2:E>=79)*(B2:E<>""), B1:E1&",", )),,999^99)),
TRANSPOSE(QUERY(TRANSPOSE(IF((B2:E< 79)*(B2:E<>""), B1:E1&",", )),,999^99))}),
",$", )})
更新:
=ARRAYFORMULA({{QUERY(QUERY({List!B5:D},
"select Col1,sum(Col3) where Col1 is not null group by Col1 pivot Col2", 0),
"select Col1", 0)}, {"PASSED", "FAILED";
REGEXREPLACE(TRIM({TRANSPOSE(QUERY(TRANSPOSE(IF((QUERY(QUERY({List!B5:D},
"select sum(Col3) where Col1 is not null group by Col1 pivot Col2", 0),
"offset 1", 0)>=79)*(QUERY(QUERY({List!B5:D},
"select sum(Col3) where Col1 is not null group by Col1 pivot Col2", 0),
"offset 1", 0)<>""), QUERY(QUERY({List!B5:D},
"select sum(Col3) where Col1 is not null group by Col1 pivot Col2", 0),
"limit 0", 1)&",", )),,999^99)), TRANSPOSE(QUERY(TRANSPOSE(IF((QUERY(QUERY({List!B5:D},
"select sum(Col3) where Col1 is not null group by Col1 pivot Col2", 0),
"offset 1", 0)< 79)*(QUERY(QUERY({List!B5:D},
"select sum(Col3) where Col1 is not null group by Col1 pivot Col2", 0),
"offset 1", 0)<>""), QUERY(QUERY({List!B5:D},
"select sum(Col3) where Col1 is not null group by Col1 pivot Col2", 0),
"limit 0", 1)&",", )),,999^99))}), ",$", )}})
所以我有一个从 Google 工作表中的查询函数创建的数据透视表 table,我希望根据决策规则按行分组。
枢轴 table 基本上看起来像这样(类 和成绩的 table,以及带有学生姓名的 header:
| John Dough | John Though | John Doe |... | John A Hill
History | 79 | | |... | |
Chem 101 | | | 87 |... | |
Phys 101 | | | |... | 77 |
Phys 202 | | | |... | |
Geo 101 | | 75 | |... | |
... | | | ... |... | |
Sport AT | | | 85 |... | |
现在,假设期末考试需要的分数是 75,我想做的就是得到这个 table:
| Failed Passed
History | John Dough | John A Hill , John Deere
Chem 101 | John E , John Tra | John Son , John Snow
Phys 101 | John B Good , John Na | #N/A
Phys 202 | John Bon Jovi | John Diy , John L , John R
Geo 101 | #N/A | John Lennon
... | ... | ...
Sport AT | John Bone | John the revelator
要点是我想用公式包装现有的枢轴 table,所以它看起来像:
=MagicFormula[Query("Data !A1:X99","select yada yada, sum(yada), Pivot(whatever)]
我的问题是,可以通过包装来完成吗?
=ARRAYFORMULA({"", "PASSED", "FAILED"; A2:A, REGEXREPLACE(TRIM({
TRANSPOSE(QUERY(TRANSPOSE(IF((B2:E>=79)*(B2:E<>""), B1:E1&",", )),,999^99)),
TRANSPOSE(QUERY(TRANSPOSE(IF((B2:E< 79)*(B2:E<>""), B1:E1&",", )),,999^99))}),
",$", )})
更新:
=ARRAYFORMULA({{QUERY(QUERY({List!B5:D},
"select Col1,sum(Col3) where Col1 is not null group by Col1 pivot Col2", 0),
"select Col1", 0)}, {"PASSED", "FAILED";
REGEXREPLACE(TRIM({TRANSPOSE(QUERY(TRANSPOSE(IF((QUERY(QUERY({List!B5:D},
"select sum(Col3) where Col1 is not null group by Col1 pivot Col2", 0),
"offset 1", 0)>=79)*(QUERY(QUERY({List!B5:D},
"select sum(Col3) where Col1 is not null group by Col1 pivot Col2", 0),
"offset 1", 0)<>""), QUERY(QUERY({List!B5:D},
"select sum(Col3) where Col1 is not null group by Col1 pivot Col2", 0),
"limit 0", 1)&",", )),,999^99)), TRANSPOSE(QUERY(TRANSPOSE(IF((QUERY(QUERY({List!B5:D},
"select sum(Col3) where Col1 is not null group by Col1 pivot Col2", 0),
"offset 1", 0)< 79)*(QUERY(QUERY({List!B5:D},
"select sum(Col3) where Col1 is not null group by Col1 pivot Col2", 0),
"offset 1", 0)<>""), QUERY(QUERY({List!B5:D},
"select sum(Col3) where Col1 is not null group by Col1 pivot Col2", 0),
"limit 0", 1)&",", )),,999^99))}), ",$", )}})