
说起合并单元格,表哥表姐差不多都有一肚子牢骚,不能筛选,不好填充。尤其是一堆不规则的合并单元格,更难操作。
磊哥曾经发过一篇《玩转合并单元格》,破解了筛选和填充、用公式求和及算平均值。针对大小不一的不规则合并单元格,今天再说点不一样的。

01 填充序号
要按部门顺序来填写序号,我们先看下表格特点。“第二营业部”出现了,是1;再出现个“第一营业部”,是2——也就是说,B2及以下,出现一段字符,算1,如此累加。
想起什么了,是不是想到“累计”的计算方式了?没错,就是绝对引用和相对引用的组合应用。
方法1:COUNTA计数法
选择A列空白区域A2:A16,输入=COUNTA(B$2:B2),注意绝对引用符号$的位置;然后按Ctrl+回车键完成输入,序号出来了。此时再逐个点一下单元格,发现A7变成了COUNTA(B$2:B7),A11变成了COUNTA(B$2:B11),COUNTA(B$2:B2)里面B$2意思是绝对引用锁定了不让变化,B2是相对引用会根据相对位置的变化自己调整。

方法2:MAX最大值法
因为MAX只能对数字进行计算,所以A1是可以忽略的,找到本行以上的所有行的最大值,再+1,就是本行的序号。
选择A2:A16,输入=MAX(A$1:A1)+1,别忘了按Ctrl+回车键完成输入。

02 求和
这个公式不太好写,那就再换个思路/角度。想到小学知识,A+B+C+D+E=SUM,那么A=SUM-(B+C+D+E)。也就是说,第二营业部的合计值是总计值减去下面所有行的合计值。豁然开朗。
选中C2:C16,输入=SUM(E2:E16)-SUM(C3:C16),然后同样按Ctrl+回车键完成输入(下同,不再赘述)。

这里要解释一下:为什么减去的是C列合计值,而且是从C3开始?
由于是不规则合并单元格,每个部门的首行位置都没有规律,相对位置不好把握。如果直接在E列做减法,减去的首行选哪一个呢,E7?那回头看下C7的结果是什么,点开公式发现减去的首行变成了E12而不是E11,此路不通。所以直接减C列自己下方的值比较妥当,而且得益于被合并单元格都是空的相当于0,所以减去的首行直接选C3,多减个0没有任何影响。参数区域变的超出16行的不用担心,因为下面都是0,也不影响计算。

为了进一步解释,看一下这个图。
//对于合并单元格,选中C2:C16,就只是选中了C2、C7、C11、C14、C16这几个单元格而已(这点请务必理解),所以新插入一列,模拟一下操作,便于理解。

明白了这一点,求每个营业部的人数(即计数),也就好办了:
C2=COUNTA(D2:D16)-SUM(C3:C16)
03 填充指定数据
领导忽然让加上每个部门上季度的业绩排名,参考区放在J1:K6区域。为了降低学习难度,先假定J列部门排序与现在的表排序一致。
刚才我们已经求出序号了,忽然发现部门序号+1=参考区部门所在行号,那就好办啦。
方法1:INDEX索引法
INDEX用法:INDEX(目标区域,行号,列号)
据此,直接写C2=INDEX(K:K,A2+1,1),意思是在K列找到并引用第2行第1列的单元格内容。

方法2:OFFSET偏移法
OFFSET最常见用法:OFFSET(原点位置,移动的行数,移动的列数,引用区域的高度即几行,引用区域的高度即几列)。后面2个参数忽略默认就是1,也就是只偏移1个单元格;前3个参数必须有,不写数字也得打逗号(默认0)。
C2=OFFSET($K$1,A2,)意思是从K1向下移动1行(不移动列了),K1被绝对引用,第2参数根据序号变化导致相应移动。

理解了上面的问题,可以考虑实际情况了。本案例我们已经把参考区部门排序弄成和表格区域一致了,所以直接用序号即可计算,实际工作中多半是按排名排序的,所以直接用序号是不现实的。
解决思路是找到部门在参考区对应的行号发给INDEX或OFFSET用就好了。而找位置就容易想到MATCH函数了。
先看看用法,C2=MATCH(B2,M:M,0),意思是在M列找B2“第二营业部”的位置,方法是0(精确匹配)。得到结果4,即第4行。

对于OFFSET函数来说,从N1单元格向下移动3行即可(算出来的行号4-N1的行号1),所以:
C2=OFFSET($N$1,MATCH(B2,M:M,0)-1,)
