本期累计
上节的销售日报过于简单,假设我们希望在日报上不仅要体现当天的销售情况,还要体现从月初到日报当天的累积销售情况,就像下图所示的这样:
11.2.1 问题分析
来分析一下这个问题的解决思路:当日数据的统计很容易,我们在13.1节已经实现了,主要的问题的本月累计怎么做。注意一点,日报是要每天都要做的,也就是说,当我们作5日的日报时,4日(或者3日、2日,确切的说应该是上一张日报的日期,是个未知数)的日报已存在了。这就给我们提供了解决问题的思路:
今天的“本月累计”= 今天的当日数据+上次日报上的“本月累计”数
具体来说,在模板上增加几个字段:
在G2增加一个字段“上次日期”,
在G列增加“上次累计数量”,H列增加上次累计金额,模板全部设计好之后,可以把G列和H列隐藏。
用表间公式去查询“上次日报的日期”
用表间公式去查询“上次日报的本月累计”
用Excel公式计算今天的本月累计:E5=C5+G5,余类推。
另外,因为包含了“本月累计”,所以不能像上节那样,把产品名称和当日数量、当日金额一次性提取出来,这样会导致某产品由于当天没有订单就没有被包含在当天的日报上,但该产品可能当月的前些日子是有订单的,这样的日报无法正确地反映每种产品的本月累计。
分析就到这里,下面实际地把这张日报做出来。
11.2.2 建立模板《销售日报(含同期累计)》
- 按上图所示表样建立模板《销售日报(含同期累计)》
- 定义单一数据项:日报2_主表
主键 | 区域 | 字段名 | 数据类型 | 必填 | 填写规范 | 其它 |
√ | C2 | 日期 | 日期 | 当前日期 | ||
H2 | 上次日期 | 日期 |
3.选中B5:H14,定义重复数据项。注意第一步的上方标题行数要输入2。
4.最后定义好新数据表:日报2_明细
11.2.3 第一条公式 ---- 提取所有产品
在《销售日报(含同期累计)》模板上新建如下的表间公式
切换到“显示范围”选项卡下,选择“重复数据只填充一次”。
注意两处:1)应用方式我们选择了“新建打开时”,效果就是,当我们填报的时候,空白日报一打开,这条表间公式马上就执行。2)在显示方式处,我们选中了“重复数据只填充一次”。这是因为物料表中可能有这样的数据:名称相同,规格不同,所以如果全部提取出来会出现同样的品名重复显示好几行的情况,此选项用于保证重复的数据只显示一次。
11.2.4 按行(列)匹配
什么叫按行(列)匹配
在13.2.3,我们定义了单独的一条表间公式,把物料表中的全部品名都提取出来,填充到了产品名称栏。假设物料表中共有四种产品A,B,C和D,那么应用了“提取所有产品”表间公式后,日报的内容如下:
再假设5月25日的只有B产品和C产品的订单,参照13.2.3,我们能统计出下面的结果:
产品名称 | 当日数量 | 当日金额 |
---|---|---|
B | 100 | 120000 |
C | 60 | 80000 |
这个统计的结果应该如何体现到日报上呢?
注意到日报上的产品名称已经事先写好了,所以填充统计数据的时候应该考虑到每种产品名称所在的位置:B产品在第6行,所以应该把100填到C6,120000填到D6;C产品在第7行,所以应该把60填到C7,80000填到D7。结果如下:
这种填充方式称为“按行(列)匹配”。
具体来说,就是依照表间公式的查询结果中的某个部分(在这里是“产品名称”),到工作表上找到相同的取值,确定其所在的行(或列),然后把查询结果的其余部分填充到对应的行(或列)上。
定义按行列匹配的表间公式
在日报上定义表间公式,其来源数据和筛选条件均和13.1节的公式相同,仅填充方式有变化,如下图,对“产品名称”要选择“按行(列)匹配”
完整的表间公式如下:
11.2.5 提取上次日报的日期
因为我们平时有工作日,当然也有周末或者节假日,所以,上一张日报的日期不能简单的用当前日期减一天得出,下面,我们用表间公式来提取上次日报的日期:
注意:在做“填充方式”时,把“新日报_日期”前面加号展开后,下面有很多日期函数,我们运用的是“最晚()”函数。
11.2.6 本期累计
现在来提取上次日报上的累计数,定义表间公式如下:
11.2.7 总结与思考
至此,我们已经完整地实现了《销售日报(含同期累计)》模板,总结一下,本模板的设计要点包括:
- 设计三个隐藏字段:上次日期,上次累计数量和上次累计金额
- 分别提取当天的统计数据,上次日报日期以及上次日报的累计数据,用到了按行列匹配。
- 用表间公式查询数据,用Excel公式计算结果,二者结合起来。
下面,请大家多输入一些订单,连续做几天的日报,进一步理解和体会本模板的设计要点