回覆列表
  • 1 # 使用者6449596185408

    經指正修改了一下,剛剛說錯了RANK的意思,雖然使用RAND()只生成240個數字,很小機率會發生重複,但還是有可能的,所以RANK函式使用錯誤,以下為正確:

    很簡單,利用RAND+RANK函式可以生成,直接RANDBETWEEN顯然是不對的,這樣會有重複的出現。

    共兩步,方法如下:

    1、在單元格A2中輸入=RAND(),生成0~1之間的隨機數,向下拉自動填充240個,這裡面會有重複的;

    2、在單元格B2中輸入=RANK(A2,$A:$A)+COUNTIF(A$2:A2,A2)-1,向下拉自動填充100個,這100個就是1~240之間的不重複的隨機數。

    原理是什麼呢?(以下經過修改)

    =RAND()可以生成0~1之間任意的隨機數,可能會重複

    RANK函式的公式為:RANK(物件,絕對引用範圍,0/1),0為降序可省略,1為升序。RANK的排序如果遇到相同的數值,會將排序的序號顯示為相同,同時,比相同的數值靠後統計的數值排序序號,會預設加上重複的次數,例如:

    圖中可見45的排序都為3,而且58的排序並不是4,而是5,這時候可以用COUNTIF來統計RANK函式的排好的序列號,進行出現次數的統計

    =COUNTIF(C$1:C1,C1),“$”的意思是下拉時,統計範圍只預設為第一行到當前行,這樣就統計出了45當前出現的次數。

    最後用RANK排序+COUNTIF統計的出現次數,就相當於把“0~240內的數值都加了1,重複的那部分數值都加了對應的出現次數”,因為RANK把比重複數值更靠後的數值其排序序號加上了重複次數,所以更靠後的排序序號正好比重複數值大了1

    最後統計都減1就可以了,所以第二步的公式為=RANK(A2,$A:$A,1)+COUNTIF(A$2:A2,A2)-1

  • 中秋節和大豐收的關聯?
  • 羊京皮的鞋怎麼清理?