在 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))}), ",$", )}})