在 Excel 中產生 yes 或 no 而不使用易變的 RAND 公式,最乾淨的做法是透過一個使用 Web Crypto 的瀏覽器工具來產生每個答案,然後把產生的文字以純字串形式貼到工作表中。Excel 的 =RAND() 和 =RANDBETWEEN() 函數都是易變的——只要活頁簿中任何儲存格有變動,它們就會重新計算,這代表今天寫入的「Yes」可能在你下週開啟檔案的那一刻就翻轉成「No」。對於需要稽核的工作表、隨機抽樣,或任何需要答案固定不變的場景,在 Excel 之外產生一個穩定的文字值會安全得多。Yes or No 產生器會從 Crypto.getRandomValues 取得一個全新的 32 位元整數,將偶數對應到 Yes、奇數對應到 No,並以可複製的標籤形式保留答案,讓你直接貼進儲存格。因為 2 可以整除 2^32,每一邊都恰好分配到 2,147,483,648 個來源值,因此兩種結果在統計上不會有任何偏誤。

creating yes or no in excel
在 Excel 中不使用易變的 RAND 來產生 Yes 或 No

為什麼 Excel 以 RAND 為基礎的 Yes/No 方法會失效

Excel 內建取得隨機 Yes 或 No 的方法眾所皆知。只要在某個儲存格輸入 =IF(RAND()>0.5,"Yes","No") 並向下複製到一整欄,幾秒鐘就能得到一份隨機清單。問題在於 RAND() 是易變的——只要活頁簿有任何變動就會重新計算,即使在幾百個儲存格之外做小幅編輯,都可能翻轉你的答案。=CHOOSE(RANDBETWEEN(1,2),"Yes","No") 也有同樣的情況,因為 RANDBETWEEN() 適用相同的易變規則。

幾個日常動作就會觸發完整重新計算:

  • 開啟或關閉檔案
  • 按下 F9、Ctrl+Alt+F9,或在任何儲存格上按 Delete
  • 對工作表進行排序、篩選或套用自動篩選
  • 在活頁簿中任何位置新增或刪除列與欄
  • 將數值、公式甚至註解貼到無關的儲存格

對一次性抽樣作業來說,這通常不是問題。但對用來記錄決策、擷取問卷快照,或餵給已發布報告的工作表,這種易變性是致命的——你昨天看到的值,不一定是你明天會看到的值。標準的變通方法是複製隨機欄位,然後使用選擇性貼上 > 值,將文字凍結。但一旦凍結,就失去了重新產生的能力,也難以證明來源是無偏誤的。

在 Excel 中產生 yes 或 no 的常見做法

在這個主題的教學文章中,最常出現四種 Excel 原生技巧,另外還有一種借助瀏覽器、完全避開易變性的做法。下表摘要了它們在實際活頁簿中的表現。

技巧 執行位置 會重新計算嗎? 最適用於
資料驗證下拉式選單(Yes,No 清單) Excel 跨多列的一致手動輸入
表單控制項核取方塊 + 連結 IF Excel 切換式追蹤器與狀態板
=IF(RAND()>0.5,"Yes","No") Excel 是(易變) 打算立即凍結的快速隨機抽樣
=CHOOSE(RANDBETWEEN(1,2),"Yes","No") Excel 是(易變) 1/2 分割的快速隨機清單
Yes or No 產生器 + 貼成文字 瀏覽器到 Excel 具備可追溯隨機來源、穩定且友善稽核的結果

前四列完全留在 Excel 內。最後一列刻意在 Excel 外執行,讓結果不會飄移。如果你需要一份能歷經檔案重新開啟、傳給同事,或反覆篩選的隨機清單,使用外部產生器再搭配選擇性貼上 > 值,可以獲得相同的最終狀態,而且完全沒有易變性的風險。如果想深入了解三種純公式路徑,這份關於在 Excel 中用三種公式方法產生 Yes/No的指南會逐一說明其中的權衡。

使用獨立產生器在 Excel 中產生 yes 或 no 的步驟

  1. 在目前的瀏覽器分頁中開啟 Yes or No 產生器。不需要安裝、帳號、網路上傳或剪貼簿權限。
  2. 選擇性地在問題方塊中輸入一個不超過 1,000 個 UTF-16 程式碼單位的低風險問題。如果你只想要一個不附加任何文字的 Yes 或 No 標籤,可以留空。
  3. 點擊 Generate 按鈕,從 Crypto.getRandomValues 抽取一個全新的 32 位元整數。工具會顯示目前的答案,並在一個最多 20 筆、由新到舊的歷史紀錄中新增一筆紀錄。
  4. 在畫面上選取答案文字,使用平常的鍵盤快速鍵或工具提供的任何複製控制項來複製。
  5. 在 Excel 中,點擊目的儲存格,然後按下 Ctrl/Cmd + V 貼上文字。該儲存格現在包含一個穩定的字串,例如 Yes 或 No。
  6. 如果你需要很多列,請重複步驟 3 到 5,直到累積足夠的筆數。每次點擊都是獨立的抽取——問題文字、歷史紀錄、時間以及先前的答案,都不會影響下一次的對應結果。
  7. 完成該欄後,將其選取、複製,然後使用選擇性貼上 > 值,將文字以靜態字串形式鎖定。
  8. 完成後若不希望最後 20 筆抽取紀錄顯示在分頁中,請清除瀏覽器歷史紀錄。

