Excel公式需求:基于发票列自动生成项目起止月份
Excel自动生成销售管道项目起止月份公式
项目开始月份(第一个有发票金额的月份)
新版Excel(支持XLOOKUP函数)
在项目开始列的目标单元格(如A2)输入以下公式:=XLOOKUP(TRUE,$C2:$G2<>"",$C$1:$G$1,"",0,1)
- 逻辑说明:
$C2:$G2指代当前行的发票金额列范围,$C$1:$G$1是月份表头范围;公式从左到右查找第一个非空的金额单元格,自动返回对应的月份表头。
旧版Excel(无XLOOKUP兼容版)
在项目开始列的目标单元格(如A2)输入数组公式,输入完成后需按Ctrl+Shift+Enter组合键确认:=INDEX($C$1:$G$1,MATCH(TRUE,INDEX($C2:$G2<>"",0),0))
- 逻辑说明:通过嵌套INDEX生成判断金额是否非空的布尔数组,再用MATCH定位第一个非空单元格的位置,最后用INDEX返回对应月份表头。
项目结束月份(最后一个有发票金额的月份)
新版Excel(支持XLOOKUP函数)
在项目结束列的目标单元格(如B2)输入以下公式:=XLOOKUP(TRUE,$C2:$G2<>"",$C$1:$G$1,"",0,-1)
- 逻辑说明:与开始月份公式核心逻辑一致,仅将最后一个参数设为
-1,实现从右到左查找,返回最后一个非空金额对应的月份表头。
旧版Excel(无XLOOKUP兼容版)
在项目结束列的目标单元格(如B2)输入数组公式,输入完成后需按Ctrl+Shift+Enter组合键确认:=INDEX($C$1:$G$1,MAX(IF($C2:$G2<>"",COLUMN($C2:$G2)-COLUMN($C2)+1,0)))
- 逻辑说明:用IF判断非空金额单元格并返回其列位置,取最大值定位最后一个非空单元格的位置,再用INDEX返回对应月份表头。
使用提示
- 范围调整:如果你的月份列扩展至更多月份(如到12月),只需将公式中的
$C$1:$G$1(表头范围)和$C2:$G2(金额列范围)替换为实际的单元格区域即可。 - 自动同步:当修改任意行的发票金额位置(删除原有金额、新增金额或调整金额所在月份),项目起止月份会自动同步更新,无需手动修改。
内容的提问来源于stack exchange,提问作者haydenwhitehouse
相关产品推荐
相关产品推荐

