You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Google Sheets中用QUERY/ARRAYFORMULA合并重复ID与唯一行明细

Google Sheets 数据布局调整方案

假设原始数据位于A1:F11区域(表头行1,数据行2-11),可以通过以下两种公式方案实现需求:

方法一:BYROW + XLOOKUP(简洁易读)

在空白单元格(如H1)输入表头:ID、标题、名称、品种,然后在H2单元格输入以下公式:

=BYROW(UNIQUE(A2:B11), LAMBDA(row, {
  row[0], row[1],
  XLOOKUP(1, (A$2:A$11=row[0])*(C$2:C$11="Main")*(D$2:D$11="Name"), E$2:E$11, XLOOKUP(1, (A$2:A$11=row[0])*(C$2:C$11="Sub")*(D$2:D$11="Name"), E$2:E$11)),
  XLOOKUP(1, (A$2:A$11=row[0])*(C$2:C$11="Main")*(D$2:D$11="Breed"), F$2:F$11&" "&E$2:E$11, XLOOKUP(1, (A$2:A$11=row[0])*(C$2:C$11="Sub")*(D$2:D$11="Breed"), F$2:F$11&" "&E$2:E$11))
}))

公式逻辑:

  • UNIQUE(A2:B11):提取唯一的ID与标题组合,确保每个ID只输出一行
  • BYROW(..., LAMBDA(row, ...)):对每个唯一ID-标题组合逐行处理
  • 第一个XLOOKUP:优先匹配数据类型=Main且类型=Name的记录,返回详情作为「名称」;无匹配时自动切换到数据类型=Sub的对应记录
  • 第二个XLOOKUP:优先匹配数据类型=Main且类型=Breed的记录,将品种类型与详情拼接后作为「品种」;无匹配时切换到数据类型=Sub的对应记录

方法二:纯ARRAYFORMULA实现(批量计算友好)

若习惯使用ARRAYFORMULA,可在H2单元格输入以下公式:

=ARRAYFORMULA(
  LET(
    unique_ids, UNIQUE(A2:A11),
    unique_titles, VLOOKUP(unique_ids, A2:B11, 2, FALSE),
    names, IFERROR(
      VLOOKUP(unique_ids&"Main"&"Name", {A2:A11&C2:C11&D2:D11, E2:E11}, 2, FALSE),
      VLOOKUP(unique_ids&"Sub"&"Name", {A2:A11&C2:C11&D2:D11, E2:E11}, 2, FALSE)
    ),
    breeds, IFERROR(
      VLOOKUP(unique_ids&"Main"&"Breed", {A2:A11&C2:C11&D2:D11, F2:F11&" "&E2:E11}, 2, FALSE),
      VLOOKUP(unique_ids&"Sub"&"Breed", {A2:A11&C2:C11&D2:D11, F2:F11&" "&E2:E11}, 2, FALSE)
    ),
    HSTACK(unique_ids, unique_titles, names, breeds)
  )
)

公式逻辑:

  • LET(...):定义变量简化公式结构,提升可读性
  • unique_ids:提取所有唯一ID
  • unique_titles:通过VLOOKUP匹配每个ID对应的标题
  • names:先尝试匹配ID+Main+Name的组合获取名称,失败则切换到ID+Sub+Name组合
  • breeds:先尝试匹配ID+Main+Breed的组合并拼接内容,失败则切换到ID+Sub+Breed组合
  • HSTACK:将各列数据横向拼接成最终目标表格

两种方案均严格遵循需求:优先选用数据类型=Main的记录,无Main时自动降级使用Sub;自动合并Breed类别的品种类型与详情,Name类别直接取详情值。

内容的提问来源于stack exchange,提问作者TMMocha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 10:16:11