如果Excel工作表包含序號列,在進行自動篩選后,由于某些行被隱藏,序號會變得不連續。要讓篩選后的序號還是從“1”開始的連續數字,可以用下面的公式自動生成序號,假如第一行為標題行,序號在第一列。
篩選前,在A2中輸入公式:
=SUBTOTAL(3,$B$1:B1)
或:
=SUBTOTAL(103,$B$1:B2)
然后拖動或雙擊填充柄向下填充公式,可以看到在篩選前后公式都在A列生成從“1”開始的連續數字。
說明:SUBTOTAL函數忽略篩選后所有隱藏的行,其第一個參數為“3”或“103”,表示用COUNTA函數進行計算,如果為“3”,則僅對篩選隱藏的行適用,如果為“103”,則對用“隱藏行”命令或篩選命令隱藏的行都適用。由于引用了第二列區域,該公式要求第二列不包含空單元格。
在Excel 2010中,還可以用新增的AGGREGATE函數,其作用類似于SUBTOTAL函數,但其功能更強。A列的公式可作如下修改,以A2單元格為例:
=AGGREGATE(3,5,$A$1:A1)
其第二個參數為“5”,表示僅忽略隱藏行,而不忽略嵌套AGGREGATE函數(不同于SUBTOTAL函數),這樣此處就可以引用同列中公式的結果,而與其他列無關。如A6單元格中的公式為:
=AGGREGATE(3,5,$A$1:A5)
雖然A2:A5區域的公式中包含了AGGREGATE函數,但都沒有被忽略,因而能夠返回正確的結果。