今晚在学员群里看到一个很有挑战性的问题
大概的数据案例如下
第一想法是使用INDIRECT函数,例如第一个合并单元格,可以用下面得出答案
=INDIRECT("C7")-INDIRECT("B2"...)
据此反推 我们要得到每一个合并单元格的开始行行号以及结束行行号
首先我们用ROW函数列出行号
=ROW()
接下来如何获得每个单元格最开始的行号(例如2)和最末尾的行号(例如7)呢,这需要根据合并单元格数量进行分组...就是把内容(公式,数值等)放在合并单元格的左上角,其他单元格都变成空值
根据这个实质,我们可以对单元格进行统计分组,所以有了辅助列2,需要巧妙的用COUNTA函数
因为合并单元格之间都是空,所以会自动统计合并单元格数量...这里有个小技巧:注意最开始的单元格是固定的,这样下拉会使范围越来越大
好了,我们根据这两列可以求到每个合并单元格最开始的行号和列号了
最开始的行号=第一个合并单元格分组号
最末尾的行号=第一个合并单元格分组号...+组员数-1
使用MATCH函数找到第一个分组号,返回对应的辅助列1的内容,就是合并单元格最开始的行号
在第一个思路的基础上,加上分组组员数量,减1,即得到末尾行号
回到最开始的思路
=INDIRECT