我們,讓Excel變簡單
今天介紹一個關于數據篩選的技巧。這個技巧幾乎是一個固定用法,在很多場景中都可以使用這個技巧來解決問題。
我們知道,Excel的數據篩選功能很強大,你可以很方便的進行各種篩選。但是這個篩選有個問題,那就是最多隻能使用兩個條件:
當然,如果使用高級篩選是可以篩選多個條件的記錄的,但是高級篩選又比較複雜。
今天我們介紹的這個方法,使用了SUMPRODUCT函數和SEARCH函數添加了一個輔助列,使得我們可以篩選滿足多個條件的記錄。
1.使用公式添加輔助列
假設我們的數據和需要篩選的條件如下:
我們需要篩選所有至少滿足右邊多個條件之一的那些記錄
我們可以添加一個輔助列:
其中,我們使用了公式:
=SUMPRODUCT(N(NOT(ISERROR(SEARCH($G$3:$G$6,C3)))))
将這個公式填充到整列:
可以看到,所有至少滿足一個右邊條件的記錄,該輔助列的結果是1,因此,我們隻要篩選所有輔助列大于0的記錄就可以了。
這裡我們要篩選大于0,而不是等于1,是因為這個公式實際計算的滿足的條件個數,例如,如果右邊的條件修改一下:
輔助列的結果有很多變成了2,因為他們滿足兩個條件。比如,第三行“健怡可樂CAN”,既包含了“CAN”,又包含了“可樂”。
這裡要注意,如果你删了一個條件,會發現結果有問題了:
我們将右表的最後一個條件删掉,結果發現輔助列的結果都大于0了
這是因為我們的公式寫的是固定的區域(G3:G6),現在G6删掉了内容,該單元格變成了空,而所有的産品列都會包含“空”。
為了避免這種情況,最好的方式就是将右側條件轉換為超級表(Ctrl T):
在删除的時候用右鍵菜單删除表行。這樣就變成了可以根據條件區域自行擴大的篩選了。
在條件區域還可以使用通配符:
2.公式解釋
我們先來看這個嵌套的公式中最裡層的部分:=SEARCH(表1[條件],C3)
這裡的參數“表1[條件]是指右邊的條件區域,C3是産品名稱,
這個公式的結果是個錯誤值。在公式欄中點擊鼠标進入編輯狀态,按F9:
該公式的計算結果展現在公式欄中
可以看到,這個SEARCH公式的結果是一個數組。因為有5個條件,所以數組有5個元素,每個元素代表一個條件的結果,除了第三個是一個數值外,其他的結果都是錯誤值。
再來看外面一層:ISERROR(SEARCH(表1[條件],C3)),同樣在公式欄中按F9看看展開的計算結果:
可以看到,原來錯誤值的結果對應變成TRUE,而原來數值的地方變成了FALSE。
現在我們給這個公式嵌套了一個NOT函數:NOT(ISERROR(SEARCH(表1[條件],C3))),結果變成了:
NOT的作用就是将TRUE變成FALSE,FALSE變成TRUE。
倒數第二層是嵌套一個N函數,這個函數的作用是将一個内容變成數值,如果這個内容是TRUE,結果返回1,如果這個内容是FALSE,結果就返回0。于是,公式:N(NOT(ISERROR(SEARCH(表1[條件],C3))))的結果就是:
最後,SUMPRODUCT的作用就是将這個數組的所有結果加起來。
于是,這個公式就可以告訴我們究竟産品名稱中包含了一個右表中的條件。
今天的分享就到這裡了。相信你在工作中可以用到這個技巧。
END
關注ExcelEasy
關于Excel的一切問題,你都可以在這裡找到答案
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!