Google sheets 存在多个匹配行时的索引匹配
我有一个样本数据集(如下),在a列中有重复的条目-当主键在a列中匹配时,我试图从B:D列中提取所有匹配的值 主键 值1 价值2 价值3 A. 1. A. 2. A. 2. 3. B 1. B 3. C 2.Google sheets 存在多个匹配行时的索引匹配,google-sheets,Google Sheets,我有一个样本数据集(如下),在a列中有重复的条目-当主键在a列中匹配时,我试图从B:D列中提取所有匹配的值 主键 值1 价值2 价值3 A. 1. A. 2. A. 2. 3. B 1. B 3. C 2. 由于每列只需要一个值,因此可以使用query()聚合数据,如下所示: =query( A1:D, "select A, max(B), max(C), max(D) where A is not null group by A", 1
由于每列只需要一个值,因此可以使用
query()
聚合数据,如下所示:
=query(
A1:D,
"select A, max(B), max(C), max(D)
where A is not null
group by A",
1
)
=query(
A1:E,
"select A, max(B), max(C), max(D), max(E)
where A is not null
group by A",
1
)
要添加另一列,请调整范围参考并在select
子句中添加该列,如下所示:
=query(
A1:D,
"select A, max(B), max(C), max(D)
where A is not null
group by A",
1
)
=query(
A1:E,
"select A, max(B), max(C), max(D), max(E)
where A is not null
group by A",
1
)
要美化列名,请添加标签
子句。请参阅。使用:
=ARRAYFORMULA(QUERY(SPLIT(FLATTEN(IF(B2:D="",,A2:A&"×"&B2:D&"×"&B1:D1)), "×"),
"select Col1,max(Col2) where Col2 is not null group by Col1 pivot Col3 label Col1'Primary Key'"))
例如,在列A中,记录A在列B中可能有两个不同的值吗?(在您的示例中,有4条A记录,其中2条在B列中有值)@MarkS。这是一种可能性。谢谢你指出这一点。我已经更新了我的数据集来反映这一点。这会改变你的结果吗?我看到底部的表格上仍然写着2,你不会希望这些数据相加,对吗?我不希望它改变结果-我只希望每个列的唯一值。这在示例数据集中起作用!如果我想将其扩展到第四列,那么我是只更改If语句中的变量,还是还需要调整查询?@RobertK使用
query pivot
和split(flatte(If()))
构造似乎太复杂了,当一个简单的查询group by
给出完全相同的结果时。