因為每次貼上的都是純文字,所以排序、篩選、條件式格式設定、COUNTIF 和樞紐分析表都能正常運作。你可以執行 =COUNTIF(A:A,"Yes") 來統計 Yes 的數量,執行 =COUNTIF(A:A,"No") 來統計 No 的數量,這些計數除非你手動編輯儲存格,否則不會改變。以儲存格文字為基礎的條件式格式規則——例如 Yes 為綠色、No 為紅色——也會保持穩定。

產生器如何達成精準的 50/50 分配

工具內部的對應邏輯刻意保持簡單。Crypto.getRandomValues 會填滿一個長度為一的 Uint32Array,產生一個介於 0 到 4,294,967,295(含)之間的數字——也就是完整的 2^32 範圍。對於二元結果,工具將偶數對應到 Yes,將奇數對應到 No。因為在這個範圍內,剛好有一半的整數是偶數、一半是奇數,所以每一邊都恰好被分配 2^31 = 2,147,483,648 個來源值。

之所以能夠在不進行拒絕抽樣的情況下達成,正是因為 2 能夠整除 2^32。對於無法整除的結果數——三個選項、五個選項等——工具否則就需要丟棄部分 Uint32 抽取值,以避免讓較小的索引產生偏誤。二元的情況剛好是最乾淨的,即使在一般 Yes/No 產生的過程中從不會觸發,實作中仍然在三個結果的邊界條件下,以確定性測試涵蓋並演練了這條拒絕路徑。

輸入來源記載於 W3C Web Cryptography 規格以及 MDN 對於 Crypto.getRandomValues 的參考資料,兩者共同說明了瀏覽器如何以密碼學強度高的隨機整數,原地填入一個型別陣列。瀏覽器在底層選擇的確切演算法,工具並不會公開;契約保證的是介面,而不是內部的產生器。如果 Web Crypto 缺失、被封鎖或拋出例外,工具會回報明確的失敗,並且不會產生任何答案,而不是默默退而求其次使用 Math.random。

解讀歷史紀錄並避免連續偏誤

每次點擊後,最新的答案會出現在最上方,歷史清單最深可達 20 筆。超過第 20 次產生後,最舊的一筆會被捨棄,一個累計計數器會明確告訴你先前已經被丟棄的抽取次數。歷史紀錄純粹是說明性質——它不會以任何方式影響未來的機率。連續看到四個 Yes 並不代表下一次抽取「該出現」No;獨立的 50/50 結果自然會產生連續結果,假裝不會反而會破壞無偏誤的契約。

這件事很重要,因為 Excel 使用者有時會把產生器的輸出複製到一份已經含有平衡欄位或目標比例的工作表。在 Excel 中強制維持比例的正確方式,是在產生之後再進行篩選或選取,而不是一直點下去直到歷史紀錄看起來平衡。一段六連抽的 Yes、Yes、Yes、Yes、Yes、Yes 並不常見(大約 64 分之 1),卻完全合法,只要來源值恰好對齊,產生器就會產生這個序列。

不應將休閒用產生器用於 Excel 決策的場合

50/50 提示適合用來選電影、在兩種零食之間打破僵局,或是為練習用的資料集植入種子。但它不適合用於任何涉及金錢、健康、法律風險、資格認定、僱用、合規、安全或資訊安全的決策。產生器的契約寫得很明確:Web Crypto 的品質並不會驗證可用的選項、衡量後果,或提供專業判斷。一個數學上公平的答案,當背後的問題並非休閒性質時,仍然可能不適當。

如果你要把決策記錄到 Excel,事後需要能夠舉證——例如驅動已發布報告的問卷回應、研究中的隨機分組、具備真實籌碼的抽獎式活動——請另外加上一層稽核機制。請記錄時間戳記、來源工具、方法版本以及任何同意紀錄。工具本身依設計不會儲存這些資訊,這項隱私保證正是它的優勢之一。這也是為什麼稽核中繼資料的責任落在你的工作表上,而不是落在產生器上。

如果你正在權衡各種選項,在 Excel 中產生隨機字母:完整指南對此有詳細說明。