Google sheets 存在多个匹配行时的索引匹配

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

我有一个样本数据集(如下),在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( 
  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
给出完全相同的结果时。