这是使用Google表格公式解决的问题。 我有一个大表(表的“数据”的第一行带有标题),其中包含这些列:
在另一页上,按客户(B1:1)排列的产品参考(A2:A)网格。
现在,我需要使用KPI(data!C24&"|"&data!D24&"|"&data!E24&"|"&data!F24
)的串联来填充网格中的每个单元格。
您可以锻炼单个公式来填充所有单元格吗?
这是一个带有data
和grid
工作表的示例电子表格:
https://docs.google.com/spreadsheets/d/1iA_kw4kKw99Qk69X4tST9U-QN2SeG2EN3KEeyG6AtHs/edit?usp=sharing
尽管在大型数据集上的性能非常差,但我已经制定了一个可以完成此任务的公式:
=ARRAYFORMULA(
IFNA(
VLOOKUP(
$B3:$B&"|"&C$2:$2,
ARRAYFORMULA(
{data!A2:A&"|"&data!B2:B,data!C2:C&"|"&data!D2:D&"|"&data!E2:E&"|"&data!F2:F}
),2,0
),""
)
)
解决方案
在带有数据透视的查询上使用ArrayFormula:
=ARRAYFORMULA(
QUERY(
{data!A2:A, data!B2:B, data!C2:C&"|"&data!D2:D&"|"&data!E2:E&"|"&data!F2:F},
"select Col1,max(Col3) where Col1 is not null group by Col1 pivot Col2",0
)
)
答案 0 :(得分:2)
在网格的第一个单元格上尝试一下:
=ArrayFormula(query(sort({data!A:A,data!B:B,transpose(substitute(query(transpose(data!C:F),,4)," ","|"))},1,true,2,true),"select Col1, max(Col3) where Col1 is not null group by Col1 pivot Col2",0))
答案 1 :(得分:2)
previous答案的简短版本(无需预先排序coz数据透视表,即可对其进行单独排序):
=ARRAYFORMULA(QUERY(
{data!A2:A, data!B2:B, data!C2:C&"|"&data!D2:D&"|"&data!E2:E&"|"&data!F2:F},
"select Col1,max(Col3) where Col1 is not null group by Col1 pivot Col2", 0))