跳到主要內容跳到頁尾

亂數與序列函式:RAND、RANDBETWEEN、RANDARRAY、SEQUENCE

5 分鐘閱讀Lv.2 中級摘要與日期

RAND、RANDBETWEEN、RANDARRAY 產生亂數,SEQUENCE 產生等差數列。附語法、抽籤與洗牌的例子,以及亂數每次重算都會變、要用貼上值固定的做法。

發布 更新

文章目錄

今天要整理四個會「憑空生出數字」的函式:RAND、RANDBETWEEN、RANDARRAY 負責亂數,SEQUENCE 負責 1、2、3 這種規律的數列。

我最常用的情境是抽籤、分組前先洗牌,還有想快速生一串編號或日期序列的時候。亂數類的函式有一個大家都會踩到的特性:結果每次都會變,所以這篇會專門講怎麼把它固定下來。

怎麼選

想要什麼用哪個一次幾格
0 到 1 之間的小數RAND1 格
兩個整數之間的整數,頭尾都有可能RANDBETWEEN1 格
一整塊亂數小數RANDARRAY指定列數與欄數
1、2、3⋯⋯或 10、8、6⋯⋯SEQUENCE指定列數與欄數

亂數每次都會變

先講最重要的事。RAND 跟 RANDBETWEEN 算出來的值,會在試算表重新計算的時候換一組新的。官方說明中提到會重新計算的函式,舉的例子是 TODAY、NOW、RAND、RANDBETWEEN,我不把它寫成完整清單。

實際上的感覺是:你改了任何一個儲存格、或是重新開啟檔案,亂數就換掉了(這是預設的自動計算;如果在「檔案 > 設定 > 計算」改成手動計算,要按「計算」才會重算,亂數不會自己變)。所以文章裡我沒辦法告訴你「會得到某某數字」,只能寫它的範圍,你自己的結果會跟我的不一樣,這是正常的。

如果抽出來的結果要留著(抽籤結果、分組名單),就要把公式換成固定的值:

  1. 選取那些含亂數公式的儲存格,複製(Windows 按 Ctrl+C,Mac 按 Cmd+C)。
  2. 在同一個位置貼上「值」:Windows 按 Ctrl+Shift+V,Mac 按 Cmd+Shift+V(在 Chrome 上)。

如果用的是 RANDARRAY 或下面的 SORT 洗牌這類展開成多格的公式,公式其實只在左上角那一格,要選取整塊展開的結果(例如 A2:A6)再貼上值,只選左上角那格的話,其餘展開的格子會消失。

貼上之後格子裡就是普通的數字,不會再跟著變了。公式就沒了,想要重抽的話得再寫一次,這個取捨要先想好。

亂數

RAND

傳回 0 到 1 之間的亂數,含 0 但不含 1。

語法:

沒有參數,括號要留著。

Google 試算表公式
fx

產生 0 到 1 之間的亂數

=RAND()

每次的結果都不同,例如 0.4821⋯⋯,我們只能確定它大於等於 0、小於 1。想要別的範圍,乘上範圍大小再加起點: 會落在 5 到 15 之間(含 5,不含 15)。

RANDBETWEEN

傳回兩個值之間的整數亂數,頭尾都包含在內。

語法:

  • 最小值、最大值:都是整數,且都有可能被抽到。
Google 試算表公式
fx

擲一顆骰子

=RANDBETWEEN(1, 6)

結果會是 1、2、3、4、5、6 其中一個,每個機率一樣。

抽籤是我最常拿它做的事。A2:A6 放 5 個品項,要隨機抽出一個:

Google 試算表公式
fx

從 A2:A6 隨機抽一個品項

=INDEX(A2:A6, RANDBETWEEN(1, ROWS(A2:A6)))

ROWS 會算出範圍有幾列,這樣之後品項增減,只要範圍跟著改就好,不用去改 5。ROWS 在 列與欄函式 有說明。

RANDARRAY

一次產生一整塊 0 到 1 之間的亂數。

語法:

  • 列數、欄數:想要的陣列大小。
Google 試算表公式
fx

產生 3 列 2 欄的亂數

=RANDARRAY(3, 2)

公式會從輸入的格子往下、往右展開成 3 × 2 共 6 格,每格都是 0 到 1 之間。展開的格子要是空的,不然會出現 #REF!。Excel 2021、2024 與 365 也有 RANDARRAY,而且多了最小值、最大值與是否只傳回整數的參數;Google 試算表只有列數與欄數。

RANDARRAY 最好用的地方是洗牌。想把 A2:A6 的順序打亂,可以讓每個品項配一個亂數,再依亂數排序(公式要放在 A2:A6 以外的空白處,例如 C2,否則會變成循環參照):

Google 試算表公式
fx

依亂數排序,把 A2:A6 隨機洗牌

=SORT(A2:A6, RANDARRAY(ROWS(A2:A6)), TRUE)

每次重新計算,順序都會換一次,每個品項只會出現一次。分組、排值日表的時候很好用,記得洗完要貼上值。

序列

SEQUENCE

產生規律的數列。

語法:

  • 列數:要幾列。
  • 欄數:選填,要幾欄,不填是 1。
  • 起始值:選填,不填是 1。
  • 間隔:選填,每個數字之間差多少,不填是 1。
Google 試算表公式
fx

產生 1 到 5

=SEQUENCE(5)

會往下展開 1、2、3、4、5。

三個選填都用上的例子:

Google 試算表公式
fx

從 10 開始,每次減 2,共 5 列

=SEQUENCE(5, 1, 10, -2)

結果是 10、8、6、4、2。間隔填負數就是倒數。

欄數大於 1 時,是先橫向填滿一列,再換下一列:

Google 試算表公式
fx

3 列 4 欄,從 1 開始

=SEQUENCE(3, 4)
列EFGH
11234
25678
39101112

我個人最常用 SEQUENCE 來生流水號,比手動拉填滿控制點方便,之後資料增減也只要改一個數字。

亂數結果怎麼檢查

亂數的值每次不同,所以我檢查的是「性質」:數量有沒有對、有沒有落在範圍內。

Google 試算表公式
fx

檢查 E1:F3 的亂數數量與範圍

=AND(COUNT(E1:F3)=6, MIN(E1:F3)>=0, MAX(E1:F3)<1)

公式放在別處,E1:F3 放 的結果,應該會得到 TRUE。不管重新計算幾次,這個答案都不會變。

來試著用用看吧!

我是喜特先生,Mr. Sheet,我們下個教學見!

分享:
#亂數#序列#RAND#SEQUENCE
喜特先生 Mr. Sheet

喜特先生 Mr. Sheet

數據分析師/商業分析師

八年工作經驗,跨不同業界解決數據需求。做過的案例都整理在作品集。

接下來可以

相關文章

查看所有文章

留言討論

共 0 則留言

訂閱電子報,新文章上線就通知你

免費,隨時可取消。

送出即表示同意服務條款與隱私權政策。