如何在Google Sheets Query中合并Sheet2数据且仅对Sheet1应用Lambda条件
Google Sheets 多表Query分组求和:仅对指定表应用Lambda条件处理
问题核心
需要在Sheet3中用query函数合并Sheet1和Sheet2的Serial Number、Value数据,按序列号分组求和,且仅对Sheet1的数据应用Lambda条件(当C列为"yes"时数值加1),Sheet2的数据保持原始值。
解决方案
直接将Sheet1处理后的完整两列数据与Sheet2的原始两列数据纵向合并为一个数组,再传入query函数即可。修正后的公式如下:
=query( { Sheet1!A2:A, MAP(Sheet1!B2:B,Sheet1!C2:C, LAMBDA(v,c, IF(c="yes", v+1, v))); Sheet2!A2:A, Sheet2!B2:B }, "select Col1, sum(Col2) where Col1 is not null group by Col1 label Col1 'Serial Number', sum(Col2) 'Value'" )
关键说明
- 数组
{数据集1;数据集2}实现纵向合并,必须保证两个数据集的列数一致(均为2列),这是之前直接合并单列报错的核心原因。 - 第一部分数据集:Sheet1的序列号列(A2:A)+ 经过Lambda条件处理的值列,保留原有的逻辑。
- 第二部分数据集:Sheet2的序列号列(A2:A)+ 原始值列(B2:B),不做任何额外处理。
query函数会对合并后的完整数组进行分组求和,自动将同序列号的Sheet1处理后数值与Sheet2原始数值累加。
内容的提问来源于stack exchange,提问作者Cauthon
相关产品推荐
相关产品推荐

