你可以建立 Excel 的 Yes 或 No 而不需要撰寫任何試算表公式,只要在瀏覽器分頁中開啟 Yes or No Generator、在 1,000 個 UTF-16 程式碼單元以下輸入選擇性問題,然後按下 generate 按鈕即可。這個工具會從瀏覽器的 Crypto.getRandomValues API 抽取一個 Uint32 值,產生一個隨性的 50/50 答案,並將偶數對應到 Yes、奇數對應到 No。由於整個工作流程都在本機執行,你的問題、產生的答案以及執行中的歷史紀錄永遠不會離開目前的分頁,也不會上傳到任何帳號、網路服務或遠端儲存空間。當 Web Crypto 遺失或被封鎖時,這個產生器也拒絕靜默地退而使用 Math.random,這讓顯示的方法說明與實際的隨機來源保持一致。對於搜尋「create yes or no on Excel」的讀者來說,如果你想要在處理試算表時快速做出二元決策,而不是想要永久性的試算表功能,這種方法就能在不設定資料驗證、建立下拉式選單或在活頁簿中維護隨機值公式的情況下提供答案。這個工具也會保留最新的優先歷史紀錄,記錄最近 20 次抽取的結果,因此你可以在重複提示時比較結果,而不會失去脈絡。

為什麼在隨性的 Yes 或 No 場合跳過 Excel
「create yes or no on Excel」這個說法可能代表兩種不同的意思,而將它們混為一談,是人們把一個簡單決策過度工程化最常見的原因。一種意思是在試算表內建立一個 Yes/No 欄位:下拉式選單欄、核取方塊清單,或由公式驅動的儲存格。另一種是在使用 Excel 時產生一個 Yes/No 答案,而試算表只是周圍的環境。Excel 原生的方法,例如 CHOOSE(RANDBETWEEN(1,2))、資料驗證清單,以及 IF(RAND()<0.5,"Yes","No"),各自都有取捨,當目標只是一次性的提示時,這些取捨就很重要。它們需要編輯活頁簿、在每次重新計算時都會重新產生,而且依賴 Excel 內建的 RNG 而非密碼學上強健的來源。
對於像選擇午餐地點、決定先清理哪一欄,或是決定是否休息一下喝杯咖啡這種隨性的決策,這些設定比問題本身還要繁重。基於瀏覽器的 Yes or No Generator 比較快,因為它不需要編輯活頁簿、不需要命名範圍,也不需要複製貼上公式。它也存在於獨立的分頁中,因此你可以一邊看著試算表,一邊在旁邊顯示提示與歷史紀錄。如果你想要一個不會在試算表上留下任何痕跡的無偏 50/50 答案,跳過公式路徑是合理的。
Yes or No Generator 如何產生 50/50 的答案
這個產生器的隨機性來自單一來源:瀏覽器的 Crypto.getRandomValues 方法,這是 W3C Web Cryptography 規格的一部分。當你按下 Generate 時,這個工具會要求瀏覽器填入一個元素的 Uint32Array,這是一種存放一個無號 32 位元整數的型別化陣列。該整數可以取從 0 到 4,294,967,295 之間的任何值,涵蓋整個 2^32 範圍。
對於兩種結果,映射器做了一件巧妙的事。它會計算不超過 2^32 的最大 2 的倍數。由於 2^32 可以被 2 整除,該上限等於完整的 Uint32 範圍。因此每個有效的 Uint32 值在第一次抽取時就會被接受,所以在一般的二元用途下,不會拒絕任何值,也不需要重試。接著映射器會套用 modulo 2:偶數變成 Yes,奇數變成 No。
這個分配是完全平衡的。剛好一半的來源值,也就是 2^31 或 2,147,483,648 個不同的值,會對應到 Yes,另一半則對應到 No。契約在除法不平均的三種結果邊界明確驗證了拒絕路徑,但對於 Yes 和 No 來說,這個邊界無關緊要,因為每次抽取都會產生可用的答案。
| 屬性 | 值 |
|---|---|
| 隨機來源 | 瀏覽器 Crypto.getRandomValues (Uint32) |
| 來源範圍 | 0 到 4,294,967,295 (完整 2^32 範圍) |
| 結果數 | 2 (Yes, No) |
| 接受上限 | 2^32 (無需拒絕) |
| 對應到 Yes 的來源值 | 2^31 (每個偶數 Uint32) |
| 對應到 No 的來源值 | 2^31 (每個奇數 Uint32) |
| 一般使用下的重試行為 | 無 — 每次抽取都會被接受 |
| Web Crypto 失敗時的退路 | 無 — 明確錯誤,不使用 Math.random |
三個步驟產生 Yes 或 No
- 在瀏覽器分頁中開啟 Yes or No Generator。介面會顯示一個選擇性問題欄位、一個 Generate 按鈕,以及一個空的歷史紀錄面板。
- 如果你想為答案附加標籤,請在欄位中輸入你的低風險問題。請保持在 1,000 個 UTF-16 程式碼單元以下,或將欄位留空以完全跳過標籤。
- 點擊 Generate。目前的答案會立即出現。如果 Web Crypto 無法使用,會顯示明確的錯誤訊息,且不會記錄任何答案。若要比較多次抽取,請再次點擊 Generate;每個結果都會成為歷史紀錄清單中的最新項目。
閱讀最新優先的歷史紀錄
歷史紀錄面板最多容納 20 個項目。最新答案位於最上方,因此你無需捲動就能掃視最近的抽取結果。第二十一次產生之後,最舊的項目會被移除,而一則累計訊息會明確告訴你已捨棄多少較早的答案,例如在總共產生 21 次之後顯示「1 earlier answer discarded」。
歷史紀錄僅供描述之用。它不會影響機率、不會在連續出現後重新平衡,也不會防止重複。獨立的 50/50 結果自然可能形成 Yes 或 No 的連續出現,而這個工具會揭露這個事實,而不是加以隱藏。如果你看到連續五個 Yes,下一次抽取仍然是 50/50 的分配,因為沒有任何連續補償機制。
若要清除歷史紀錄,請使用清除歷史紀錄的控制項。重設歷史紀錄也會一併清除累計的已捨棄計數以及目前顯示的答案,因此下一次 Generate 會從一個乾淨的面板開始。
問題欄位的功能與限制
問題欄位純粹是一個本機標籤。它不會改變機率、不會為選項加權,也不會進入隨機映射的運算。無論問題寫了什麼,映射一律使用來自 Web Crypto 的一個全新 Uint32。因此,兩個相同的問題可能產生不同的答案,而兩個不同的問題也可能產生相同的答案。
該欄位最多接受 1,000 個 UTF-16 程式碼單元。邊界是包含的:剛好 1,000 個程式碼單元的問題會被接受,超過一個程式碼單元就會失敗,不會截斷也不會產生答案。空白文字是有效的,因為問題本身是選擇性的。
在顯示答案後編輯問題會清除目前的答案以及任何先前的錯誤訊息。這可以避免先前的答案被誤標為屬於新的措辭。編輯不會清除歷史紀錄,因此較舊的項目仍然保留可供比較,但醒目的目前答案會被移除。
文字會以你輸入的原始形式儲存。修剪 (Trimming) 僅用於決定歷史紀錄列顯示「No question」標籤還是你的實際措辭。內部的空白、大小寫與標點符號會逐字保留在儲存的項目中。
當你需要試算表功能時的 Excel 原生替代方案
有時候你確實需要在試算表內部使用 Yes 或 No,例如下拉式清單、核取方塊欄,或由公式驅動的答案儲存格。在這些情況下,瀏覽器工具就不適合,你應該改用 Excel 的內建功能。以下三種方法可以涵蓋大多數需求。
資料驗證清單(下拉式選單)。選取目標儲存格,開啟 Data,然後選擇 Data Validation,將「Allow」設為 List,並在 Source 方塊中輸入以逗號分隔的 Yes,No。點擊 OK。使用者現在會在每個儲存格上看到下拉箭頭,而且只能選擇 Yes 或 No,這樣就能消除像「Yess」或「Nah」這類的打字錯誤。如需逐步操作說明,請參閱 Create a Yes or No Drop-Down List in Excel 指南。
IF + RAND 公式。在目標儲存格中輸入 =IF(RAND()<0.5,"Yes","No") 然後按下 Enter。每次活頁簿變更時,Excel 都會重新計算公式,在每次重新計算時產生一個全新的 50/50 答案。如果你希望在多次編輯中保持穩定,請使用 Copy,然後選擇 Paste Special,再選擇 Values,以凍結單一答案。
CHOOSE + RANDBETWEEN。輸入 =CHOOSE(RANDBETWEEN(1,2),"Yes","No")。RANDBETWEEN(1,2) 會以相等的機率傳回 1 或 2,而 CHOOSE 會將該數值轉換為常值文字。這個模式日後更容易擴充到兩種以上的結果,而 Create a Yes or No Formula in Excel: 3 Approaches 指南會逐步介紹各種變化形式。
這些 Excel 原生方法各自與瀏覽器工具相比都有取捨。Excel 內建的 RAND 使用的是平台的 RNG,而不是 Web Crypto,因此來源並非密碼學上強健的。公式也會在每次活頁簿變更時重新計算,這可能會在你沒有預期的情況下把 Yes 翻成 No。對於隨性的一次性決策,基於瀏覽器的 Yes or No Generator 就能同時避開這兩個問題。
限制與不適合使用此工具的情境
Yes or No Generator 是一個隨性的提示工具,而不是決策權威。契約明確禁止將其用於醫療、法律、財務、安全關鍵、緊急情況、安全性、同意權、僱用、資格認定、法規遵循或其他高風險決策。Web Crypto 的品質並不會讓某個問題變得合適、無需驗證可用的選擇、無需理解後果,也無法取代專業判斷。
這個工具也不會學習偏好、無法保證結果交替、無法防止連續出現、無法在小樣本中證明公平性,也無法預測未來事件。一個數學上平衡的答案,在應用於具有真實世界後果的事物時,仍然可能是不合適的、不幸的或有害的。
如果你需要在試算表本身內部進行二元決策,例如會自動更新的 Yes/No 欄位,或是其他使用者可以選擇的下拉式選單,那麼這個工具就不適合。在這些情況下,你要使用的是 Excel 原生方法,而上文連結的指南會逐步介紹常見的模式。
隨機性背後的來源
這個產生器的隨機性奠基於 W3C Web Cryptography 規格,該規格定義了 getRandomValues 以及它對整數型別化陣列的就地填入。MDN 的 Crypto.getRandomValues 參考文件則獨立地記錄了瀏覽器在實務上如何實作這個方法。映射器在非偶數邊界進行的拒絕抽樣是在程式碼中實作並測試的,而不是聲稱其為底層瀏覽器來源的功能。
如需更深入的探討,請參閱 Turn Excel's Two Columns Into a Line Graph in Your Browser。
如需更深入的探討,請參閱 Generate Random Characters in Excel From Your Browser。