如何在一个 QUERY 中合并 SORT/ORDER 和 GROUP?
How can I combine SORT/ORDER and GROUP in one QUERY?
在这个 example 中,我将 Google 表单的结果与此代码结合起来:
={"Faglig vurdering for "& SUM(COUNTUNIQUE('Formularsvar 1'!D2:D; "*9M*"))&" elever i 9M";
QUERY(ARRAYFORMULA(IF((LEN('Formularsvar 1'!D2:D))*('Formularsvar 1'!C2:C="9M");
('Formularsvar 1'!D2:D&CHAR(10)&
'Formularsvar 1'!E2:E&CHAR(10)&
'Formularsvar 1'!F1&" "&'Formularsvar 1'!$F:F&" "&
'Formularsvar 1'!G1&" "&'Formularsvar 1'!$G:G&" "&
'Formularsvar 1'!H1&" "&'Formularsvar 1'!$H:H&" "&
'Formularsvar 1'!$I:I&CHAR(10)); ));"where Col1 is not null ORDER BY Col1"; 0)}
我想做的是 SORT/ORDER 并将结果分组,如 example 中的所需输出所示。
是否可以在查询中执行两个输出之一,还是我做错了?
这里有一个小公式:
=SORT(
ARRAYFORMULA(REGEXREPLACE(
TRANSPOSE(QUERY(TRANSPOSE(
ARRAYFORMULA(
{
UNIQUE(FILTER('Formularsvar 1'!D2:D; REGEXMATCH('Formularsvar 1'!C2:C; "9M"))) & CHAR(10) \
IF(
UNIQUE(FILTER('Formularsvar 1'!D2:D; REGEXMATCH('Formularsvar 1'!C2:C; "9M"))) <> TRANSPOSE(FILTER('Formularsvar 1'!D2:D; REGEXMATCH('Formularsvar 1'!C2:C; "9M")));
"";
TRANSPOSE(FILTER(
'Formularsvar 1'!E2:E & CHAR(10)
& 'Formularsvar 1'!F1 & " "
& 'Formularsvar 1'!F2:F & " "
& 'Formularsvar 1'!G1 & " "
& 'Formularsvar 1'!G2:G & " "
& 'Formularsvar 1'!H1 & " "
& 'Formularsvar 1'!H2:H & " "
& 'Formularsvar 1'!I2:I & CHAR(10) & CHAR(10);
REGEXMATCH('Formularsvar 1'!C2:C; "9M")
))
)
}
)
); ; ROWS(FILTER('Formularsvar 1'!D2:D; REGEXMATCH('Formularsvar 1'!C2:C; "9M"))) + 1));
"\n +"; CHAR(10)
))
)
在这个 example 中,我将 Google 表单的结果与此代码结合起来:
={"Faglig vurdering for "& SUM(COUNTUNIQUE('Formularsvar 1'!D2:D; "*9M*"))&" elever i 9M";
QUERY(ARRAYFORMULA(IF((LEN('Formularsvar 1'!D2:D))*('Formularsvar 1'!C2:C="9M");
('Formularsvar 1'!D2:D&CHAR(10)&
'Formularsvar 1'!E2:E&CHAR(10)&
'Formularsvar 1'!F1&" "&'Formularsvar 1'!$F:F&" "&
'Formularsvar 1'!G1&" "&'Formularsvar 1'!$G:G&" "&
'Formularsvar 1'!H1&" "&'Formularsvar 1'!$H:H&" "&
'Formularsvar 1'!$I:I&CHAR(10)); ));"where Col1 is not null ORDER BY Col1"; 0)}
我想做的是 SORT/ORDER 并将结果分组,如 example 中的所需输出所示。
是否可以在查询中执行两个输出之一,还是我做错了?
这里有一个小公式:
=SORT(
ARRAYFORMULA(REGEXREPLACE(
TRANSPOSE(QUERY(TRANSPOSE(
ARRAYFORMULA(
{
UNIQUE(FILTER('Formularsvar 1'!D2:D; REGEXMATCH('Formularsvar 1'!C2:C; "9M"))) & CHAR(10) \
IF(
UNIQUE(FILTER('Formularsvar 1'!D2:D; REGEXMATCH('Formularsvar 1'!C2:C; "9M"))) <> TRANSPOSE(FILTER('Formularsvar 1'!D2:D; REGEXMATCH('Formularsvar 1'!C2:C; "9M")));
"";
TRANSPOSE(FILTER(
'Formularsvar 1'!E2:E & CHAR(10)
& 'Formularsvar 1'!F1 & " "
& 'Formularsvar 1'!F2:F & " "
& 'Formularsvar 1'!G1 & " "
& 'Formularsvar 1'!G2:G & " "
& 'Formularsvar 1'!H1 & " "
& 'Formularsvar 1'!H2:H & " "
& 'Formularsvar 1'!I2:I & CHAR(10) & CHAR(10);
REGEXMATCH('Formularsvar 1'!C2:C; "9M")
))
)
}
)
); ; ROWS(FILTER('Formularsvar 1'!D2:D; REGEXMATCH('Formularsvar 1'!C2:C; "9M"))) + 1));
"\n +"; CHAR(10)
))
)