每隔几行汇一下总,Excel公式这样搞

每隔几行汇一下总,Excel公式这样搞

首页休闲益智开心食汇游戏更新时间:2024-06-07

一、问题提出

现在有多行数据,领导要求给出下图(截取了公司部分部门的一季度工资)绿色方框内的公式,计算一下一季度各部门月度工资合计。

二、分析思路

要分别将各部门“1月”和“1月”的工资、“2月”和“2月”、“3月”和“3月”的工资相加,一共是3个月

(1)表格观察:

“1月”所在行的序号是1、4、7..13,这些序号的间隔是3;

“2月”所在行的序号是2、5、8..14,这些序号的间隔是3;

“3月”同样也是这个规律。由此我们就可利用mod除固定间隔3来求余数

我们还需要mod的第一个参数,即用什么来除以3呢?



(2)序号是什么?

它扣掉1,就是表格A5:M20的数据区D6:M20各行行号逐行减去第一行(第6行)行号6,例如第15行的序号10-1=15-6

由于数据区相同月份出现的间隔是相同的,都是3,因此用扣1的序号(即行号的差值)除以3看看结果:D21=mod(row(D6:D20)-row(D$6),3)

它将会得到数组{0,1,2,0,1,2...}

至此,由“行号→序号→数组”这个链条是搭好了。

(3)数组的规律

数组中只有0、1和2 三类元素,分别对应着“1月”、“2月”和“3月”。我们可以将数据区进行过滤,条件就设定为序号分别等于0、1和2。为了让公式在向下拉时,自动可变,这三个数用Row转换一下就是row(D1)、row(D2)和row(D3)。

如果表格中有“序号”列,直接在公式中引用;如果没有,就用行号差来计算。

过滤函数filter可以拿出来使唤了——针对“1月”的公式D21=filter(D6:D20,mod(row(D6:D20)-row(D6),3)=row(D1)-1

由于D21公式是在D列,因此filter过滤的列标写成D,实际上换成其他列标也可,但为了一致性,眼睛看得舒服,建议写D,对同一列过滤就行。

至此,由“行号→序号→数组→过滤”这个链条是搭好了。

(4)汇总等统计

在上面的公式中套上SUM函数就完成了。

三、问题解决

消化了上面的分析,结果的给出自然是水到渠成了..

为了防止在拖拉公式时,指定的区域的行号、列标按需变化,将有关要素进行$锁定,公式如下:

D21=SUM(FILTER(D$6:D$20,MOD(ROW(D$6:D$20)-ROW($A$6),3)=ROW(D1)-1))

将这个公式,向下、向右拖拉就可以了。

四、问题回顾

(1)回顾

“行号→序号→数组→过滤→汇总”

隔行统计不算复杂,也不只是这一种方法可以得到答案,但是本例子的解决方案是从固定间隔入手,联想到mode,从{0,1,2}余数有限且间隔相同,联想到filter,对某一列施加过滤条件,最后汇总统计。

(2)拓展

本例是月度间隔固定为3,但公式并不只限于间隔为3的情况,任何固定的间隔1,2,3...均可使用,将公式中的3修改为n即可。

,
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved