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

如何用Excel IF函数为大数据集生成月末发票日期?

实现每月交易对应当月最后一天发票日期的方法

嘿,针对你这个需求,用IF函数确实能搞定,但其实有更简洁高效的方案!先给你说IF函数的写法,再推荐更省心的函数~

用IF函数实现(嵌套写法)

因为需要判断12个不同的月份,所以得嵌套11层IF(最后一个月份直接返回结果),公式如下:

=IF(MONTH(A2)=1, DATE(2017,1,31), 
    IF(MONTH(A2)=2, DATE(2017,2,28), 
        IF(MONTH(A2)=3, DATE(2017,3,31), 
            IF(MONTH(A2)=4, DATE(2017,4,30), 
                IF(MONTH(A2)=5, DATE(2017,5,31), 
                    IF(MONTH(A2)=6, DATE(2017,6,30), 
                        IF(MONTH(A2)=7, DATE(2017,7,31), 
                            IF(MONTH(A2)=8, DATE(2017,8,31), 
                                IF(MONTH(A2)=9, DATE(2017,9,30), 
                                    IF(MONTH(A2)=10, DATE(2017,10,31), 
                                        IF(MONTH(A2)=11, DATE(2017,11,30), DATE(2017,12,31)
                                        )
                                    )
                                )
                            )
                        )
                    )
                )
            )
        )
    )
)
  • 解释:MONTH(A2)提取原始日期列(假设是A列)的月份数字,然后逐个匹配1-11月,分别返回2017年对应月份的最后一天,12月直接返回Dec-31-2017。
  • 注意:这个写法的缺点是嵌套层级多,容易输错,而且如果后续年份变化,需要手动修改每个DATE函数里的年份参数。

更优解:用EOMONTH函数

Excel里专门有个函数就是干这个的——EOMONTH,它直接返回指定日期所在月份的最后一天,公式超简单:

=EOMONTH(A2, 0)
  • 解释:
    • A2是你的原始日期单元格;
    • 第二个参数0表示“当前月份”,如果填1就是下一个月最后一天,-1就是上个月最后一天,非常灵活;
    • 这个函数会自动识别年份和当月天数(比如2017年2月是28天,闰年2月会自动用29天),完全不用手动写每个月的最后一天!

格式调整

如果需要把结果显示成Jan-31-2017这种格式,只要选中“Invoice Date”列的单元格,右键选择「设置单元格格式」,在「数字」选项卡的「自定义」里输入mmm-dd-yyyy,确定后就会自动显示成你要的样式啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:03:16