2013年4月27日 星期六

Excel-計算儲存格範圍中含有特定字元的儲存格個數(ISERROR,SEARCH)

在 Excel 中如果想要在一個儲存格範圍中,計算含有特定字元的儲存格個數,該如何處理?

例如:在下圖中的各報頭條新聞中,每一個頭條新聞儲存格的最後會有新聞來源,如何計算各個新聞來源的數量呢?

【公式輸入】

儲存格D2:{=SUM(NOT(ISERROR(SEARCH(C2,$A$2:$A$30)))*1)}

這是陣列公式,輸入完成要按 Ctrl+Shift+Enter 鍵。

複製儲存格D2,貼至儲存格D2:D4。

 

【原理解釋】

SEARCH(C2,$A$2:$A$30):在儲存格範圍陣列中,以 SEARCH 函數找尋儲存格C2內容,如果含有該字串,則傳回找到的字串所在的位置;如果找不到則傳回錯誤值訊息 #VALUE。(即沒有傳回錯誤訊息者為有包含指定的字串)

ISERROR(SEARCH(C2,$A$2:$A$30)):利用 ISERROR 函數判斷 SEARCH 函數的結果是否有錯誤,並傳回 True/False 的陣列。

NOT(ISERROR(SEARCH(C2,$A$2:$A$30))):利用 NOT 函數將上式中的 True/False 結果反相為 Fasle/True。(將有包含指定字串結果傳回 True,沒有包含指定字串結果傳回 False。)

NOT(ISERROR(SEARCH(C2,$A$2:$A$30)))*1:藉由乘以 1 的運算,可以將 True 轉換成 1,而 False 轉換成 0。

最後以 SUM 函數統計 1 的個數,即為儲存格範圍中有包含指定字串的個數。

沒有留言:

張貼留言

檢視其他文章

好康東東