求助:基于产品起止日期在对应日期列返回目标值的Excel公式
求助:基于产品起止日期在对应日期列返回目标值的Excel公式
看起来你需要一个能根据产品起止日期(PSD和PFD),在匹配的日期列自动填充目标值、其余列留空的Excel公式——我之前帮不少社区用户解决过类似的场景,咱们来一步步捋清楚怎么实现。
首先明确核心逻辑:判断当前单元格所在列的日期表头,是否落在当前行的PSD和PFD区间内(包含起止日期),如果符合条件就显示目标值,否则返回空文本。
基础版IF+AND公式(兼容所有Excel版本)
假设你的表格结构是这样的:
- PSD(产品开始日期)在
B2单元格,PFD(产品结束日期)在C2单元格 - 要显示的目标值在
D2单元格 - 顶部的日期表头从
E1开始(E1、F1、G1...依次是各个日期列)
那么在E2单元格输入以下公式:
=IF(AND(E$1>=$B2,E$1<=$C2),$D2,"")
公式细节解释:
E$1:用$锁定行号,横向拖动公式时,始终引用当前列的日期表头(不会变成F2、G2这类错误引用)$B2和$C2:用$锁定列号,纵向拖动公式时,始终引用当前行的PSD和PFD(不会偏移到其他列)$D2:锁定列号,确保返回的是当前行的目标值,横向拖动时不会跑偏- 最后用
""返回空文本,让不符合条件的单元格保持空白
使用方法
输入公式后,选中E2单元格:
- 横向拖动填充柄,把公式复制到所有日期列
- 再纵向拖动填充柄,把公式复制到所有产品行
为什么你之前的公式没生效?
大概率是没正确使用绝对引用(就是公式里的$符号)。如果没有锁定行或列,拖动公式时引用的单元格会自动偏移,导致日期判断的逻辑出错,自然没法在正确的列显示值。
进阶版(适用于Excel 365/2021)
如果你用的是较新版本的Excel,可以用更简洁的IFS函数写法,逻辑完全一致:
=IFS(AND(E$1>=$B2,E$1<=$C2),$D2,TRUE,"")
如果还有不清楚的地方,可以补充你的表格具体结构(比如表头位置、目标值列位置),我再帮你调整公式~
备注:内容来源于stack exchange,提问作者rohannair
相关产品推荐
相关产品推荐

