本文致力于为每日/每周/每月/每年都在做报表的朋友们排忧解难!!
写一篇python的代码来实现自动化确实不难,但对于没有基础的朋友而言可能多少有点麻烦。下文用excel展示一下如何用更加低成本的方式实现报表更新过程中的一些自动化。
本文主要涉及函数:DATE(year,month,day) ,TEXT(value,format_text) ,YEAR(serial_number) ,MONTH(serial_number) ,RIGHT(text,[num_chars])
日期更新
如下所示为一个报表示例:
注:MTD是指Month to Date,当月截止当日
当B1、B2的日期值更新时,对应的B4、B6、B9和B12的值均需要随之更新,当分析子项众多且图表复杂时,极易错漏,此时我们可以考虑使用如下的函数来一键更新:
一、设定被引用单元格
如下图中标绿部分,使用 DATE(year,month,day) 函数设定可能需要使用到的年月日时间数据。
C1 = DATE(2024,9,1); C2 = DATE(2024,9,10)
这一部分如果不喜欢露出来,可以做成与底色相同的颜色。
二、修改单元格函数
接下来,分析可见,每一重复更新的报表中,日期之间的关系如上红字。我们使用TEXT(value,format_text)函数来调整所需日期格式,并通过 & 符号来整合信息,如下:
B1 =TEXT($C$1,"YYYY-MM-DD"); B2 = TEXT($C$1,"YYYY-MM-DD")
最好使用 $ 符号固定单元格,以免后续引用出错。
B4 =TEXT($C$1,"MMDD") & "-" & TEXT($C$2,"MMDD")
B6 = "Y"&TEXT($C$1,"YY") & " " & TEXT($C$2,"M月") & "MTD"
这里用MONTH(serial_number) 函数取当月的月份,并 -1 得到上一月的月份:
B9 = "Y"&TEXT($C$1,"YY") & " " & MONTH(B1)-1 & "月"
这里用YEAR(serial_number) 函数取当年的年份,并 -1 得到上一年的年份,用RIGHT(text,[num_chars])函数取后两位数字进行输出:
B12 = "Y"& RIGHT(YEAR(B1)-1,2) & " " & TEXT($C$2,"M月") & " MTD"
三、待到下次更新时,只需修改C1:C2部分的有关数值即可
希望这一点点小tips能帮助朋友们改进工作流程,避免繁复的人力修改和修改时极易出现的错漏~