要在 Excel 中建立一個是非公式,你可以將 Excel 內建的隨機函數之一包進 IF 或 CHOOSE 裡,讓每個儲存格根據擲硬幣式的抽樣回傳「Yes」或「No」文字。最短的兩種寫法是 =IF(RAND()<0.5,"Yes","No") 與 =CHOOSE(RANDBETWEEN(1,2),"Yes","No"),兩者在 2007 以後所有版本的 Excel 中都能使用,不需外掛或 VBA。由於 Excel 的 RAND 與 RANDBETWEEN 都是 volatile(易變)函數,每次活頁簿重新計算時,顯示的答案都會改變,這在即時抽樣時很方便,但當你想要結果停止變動時就會很煩人。若要凍結結果,你可以複製儲存格然後以值的形式貼回,這會移除公式。對於不屬於試算表的單次是非問題,例如挑選餐廳、決定誰先開始,或解決小爭論,使用 Web Crypto API 的瀏覽器工具能給出一個穩定的答案,即使下次活頁簿重新計算也不會改變,而且不會留下任何檔案。

create yes or no formula in excel
create yes or no formula in excel

在 Excel 中撰寫是非公式的三種方法

Excel 內建兩個隨機函數,任何人都能將它們與邏輯輔助函數結合,產生出二元結果。第一個 RAND() 每次工作表重新計算時會回傳一個介於 0 與 1 之間的小數。第二個 RANDBETWEEN(a,b) 會回傳你所指定含端點範圍內的整數,在 Excel 2007 以後皆可使用。將其中任一個與 IF 或 CHOOSE 搭配,就能把數字抽樣轉成易讀的文字。下方三種寫法都能在單一儲存格中運作,並可向下複製到整欄進行批次抽樣,每個儲存格都會產生 50/50 的結果。

寫法 範例公式 數學原理
IF + RAND =IF(RAND()<0.5,"Yes","No") 將 0 到 1 的抽樣與 0.5 比較;低於門檻回傳 "Yes",等於或高於則回傳 "No"。
CHOOSE + RANDBETWEEN =CHOOSE(RANDBETWEEN(1,2),"Yes","No") 均勻抽取 1 或 2,然後從兩個項目的清單中回傳對應的標籤。
IF + RANDBETWEEN =IF(RANDBETWEEN(1,2)=1,"Yes","No") 抽取 1 或 2;等於 1 回傳 "Yes",否則回傳 "No"。

底層的隨機來源是 Excel 內部的偽隨機產生器,而非加密級的隨機數。這對休閒抽樣和決策輔助來說沒問題,對於已經到處使用 RAND 的試算表也沒差,因為在大部分使用者所抽取的小樣本中,兩者的統計分佈是等價的。

一步步在 Excel 中建立是非公式

如果你的目標是在儲存格中取得一個會重新計算的即時是非值,整個過程大約只需一分鐘。下列步驟適用於 Excel for Microsoft 365、Excel 2021 和 Excel 2019;只要有 RANDBETWEEN,舊版操作方式也相同,這個函數從 Excel 2007 開始就一直存在。

  1. 開啟活頁簿,點選你希望顯示第一個答案的儲存格,例如 A1。
  2. 輸入 =IF(RAND()<0.5,"Yes","No"),然後按 Enter。該儲存格現在會顯示 "Yes" 或 "No"。
  3. 按 F9 強制重新計算,觀察答案改變。每次按下都會從 Excel 的隨機產生器抽取新的一筆。
  4. 若要填入更多儲存格,請選取 A1,抓住右下角的填滿控點,然後向下拖曳。每個儲存格都會擁有自己獨立的公式與抽樣。
  5. 若要凍結特定結果,請選取儲存格,按 Ctrl+C,然後按 Ctrl+Shift+V(或使用選擇性貼上 > 值),將公式替換成原本顯示的文字。凍結後的值在未來每次重新計算時都會保持不變。
  6. 若要重新開始,請在凍結的儲存格上按 Delete,然後重新輸入公式。

如果你只想要一個不會因按 F9 而改變的單一靜態抽樣結果,在 Excel 內就必須執行貼上為值的步驟。公式本身無法在不移除隨機來源的情況下變成非 volatile。

為何 Excel 的隨機函數不足以應付是非提問

Excel 的 RAND 與 RANDBETWEEN 設計上求的是方便而非可稽核,當答案需要保持不變或日後需要檢視時,以下三個特性常常會讓人踩坑。第一,這些函數是 volatile 的,所以活頁簿中任何位置的編輯,即使是不相關儲存格中打了又刪掉的錯字,都可能翻轉答案。第二,將活頁簿切換到手動計算模式可以凍結答案,但這也會凍結工作表中所有其他公式,這通常不是你想要的。第三,Excel 並未公開其隨機演算法,因此你無法日後重現特定的抽樣,也無法證明某個特定值來自某個特定種子。

