亲爱的小伙伴们,跟我学EXCEL系列福利来了,从初级一直到高级学习EXCEL系列文章,结合财务实际应用讲解,配合动图细节演示,通俗易懂,是一套比较系统的不可多见学习EXCEL的好文章。持续更新中!
本系列文章包括基础篇(包括技巧、函数)、进阶篇(主要是数据透视表)、高级篇(主要是Power Query)。
希望大家喜欢,欢迎提出宝贵意见和建议!
今天我们继续学习函数及相关内容。
二、EXCEL基础篇-函数15
21、日期函数EOMONTH
EOMONTH的函数表达式=EOMONTH(参数日期,整数),结果是某个月份的最后一天。
如果第二个参数是0,函数结果是参数日期月份当月最后一天,1是下月最后一天,2是下下月最后一天,-1是上月最后一天,-2是上上月最后一天,其他的以此类推。
比如 =EOMONTH(2022-3-10,0)的结果是2022-3-31
=EOMONTH(2022-3-10,1)的结果是2022-4-30
=EOMONTH(2022-3-10,2)的结果是2022-5-31
=EOMONTH(2022-3-10,-1)的结果是2022-2-28
=EOMONTH(2022-3-10,-2)的结果是2022-1-31
其他的整数以此类推。
(1)获取当月的准确天数
获取当天的函数是TODAY,通过EOMONTH获取当月最后一天的日期,通过DAY获取对应天数,就是当月的天数,公式是=DAY(EOMONTH(TODAY(),0))。今天是2022-3-10,当月的天数就是31天,这个比较简单。
(2)SUMIFS和EOMONTH结合的一种特殊用法:按月求和
财务数据处理主要类型为数值和日期,按月求和数值是一个常见的情形,后面学到的数据透视表可以非常方便的实现这个功能,但有时候不方便用数据透视表来做,或者就想用函数来实现这个功能,我们就可以考虑这样来做。
我们来看一个案例。有这样一个表,如下:
日期 | 金额 |
2018-1-8 | 15,855.00 |
2018-1-8 | 10,000.00 |
2018-1-8 | 8,000.00 |
2018-1-8 | 5,000.00 |
2018-1-8 | 8,000.00 |
2018-1-8 | 12,900.00 |
2018-1-8 | 5,000.00 |
2018-2-1 | 1,600.00 |
2018-2-9 | 18,000.00 |
2018-2-17 | 20,000.00 |
2018-2-25 | 1,500.00 |
2018-3-5 | 7,000.00 |
2018-3-13 | 1,500.00 |
2018-3-21 | 1,600.00 |
2018-3-29 | 12,300.00 |
2018-4-6 | 9,900.00 |
2018-4-14 | 5,000.00 |
2018-4-22 | 10,000.00 |
2018-4-30 | 10,000.00 |
2018-5-8 | 17,750.00 |
2018-5-16 | 11,250.00 |
2018-5-24 | 8,000.00 |
2018-6-1 | 40,000.00 |
2018-6-17 | 10,290.00 |
2018-6-25 | 10,000.00 |
2018-7-3 | 9,900.00 |
2018-7-11 | 5,000.00 |
2018-7-19 | 10,000.00 |
2018-7-27 | 10,000.00 |
2018-8-4 | 17,750.00 |
2018-8-12 | 11,250.00 |
2018-8-20 | 8,000.00 |
2018-8-28 | 40,000.00 |
2018-9-5 | 10,000.00 |
2018-9-13 | 10,290.00 |
2018-9-21 | 10,000.00 |
2018-9-29 | 10,000.00 |
按月份求和
先建立一个日期列表,设置为月份格式。
重点是设置思路,利用EOMONTH取得参数月的首日和最后一天,用SUMIFS函数按大于等于参数月首日,小于等于参数月最后一天这两个条件求和。
可能大家会有疑问EOMONTH只能得到最后一天,首日如何得到?换个思路就容易了,上个月最后一天加上1不就是当月第一天吗?比如参数日期2018-1-5(只要是2018年1月任何一个日期就行)想得到2018-1-1,先用=EOMONTH(2018-1-5,-1)得到2017-12-31,加1就是2018-1-1,也就是“=EOMONTH(2018-1-5,-1)+1”的结果就是2018-1-1。
要注意的一点就是数值的大于等于可以直接输入,日期的大于等于需要加英文状态下的双引号和连接符来表达。比如大于等于2018-1-1,EXCEL中的表达式是">="&2018-1-1,小于等于一样的设置,这样根据这个思路最终E2单元格的公式为:
=SUMIFS($B:$B,$A:$A,">="&EOMONTH(D2,-1)+1,$A:$A,"<="&EOMONTH(D2,0))