編按: 當Excel工作表數據上萬行,10萬行,三四十萬行后,可能運行緩慢、卡頓。尤其是對含有大量公式的表格進行篩選操作,可能一次篩選就需要等待十分鐘以上。小窩分享兩種避免運行卡頓的大數據篩選方法。 客服老師轉來一份新朋友的求助:工作表有近10萬行數據,每次篩選都卡得要死,怎么解決?(遺憾的是,因為有事耽擱沒有及時處理,在此,說聲抱歉。)或許其他伙伴也可能遇到此類問題,小窩用共92993行的兩列數據在此分享一點經驗。A列是客戶編碼, B列是物料代碼,整個數據按客戶編碼做了排序?,F在需要篩選出每個客戶第一次出現時的數據。C2中填入公式“=MATCH(A2,A:A)=ROW(A2)”并向下填充,得到一列TRUE、FALSE組成的數據。TRUE代表用戶首次出現。篩選C列中所有TRUE值,得到客戶首次出現的數據。當前C2:C92993中每個單元格中的公式都引用了超100萬個數據(整個A列),合計引用超900萬個數據,因此計算極其耗時。小窩用自己的電腦測試了一下,C列整個計算需要186.49秒。第一種:不改變公式,采用手動計算加Filter函數進行篩選。(1)在“公式”選項卡的“計算”組中,設置為“計算選項”為手動,避免如增刪數據等操作觸發(fā)工作表重新計算。(2)在E2中輸入“=FILTER(A2:B92993, C2:C92993)”即可。FILTER函數進行篩選時不會觸發(fā)工作表重新計算,FILTER公式只引用了20多萬個數據,經測試耗時只有0.008秒。第二種:修改C列公式降低單元格引用量后繼續(xù)用篩選功能進行篩選。(1)計算選項保持“自動”不變。在C2中輸入公式“=IF(A2<>A1,1,0)”并向下填充。(2)正常執(zhí)行“數據”選項卡中的“篩選”操作篩選“1”即可。C列每個公式只引用2個數據,共引用不到20萬個數據。經測試,耗時只有0.026秒。兩種方法,推薦大家采用第二種,從根本上減少用時。第一種方法有很多不足,只要觸發(fā)重新計算就會很耗時。(1)優(yōu)化公式,降低單元格引用量是大數據表格提高工作表速度的重要方法。(2)如果不能優(yōu)化公式,也可啟用手動計算,減少運算?;蛘咿D用其他工具如PQ進行數據處理。
|