對於內部抽樣(例如隨機挑選十列),這些限制並不重要,因為活頁簿本身就是紀錄系統,檔案會與資料一起傳遞。然而,對於一次性決策,你並不會希望同事下次打開檔案時,答案因為重新計算而意外改變,也不會想要記得事後切換回自動計算模式。如果你想更深入了解 Excel 以範圍為基礎的隨機選項,範圍內亂數產生指南詳細介紹了同一家族的函數。即時儲存格公式與單次提問之間的落差,正是專用瀏覽器工具能填補的空間。

使用 Yes or No Generator 取得穩定且可稽核的答案

Yes or No Generator 是一個完全在當前分頁中執行的小型瀏覽器頁面。它使用 W3C Web Cryptography 的 Crypto.getRandomValues 方法(詳見 MDN 上 getRandomValues 的參考頁面),抽取一個無符號 32 位元整數,然後將偶數對應到 "Yes",奇數對應到 "No"。由於 2^32 正好是 2^31 的兩倍,每個有效的 32 位元值都會被接受而無需捨棄,因此兩種結果各自剛好分到來源範圍的一半。你輸入的問題僅作為本地標籤儲存,不會影響抽樣。問題、答案與可見的歷史紀錄永遠不會被上傳、不會寫入任何帳號,也不會送到遠端服務。

如果 Web Crypto 缺失、被封鎖,或拋出例外,工具會回報明確的失敗訊息,並且不會產生答案。它不會在背後悄悄改用 Math.random,因為在你不注意的情況下更換隨機來源會與所顯示的方法論相牴觸,也會讓靜默失敗更難以察覺。這個明確失敗的契約,正是當問題重要到值得再開一個分頁時,你應該選擇這個工具而非自寫公式的主要原因。

特性 Excel 公式 Yes or No Generator
執行位置 活頁簿內部 任何現代瀏覽器分頁
隨機來源 Excel 內部 PRNG Crypto.getRandomValues
活頁簿重新計算時是否改變 會,每次按 F9 都會改 不會,顯示的答案固定不變,直到你再次點擊
最近抽樣的可見歷史 有,由新到舊,最多 20 筆
需要儲存的檔案 需要 不需要,網頁自成一體
高風險決策 不適合 不適合

如何透過瀏覽器工具取得公平的是非結果

  1. 在任何現代瀏覽器分頁中開啟 Yes or No Generator。不需要帳號、檔案或網路連線。
  2. 選擇性地在問題欄位中輸入一個不超過 1,000 個 UTF-16 字碼單位的低風險問題。剛好等於上限會被接受,超過一個字碼單位則會失敗,且不會截斷或產生結果。如果只需要擲硬幣,欄位留空即可。
  3. 點擊 Generate Yes or No。工具會使用 Crypto.getRandomValues 抽取一個 Uint32,偶數對應到 "Yes",奇數對應到 "No",並在按鈕下方顯眼地顯示目前答案。
  4. 想抽幾次都可以。每次點擊都會消耗一次新的抽樣;問題文字、上次點擊的時間以及先前的答案,都不會影響下一次的對應結果。
  5. 請從螢幕上的顯示讀取最新的答案,而不是憑記憶,以免把舊的結果誤標為新的措辭。

同一套程序在手機、平板或桌機上都適用,唯一的條件是瀏覽器必須支援 Web Crypto,所有現行的 Chrome、Edge、Firefox 與 Safari 版本預設都已支援。

閱讀歷史紀錄與判斷何時該停止

工具會在螢幕上保留最多 20 筆、由新到舊的抽樣歷史,讓你一眼比較多個答案,而不必手動重新抽取。在第二十一次產生之後,最舊的紀錄會被移除,並會顯示一則訊息,明確告知已捨棄多少筆先前的答案。此歷史只是一種有上限的 UI 便利功能,並非公平性保證,因為獨立 50/50 的結果本來就可能自然形成連續 Yes 或連續 No 的連勝,而工具並不會為了補償而重新平衡後續的抽樣。結束時,請點擊 Clear History 同時重設可見紀錄與已捨棄數量,這個動作也會一併移除目前的答案,避免在螢幕上留下過期的結果。

編輯問題會清除顯眼顯示的目前答案以及任何先前的錯誤訊息,因此答案絕不會在無聲無息中被重新標上新的措辭。不過歷史紀錄會保留當時輸入的問題文字原貌,空白問題也屬於有效輸入;對於這類紀錄,歷史只會顯示「No question」這個標籤。

以上皆不適用於醫療、法律、財務、安全關鍵、緊急狀況、安全性、同意、僱用、資格審查或合規等決策。密碼學等級公平的 50/50 抽樣,無法驗證可用選項是否合理,無法理解後果,也無法提供專業判斷;在真正的利害關頭,平衡的答案仍然可能是錯誤的答案。

如果你正在權衡各種選項,如何在 Excel 中不用圖表精靈製作折線圖對此有詳細介紹。