>快讯 >

没想到!把excel统计表做成日历后,太高级了

时间:2023-06-04 10:30:30       来源:个人图书馆-Y.J

最近在发愁一件事情:用透视表做的月统计表,总感觉太low了。

于是兰色又开启天马行空式的思索.....哈哈,脑海里竟然浮现出日历的模板,说做就做,做出的效果真的不一般,不仅颜值拉满,而且非常的实用。


(资料图)

你以为仅如此吗?NO! 它还可以查看详细销售项目汇总。

还可以生成详细销售清单

嘿嘿...我猜你肯定想知道是怎么做到的,下面跟兰色一起做吧。

步骤1 做日历

在第一个格中输入公式

=DATE(C3,E3,1)-WEEKDAY(DATE(C3,E3,1),2)+1

其他日期用+1和+7即可生成。

把非本月的日期隐藏:按ctrl从下向上选取日期行添加条件格式

条件:=month(C6)<>$E$3

格式:自定义代码 ;;;(3个分号)

再把通过自定义代码d把日期显示成天数。

步骤2 添加每日销售汇总数字

=IF(MONTH(C6)<>$E$3,0,SUMIF(销售明细表!$B:$B,C6,销售明细表!$G:$G))

注:如果不是本月日期结果返回0,是本月就根据日期用SUMIF从销售明细表中汇总金额。销售明细表!$B:$B为日期列,销售明细表!$G:$G为金额列。

步骤3 生成销售汇总和销售明细

这里要使用两段代码辅助完成

把选取的日期输入到单元格中的事件程序:

添加方法:在工作表标签上右键 - 查看代码 - 把下面代码粘贴到右侧的空白处

Private Sub Worksheet_SelectionChange(ByVal Target As Range)On Error Resume NextIf Target.Column < 10 And Target.Column > 2 And Target.Row > 5 And Target.Row < 16 ThenIf IsDate(Target) Then [Q2] = TargetElse [Q2] = Target.Offset(-1, 0) End If 生成明细End IfEnd Sub

生成销售明细的筛选代码

添加方法:在工作表标签上右键 - 查看代码 - 在新窗口中插入 - 模块,把下面的代码粘贴空白处。

Sub 生成明细()    Sheets("销售明细表").Range("B1:L1100").AdvancedFilter Action:=xlFilterCopy, _        CriteriaRange:=Range("销信日历!Criteria"), CopyToRange:=Range("Q5:AA5"), _        Unique:=FalseEnd Sub

如果你的版本是office365,上面这段代码可以用filter公式完成。

步骤4 另存为启用宏的excel工作簿

关键词: