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

Excel精英培讯 2024-12-11 19:01:19

兰色最近在发愁一件事情:用透视表做的月统计表,总感觉太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工作簿

0 阅读:0

Excel精英培讯

简介:欢迎大家关注我,给我点赞