引言:本文的練習整理自chandoo.org。多一些練習,想想自己怎麼解決問題,看看别人又是怎解決的,能夠快速提高Excel公式編寫水準。
本次的練習是:計算子清單在清單中出現的次數。對于名為“List”和“Sublist”的兩個清單,計算“Sublist”在“List”中出現的次數。其中,“List”和“Sublist”是可變長度的。
示例資料如下圖1所示,你的清單和子清單的位置可能與圖示不相同,也可以假設兩個清單都在行中,子清單中的項可能會重複,但清單中需要完全比對才能對其進行計數。
圖1
不應該使用任何輔助單元格、中間公式或者VBA。
寫下你的公式。
解決方案
公式1:
輸入數組公式:
=SUM(N(FREQUENCY((List=TRANSPOSE(Sublist))*(ROW(List)-TRANSPOSE(ROW(Sublist))),(List=TRANSPOSE(Sublist))*(ROW(List)-TRANSPOSE(ROW(Sublist))))=ROWS(Sublist)))
傳回:
2
公式2:
輸入數組公式:
=SUMPRODUCT(--(COUNTIF(List,T(OFFSET(A1,SMALL(IF(FREQUENCY(MATCH(Sublist,Sublist,0),MATCH(Sublist,Sublist,0))>=1,ROW(Sublist)),ROW(OFFSET(A
傳回:
2
這兩個公式有點難以了解,好好研究一下,有什麼發現,可以在下面留言。