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

如何用Excel公式基于Table B数据按条件填充Table A年份列

Excel公式实现按ID匹配年份"Yes"标记

VLOOKUP无法满足需求的原因是:它仅会返回匹配ID的第一行对应年份的值,无法判断该ID下是否存在任意一行的对应年份为"Yes"。以下是两种可行的解法:

方法1:COUNTIFS函数(兼容所有Excel版本)

假设Table A的A列为ID,B列为2015年数据,在B2单元格输入公式:

=IF(COUNTIFS(TableB[ID],A2,TableB[2015],"Yes")>0,"Yes","")

公式说明:

  • COUNTIFS(TableB[ID],A2,TableB[2015],"Yes"):统计Table B中ID等于A2且2015列为"Yes"的行数
  • 若统计结果大于0,说明该ID在2015年存在"Yes"记录,返回"Yes";否则返回空值

适配非结构化引用场景:如果未将数据转为Excel表格,用单元格区域替代(比如Table B的ID范围为$A$2:$A$12,2015列范围为$B$2:$B$12),公式改为:

=IF(COUNTIFS($A$2:$A$12,A2,$B$2:$B$12,"Yes")>0,"Yes","")

同理,2016列(C2)和2017列(D2)只需修改对应年份的列引用,下拉填充即可。

方法2:动态数组公式(适用于Excel 365/2021及以后版本)

单单元格公式(自动填充整列)

在Table A的B2单元格输入以下公式,Excel会自动向下填充所有行:

=BYROW(A2:A<替换为最后一行行号>,LAMBDA(x,IF(COUNTIFS(TableB[ID],x,TableB[2015],"Yes")>0,"Yes","")))

另一种写法(用FILTER+TEXTJOIN)

=IF(ISNUMBER(SEARCH("Yes",TEXTJOIN(",",TRUE,FILTER(TableB[2015],TableB[ID]=A2)))),"Yes","")

可选调整:

如果需要在无"Yes"记录时显示"否",只需将公式中的""替换为"否"即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 15:45:54