如何用Excel公式提取对应产品的上月数值并填充指定列
Excel公式:填充上月对应产品的Current值到「Previous month value」列
假设你的表格结构如下:
- A列:月份(如Jan、Feb)
- B列:产品(如Product A/B/C)
- C列:Current数值
- D列:目标列「Previous month value」
推荐公式(INDEX+MATCH组合,灵活稳定)
在D2单元格输入以下公式,下拉填充即可:
=IFERROR(INDEX($C:$C, MATCH(B2&(MONTH(DATEVALUE(A2&" 1"))-1), $B:$B&MONTH(DATEVALUE($A:$A&" 1")), 0)), "")
公式解析
MONTH(DATEVALUE(A2&" 1")):将A列的月份缩写转换为对应的数字(Jan→1,Feb→2,以此类推)B2&(MONTH(...) -1):拼接当前产品和上月的月份数字,生成匹配关键字$B:$B&MONTH(DATEVALUE($A:$A&" 1")):构建包含所有产品+对应月份数字的匹配区域INDEX($C:$C, ...):根据匹配到的行号,提取对应产品上月的Current值IFERROR(..., ""):处理首个月份(如Jan)无上月数据的情况,返回空值替代#N/A错误
替代方案(VLOOKUP写法)
如果你更习惯用VLOOKUP,也可以用这个公式:
=IFERROR(VLOOKUP(B2&(MONTH(DATEVALUE(A2&" 1"))-1), CHOOSE({1,2}, $B:$B&MONTH(DATEVALUE($A:$A&" 1")), $C:$C), 2, 0), "")
注意事项
- 确保A列的月份缩写是Excel可识别的标准格式(英文缩写Jan/Feb/...或中文月份名,若为中文需调整月份转换逻辑)
- 公式从数据行(第二行)开始输入,下拉覆盖所有需要填充的行
内容的提问来源于stack exchange,提问作者Balaji Sankaravel
相关产品推荐
相关产品推荐

