Excel 函式學習記錄
1. SUMPRODUCT 排名
排名規則: 允許並列排名,排名是連續的 --中國式排名
=SUMPRODUCT((B$2:B$9>B2)*(1/(COUNTIF(B$2:B$9,B$2:B$9))))+1
分解:
1. B$2:B$9>B2 -->boolean 陣列{FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE},在B2-B9 單元格中有大於B2的為TRUE,否則為FALSE;
2. B$2:B$9>B5 --> {TRUE;TRUE;TRUE;FALSE;FALSE;TRUE;TRUE;FALSE}
countif 條件統計函式,這個地方跟正常使用有區別,=COUNTIF(B2:B9,">80") 大於80的人數。
3. COUNTIF(B$2:B$9,B$2:B$9) --> COUNTIF({100;100;100;13.5;5;76;23;0},{100;100;100;13.5;5;76;23;0}),第二個引數是陣列,
針對第二個陣列中每個資料在第一個引數出現的次數,也是應為SUMPRODUCT引數是陣列,所以這個函式返回的型別是陣列。
所以返回值是{3;3;3;1;1;1;1;1},100 出現3次,其他都是一次。
4. 1/(COUNTIF(B$2:B$9,B$2:B$9))
5. SUMPRODUCT((B$2:B$9>B5)*(1/(COUNTIF(B$2:B$9,B$2:B$9))))-------針對B5
=SUMPRODUCT({TRUE;TRUE;TRUE;FALSE;FALSE;TRUE;TRUE;FALSE}*{1/3,1/3,1/3,1,1,1,1,1})+1
=1(TRUE)*1/3+1(TRUE)1/3+1(TRUE)1/3+0(FALSE)*1+0(FALSE)*1+1(TRUE)*1+1(TRUE)*1+0(FALSE)*1+1
=4 --->排名4
總結:
這裡用到SUMPRODUCT(array1,array2,array3),陣列對應位置值乘積和,只有一個數組引數時,直接累加所有值。
COUNTIF(range,criteria)按照條件計數,當criteria 為陣列時,其結果也是陣列。