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

求Excel公式:按ID合并行,年份列存在Y则保留Y

Excel 多ID合并年份列公式方案

一、通用版(兼容所有Excel版本)

假设原数据结构:

  • ID列:A2:A100
  • 2011年列:B2:B100,2012年列:C2:C100,2013年列:D2:D100,2014年列:E2:E100

操作步骤:

  1. 提取不重复ID:点击「数据」选项卡→「高级筛选」,选择“将筛选结果复制到其他位置”,勾选“选择不重复的记录”,把不重复ID放到新列(比如G2开始的区域)。
  2. 在新表格的2011年列(H2)输入公式:
    =IF(COUNTIFS($A$2:$A$100,G2,$B$2:$B$100,"Y")>0,"Y","")
    
    公式逻辑:统计当前ID下2011年列出现“Y”的次数,只要有1次就返回“Y”,否则留空。
  3. 修改年份列引用,复制公式到2012-2014年对应单元格:
    • 2012年(I2):=IF(COUNTIFS($A$2:$A$100,G2,$C$2:$C$100,"Y")>0,"Y","")
    • 2013年(J2):=IF(COUNTIFS($A$2:$A$100,G2,$D$2:$D$100,"Y")>0,"Y","")
    • 2014年(K2):=IF(COUNTIFS($A$2:$A$100,G2,$E$2:$E$100,"Y")>0,"Y","")
  4. 把所有公式下拉到不重复ID的最后一行即可。

二、Excel 365/2021 动态数组版(高效自动生成)

如果使用支持动态数组的Excel版本,无需手动提取不重复ID,公式自动溢出结果:

  1. 提取不重复ID(自动生成完整列表):
    =UNIQUE(A2:A100)
    
  2. 生成2011年列的对应结果:
    =BYROW(UNIQUE(A2:A100),LAMBDA(x,IF(SUMPRODUCT(--(A2:A100=x),--(B2:B100="Y"))>0,"Y","")))
    
    公式逻辑:遍历每个不重复ID,统计该ID下2011年列有“Y”的记录数,有则返回“Y”。
  3. 若想一次性生成完整表格,可使用以下公式:
    =HSTACK(UNIQUE(A2:A100),BYCOL(B2:E100,LAMBDA(col,BYROW(UNIQUE(A2:A100),LAMBDA(id,IF(MAX((A2:A100=id)*(col="Y"))=1,"Y",""))))))
    
    该公式会自动合并不重复ID与四个年份列,生成完整的目标表格,无需手动下拉操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 04:12:25