扫描列名,选择包含特定文本的列名,并对其执行 运行 函数(SUM、MAX 等)
Scan column names, pick the ones containing specific text, and run functions on them (SUM, MAX etc)
在 Google 表格中,我有一个跨页sheet 看起来像这样
A1 A2 A3 B1 B2 B3 C1 C2 C3
55 23 21 15 18 15 61 51 51
51 15 15 81 98 13 51 74 65
15 87 89 99 32 72 15 58 51
18 64 15 81 32 15 81 78 98
87 81 32 51 15 35 15 81 12
我想创建一个单独的 sheet,它将找到所有 "A" 命名列的 sum/max/average/min。
有没有一种方法可以在单元格中创建一个函数(让我们现在选择一个)对同一行中列名与特定文本模式匹配的所有单元格进行平均(例如 "A*") ?
您可以使用这样的数组公式:
ArrayFormula(average(if(left(A1:I1,1)="A",A2:I)))
或者如果首选使用模式匹配以获得更大的灵活性:
=ArrayFormula(average(if(regexmatch(A1:I1,"^A"),A2:I)))
(区分大小写)。
=ARRAYFORMULA({
"sum", SUM(QUERY(TRANSPOSE(QUERY(TRANSPOSE(TO_TEXT(A1:I)),
"where Col1 contains 'A'", 0)), "where Col1 !='' offset 1", 0)*1);
"max", MAX(QUERY(TRANSPOSE(QUERY(TRANSPOSE(TO_TEXT(A1:I)),
"where Col1 contains 'A'", 0)), "where Col1 !='' offset 1", 0)*1);
"average", AVERAGE(QUERY(TRANSPOSE(QUERY(TRANSPOSE(TO_TEXT(A1:I)),
"where Col1 contains 'A'", 0)), "where Col1 !='' offset 1", 0)*1);
"min", MIN(QUERY(TRANSPOSE(QUERY(TRANSPOSE(TO_TEXT(A1:I)),
"where Col1 contains 'A'", 0)), "where Col1 !='' offset 1", 0)*1)})
=ARRAYFORMULA(QUERY(TRANSPOSE(QUERY(TRANSPOSE(
QUERY(TRANSPOSE(QUERY(TRANSPOSE(TO_TEXT(Raw!$A1:$AR)),
"where Col1 contains '"®EXEXTRACT(C1, ".")&"'", 0)),
"where Col1 !='' offset 1", 0)*1),
"select "®EXREPLACE(JOIN( , IF(LEN(Raw!$C2:$C),
"max(Col"&ROW(Raw!$C2:$C)-ROW(Raw!$C2)+1&"),", )), ".\z", "")&"")),
"select Col2"))
在 Google 表格中,我有一个跨页sheet 看起来像这样
A1 A2 A3 B1 B2 B3 C1 C2 C3
55 23 21 15 18 15 61 51 51
51 15 15 81 98 13 51 74 65
15 87 89 99 32 72 15 58 51
18 64 15 81 32 15 81 78 98
87 81 32 51 15 35 15 81 12
我想创建一个单独的 sheet,它将找到所有 "A" 命名列的 sum/max/average/min。
有没有一种方法可以在单元格中创建一个函数(让我们现在选择一个)对同一行中列名与特定文本模式匹配的所有单元格进行平均(例如 "A*") ?
您可以使用这样的数组公式:
ArrayFormula(average(if(left(A1:I1,1)="A",A2:I)))
或者如果首选使用模式匹配以获得更大的灵活性:
=ArrayFormula(average(if(regexmatch(A1:I1,"^A"),A2:I)))
(区分大小写)。
=ARRAYFORMULA({
"sum", SUM(QUERY(TRANSPOSE(QUERY(TRANSPOSE(TO_TEXT(A1:I)),
"where Col1 contains 'A'", 0)), "where Col1 !='' offset 1", 0)*1);
"max", MAX(QUERY(TRANSPOSE(QUERY(TRANSPOSE(TO_TEXT(A1:I)),
"where Col1 contains 'A'", 0)), "where Col1 !='' offset 1", 0)*1);
"average", AVERAGE(QUERY(TRANSPOSE(QUERY(TRANSPOSE(TO_TEXT(A1:I)),
"where Col1 contains 'A'", 0)), "where Col1 !='' offset 1", 0)*1);
"min", MIN(QUERY(TRANSPOSE(QUERY(TRANSPOSE(TO_TEXT(A1:I)),
"where Col1 contains 'A'", 0)), "where Col1 !='' offset 1", 0)*1)})
=ARRAYFORMULA(QUERY(TRANSPOSE(QUERY(TRANSPOSE(
QUERY(TRANSPOSE(QUERY(TRANSPOSE(TO_TEXT(Raw!$A1:$AR)),
"where Col1 contains '"®EXEXTRACT(C1, ".")&"'", 0)),
"where Col1 !='' offset 1", 0)*1),
"select "®EXREPLACE(JOIN( , IF(LEN(Raw!$C2:$C),
"max(Col"&ROW(Raw!$C2:$C)-ROW(Raw!$C2)+1&"),", )), ".\z", "")&"")),
"select Col2"))