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

Excel:如何返回项目首个未100%完成的活动行值

嘿,这个需求我熟!要在Excel的D列自动返回每个项目首个未100%完成的活动,我给你分两种Excel版本的解决方案,都是经过验证的实用公式:

针对Excel 365/2021(动态数组版本)

如果你用的是支持动态数组的Excel版本,直接在D2单元格输入下面的公式,它会自动填充整列:

=BYROW(A:A,LAMBDA(x,
  IF(x="","",
    IF(COUNTIF(A:A,x)=COUNTIFS(A:A,x,C:C,100%),
      "全部完成",
      INDEX(B:B,MATCH(1,(A:A=x)*(C:C<>100%),0))
    )
  )
))

公式逻辑拆解:

  • BYROW(A:A,LAMBDA(x,...)):遍历A列的每个项目名x
  • 先判断x为空时返回空值,避免填充无效行
  • COUNTIF(A:A,x)=COUNTIFS(A:A,x,C:C,100%):检查该项目的所有活动是否都已100%完成,如果是,返回「全部完成」
  • 否则用INDEX+MATCH组合,找到第一个符合项目名且完成率≠100%的活动内容
针对旧版Excel(非动态数组版本)

如果是旧版Excel(比如2019及更早),需要用数组公式,步骤如下:

  1. 在D2单元格输入公式:
=IF(COUNTIF($A$2:$A$100,A2)=COUNTIFS($A$2:$A$100,A2,$C$2:$C$100,100%),"全部完成",INDEX($B$2:$B$100,MATCH(1,($A$2:$A$100=A2)*($C$2:$C$100<>100%),0)))
  1. 输入完成后,按住Ctrl+Shift+Enter三键结束输入(数组公式会自动加上大括号)
  2. 下拉D2单元格填充到所有数据行

注意点:

  • 把公式里的$A$2:$A$100、$B$2:$B$100、$C$2:$C$100替换成你实际的数据区域,不要用整列(比如A:A),不然会拖慢Excel运行速度
  • 如果项目名存在大小写或空格差异,需要用EXACT函数精准匹配,把$A$2:$A$100=A2改成EXACT($A$2:$A$100,A2)
额外提示

如果某个项目所有活动都已完成,公式会返回「全部完成」,你可以根据自己的需求修改这个文本(比如改成空值或其他提示语)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:29:03