求助:Excel筛选含日期与文本的列及FILTER公式报错解决
解决Excel筛选上架超30天物品的公式问题
核心问题原因
你之前的公式出错,是因为Date_off列里的文本值on shelf无法参与日期运算,直接用Date_off - Date_on会返回错误值,导致FILTER函数无法正常工作。
两种可用的修正公式
方法1:直接判断文本值
=FILTER(Item_name, IF(Date_off="on shelf", TODAY()-Date_on, Date_off-Date_on)>=30)
- 逻辑:当下架日期是
on shelf时,用当前日期减去上架日期,计算当前已上架的天数;如果是有效日期,直接用下架日期减上架日期。 - 把这个统一计算后的天数作为筛选条件,判断是否≥30,就能避开文本值的运算错误。
方法2:用ISNUMBER判断日期类型
=FILTER(Item_name, IF(ISNUMBER(Date_off), Date_off-Date_on, TODAY()-Date_on)>=30)
- 逻辑:Excel里的日期本质是数字,用
ISNUMBER(Date_off)判断单元格是否为有效日期:是则计算日期差,否则用当前日期减上架日期。 - 你之前用
IF(ISNUMBER(Date_off), FILTER...)没成功,是因为错误地把FILTER放在了IF分支里——正确的做法是把判断逻辑嵌入到FILTER的条件数组中,而不是嵌套整个FILTER函数。
额外说明
如果需要针对性筛选,比如只保留仍在售且超30天的物品,可调整公式为:
=FILTER(Item_name, (Date_off="on shelf")*(TODAY()-Date_on>=30))
内容的提问来源于stack exchange,提问作者B209978
相关产品推荐
相关产品推荐

