如下圖所示的工作表,使用公式來統計單元格區域C2:C6中沒有出現在單元格區域A2:A9中的數據的數量。
也就是說,單元格區域C2:C6中凡是沒有出現在單元格區域A2:A9中的數據,都是無效數據。從工作表中可以明顯看出,單元格區域C2:C6中的“SX006”沒有出現在單元格區域A2:A9中,因此“SX006”為無效數據,即單元格區域C2:C6中的無效數據為1。
如何使用公式來統計呢?
先不看答案,自已動手試一試。
公式思路
在單元格區域A2:A9中查找單元格區域C2:C6中的每個值,統計沒有找到的值的數量。
公式解析
在單元格E1中輸入下面的數組公式:
=SUM(1*ISNA(MATCH(C2:C6,A2:A9,0)))
其值為1,表明單元格區域C2:C6中沒有出現在單元格區域A2:A9中的數據數為1。如下圖所示。
公式中,MATCH函數在單元格區域A2:A9中依次查找C2:C6中的值,返回各個值在A2:A9中的位置,如果沒有找到則返回#N/A,結果為{2;6;2;8;#N/A},將其作為ISNA函數的參數,得到結果{FALSE;FALSE;FALSE;FALSE;TRUE},然后與1相乘,將其轉換為{0;0;0;0;1},作為SUM函數的參數得到結果1。
ISNA函數檢測一個值是否為#N/A,返回TRUE或FALSE。檢測值可以是一個單元格、公式,或者是一個單元格、公式或數值的名稱。
小結
使用1與布爾值相乘,將布爾值轉換為0或1。
本例具有一定的實用性,即可以用于判斷輸入的數據是否是數據庫已經規定的數據。例如,代表設備編碼庫的單元格區域A2:A9是已經規定的合法數據,而單元格區域C2:C6是實際工作中輸入的數據,那么可以用這個公式來判斷實際輸入的數據是否是已規定的合法數據。
可以使用名稱來替換單元格區域,使公式更靈活。