You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

如何在Google Sheets中用非唯一列创建多对多关联新表

Google Sheets 非唯一列合并(笛卡尔积连接)

针对你需要将县份表与门店表通过重复的County列做全匹配合并的需求,直接用以下公式就能实现预期效果:

假设:

  • 县份表在Sheet1,A列是「记录编号」,B列是「县份」(数据从A2开始)
  • 门店表在Sheet2,A列是「县份」,B列是「名称」(数据从A2开始)

在新工作表的A1单元格输入公式:

=LET(
  county_data, Sheet1!A2:B,
  store_data, Sheet2!A2:B,
  expanded, BYROW(county_data, LAMBDA(row, 
    LET(
      record_num, INDEX(row,1),
      county, INDEX(row,2),
      matches, FILTER(store_data, INDEX(store_data,,1)=county),
      IF(ROWS(matches)=0, 
        {record_num, county, ""},
        HSTACK(
          SEQUENCE(ROWS(matches),1,record_num,0),
          SEQUENCE(ROWS(matches),1,county,0),
          INDEX(matches,,2)
        )
      )
    )
  )),
  VSTACK({"记录编号","县份","名称"}, FLATTEN(expanded))
)

公式说明:

  • LET:定义变量简化公式,避免重复引用
  • BYROW:遍历县份表的每一行数据
  • FILTER:根据当前行的县份,筛选出门店表中所有匹配的门店记录
  • 若某县没有对应门店,自动生成空的「名称」字段
  • HSTACK+SEQUENCE:把当前记录编号、县份和匹配到的门店名称横向拼接,生成多行结果
  • VSTACK:添加表头并整合所有结果

注意事项:

  1. 如果你的工作表名称不是Sheet1/Sheet2,要对应修改公式里的表名
  2. 确保数据区域没有多余的空行,否则会生成无效的空记录
  3. 公式会自动动态更新,只要原表数据变化,合并结果会同步更新

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

火山引擎 最新活动