解答网友提问:用 subtotal 函数生成的序列号,为什么筛选的时候最后一行始终会出现在那里?这个问题有没有办法解决?
案例:在下图 1 的 A 列用 subtotal 函数设置顺序序号,然后筛选“部门”列,但是筛选的结果中却保留了数据表最后一行的内容,如下图 2 所示。
如何解决这个问题?
解决方案:1. 在 A2 单元格中输入以下公式 --> 下拉复制公式:
=SUBTOTAL(103,$B$2:B2)
公式释义:
subtotal 函数的第一个参数 103 相当于 counta,且忽略隐藏行;
$B$2:B2 区域的第一个单元格要绝对引用,而第二个单元格要相对引用
2. 选中数据表的任意单元格 --> 选择工具栏的“数据”-->“筛选”
3. 从“部门”列中筛选出“产品部”。
但是我们发现数据表的最后一行却没有被筛选器过滤掉。
筛选“销售部”的情形也是一样,最后一行始终杵在那。
我研究了一下,可以用下面这种方法来解决这个问题。
4. 在 A 列数据下方的空单元格中输入任意字符。
此时再筛选,就不会出现刚才的问题了。
5. 如果觉得输入的无关内容很影响观感,那就不用顾忌,删除它好了。
6. 现在再来筛选,最后一行也同样不会显示出来了。
不要问我原因,问就是不知道,subtotal 就是有这个问题,如果用 aggregate 就完全没有这个困扰。
7. 将 A 列的公式替换如下 --> 设置筛选功能:
=AGGREGATE(3,4,$B$2:B2)
公式释义:
3:代表 counta 函数;
4:忽略空值;
$B$2:B2:区域的绝对和相对引用与之前一致
8. 此时筛选“产品部”,丝毫不会有 subtotal 所产生的问题。