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

电子表格行末有效数据提取及Delivered值优先显示需求问询

嘿,我来帮你搞定这个电子表格的需求!根据你的描述,我们需要实现两个核心逻辑:优先识别行内是否存在"Delivered"事件,存在则直接显示它;如果没有,再提取该行最后一个非空的事件。下面针对常用的Excel和Google Sheets分别给出具体的公式方案:

Excel 解决方案

适用于Excel 365/2021(支持动态数组)

直接用XLOOKUP配合COUNTIF就能一步到位,把下面的公式放到"Last"列的第一个数据行(比如F2),然后下拉填充即可:

=IF(COUNTIF(B2:E2,"Delivered")>0,"Delivered",XLOOKUP("*",B2:E2,B2:E2,"",0,-1))
  • COUNTIF(B2:E2,"Delivered")>0:检查当前行的事件列(这里是B2到E2)是否包含"Delivered",是的话直接返回该文本
  • XLOOKUP("*",B2:E2,B2:E2,"",0,-1):用通配符*匹配任意非空内容,最后一个参数-1表示从右往左搜索,直接定位到最后一个非空单元格

适用于旧版Excel(不支持XLOOKUP)

用LOOKUP函数替代,公式如下:

=IF(COUNTIF(B2:E2,"Delivered")>0,"Delivered",LOOKUP(2,1/(B2:E2<>""),B2:E2))
  • 1/(B2:E2<>""):把非空单元格转换为1,空单元格转换为错误值#DIV/0!
  • LOOKUP(2,1/(B2:E2<>""),B2:E2):因为2比所有1都大,LOOKUP会自动匹配最后一个有效的1对应的单元格值,也就是最后一个非空事件
Google Sheets 解决方案

Google Sheets的逻辑和Excel一致,两种公式都适用:

推荐方案(用XLOOKUP)

=IF(COUNTIF(B2:E2,"Delivered")>0,"Delivered",XLOOKUP("*",B2:E2,B2:E2,"",0,-1))

兼容方案(用LOOKUP)

=IF(COUNTIF(B2:E2,"Delivered")>0,"Delivered",LOOKUP(2,1/(B2:E2<>""),B2:E2))
示例验证

用你给出的测试数据验证(假设事件列是B-E,Last列是F):

ev1ev2ev3ev4Last
AA1A2A3NAA3
BB1B2NANAB2
CC1C2C3C4C4
DD1D2D3NAD3
EE1NANANAE1
FF1DeliveredF3NADelivered

把公式放到F2后下拉,就能得到上面的结果啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:47:20