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

Excel按条件计算日期与匹配行日期的最小差值(股票洗售判定场景)

Excel洗售(Wash Sale)判定最小日期差公式解决方案

以下公式直接写在F2单元格,可根据你的数据范围调整行号上限(示例默认取到第100行,可改为你实际的最大行号):

适用Excel 365/2021及以上版本(支持动态数组,无需额外按键)

=IF(D2>=0,"",LET(filter_range,FILTER($C$2:$C$100,($A$2:$A$100=A2)*($D$2:$D$100<0)*(ROW($A$2:$A$100)<>ROW())),IFERROR(MIN(ABS(filter_range-B2)),"无匹配记录")))

适用Excel 2019及更早版本(输入后需按Ctrl+Shift+Enter三键触发数组计算)

=IF(D2>=0,"",IFERROR(MIN(IF(($A$2:$A$100=A2)*($D$2:$D$100<0)*(ROW($A$2:$A$100)<>ROW()),ABS($C$2:$C$100-B2),9^9)),"无匹配记录"))

公式逻辑说明

  • 第一层IF(D2>=0,"",xxx):直接过滤收益为正的行,符合规则1要求
  • 筛选条件($A$2:$A$100=A2)*($D$2:$D$100<0)*(ROW($A$2:$A$100)<>ROW()):同时满足「同股票代码」「其他行是亏损」「排除当前行自身」三个条件,解决原公式计入自身行的问题
  • 用MIN(ABS(筛选出的卖出结束日期 - 当前行买入日期))直接计算最小绝对差值,无需下拉填充后再汇总,直接返回单个结果。Excel日期为序列值,差值绝对值即为自然天数,和DATEDIF按先后顺序计算的结果完全一致
  • 外层IFERROR用于处理无符合条件匹配行的场景,返回自定义提示内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 18:15:04