1. 程式人生 > >Excel 函式學習記錄

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))

-->求導 {1/3,1/3,1/3,1,1,1,1,1}


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 為陣列時,其結果也是陣列。