出貨清單我習慣做成一欄核取方塊,出完一筆勾一筆,但勾完之後還有兩個問題:總共出了幾筆、還剩哪幾筆沒出。
核取方塊的插入與用資料驗證換成自訂值的基本步驟,在 資料驗證入門 已經帶過,這篇不重講。這邊要講的是勾選的值到底是什麼、改成 1 和 0 有什麼好處,以及怎麼用 COUNTIF、SUMPRODUCT、FILTER 把勾選的結果算成進度和待辦清單。
先準備一份出貨清單
我拿七筆出貨單來做,A 欄品項、B 欄杯數,C 欄之後要放核取方塊:
| 列 | A 品項 | B 杯數 | C 已出貨 |
|---|---|---|---|
| 2 | 蘋果紅茶 | 12 | 勾選 |
| 3 | 青茶 | 7 | 未勾 |
| 4 | 烏龍拿鐵 | 9 | 勾選 |
| 5 | 蘋果綠茶 | 21 | 未勾 |
| 6 | 冬瓜檸檬 | 5 | 勾選 |
| 7 | 鮮奶茶 | 14 | 未勾 |
| 8 | 蘋果紅茶 | 8 | 勾選 |
手算一下,已出貨是第 2、4、6、8 列,共 4 筆,杯數 12 + 9 + 5 + 8 = 34。沒出貨的是第 3、5、7 列,7 + 21 + 14 = 42 杯。等一下公式算出來要對得上這兩個數字。
插入核取方塊
- 選取
C2:C8。 - 點「插入」>「核取方塊」。
圖:選好範圍再插入,選幾格就會出現幾個方框。
C2:C8 會出現七個空的方框,點一下就勾選,再點一下取消。照上表把第 2、4、6、8 列勾起來。
要拿掉的話,依說明中心的說法,是選取那些核取方塊再按 Delete。方框會消失,儲存格變回空白。
勾選之後,格子裡到底是什麼
預設的勾選值是 TRUE,沒勾是 FALSE。在旁邊的空白格寫 =C2,C2 勾著就會顯示 TRUE,取消勾選就變 FALSE。所以核取方塊就是一個會自己切換的布林值,可以直接放進公式。
第一個問題,已出貨幾筆:
C 欄是 TRUE 的列數
=COUNTIF(C2:C8, TRUE)來看看結果:
| 公式 | 結果 |
|---|---|
| COUNTIF 算已出貨筆數 | 4 |
要算進度,分母用品項的總筆數。ROWS 回傳範圍有幾列:
已出貨筆數除以總筆數,轉成百分比文字
=TEXT(COUNTIF(C2:C8, TRUE) / ROWS(C2:C8), "0.0%")4 除以 7 是 0.5714⋯⋯,所以會顯示 57.1%。
要加總杯數,條件放進 SUMIFS:
已出貨的杯數合計
=SUMIFS(B2:B8, C2:C8, TRUE)得到 34,跟剛剛手算的一樣。把 TRUE 換成 FALSE,就是還沒出的 42 杯。
把完成率變成進度條,空任務不算分母
方格子核取方塊舊文的 SPARKLINE 進度條,我會把「任務名稱」與「勾選狀態」一起判斷,避免預先放好的空白列也被當任務。
另開空白表,A1:B5 放以下資料,再把 B2:B5 插入預設 TRUE/FALSE 核取方塊。最後一列只有勾選值,沒有任務名稱,刻意不列入分母與完成數:
| 任務 | 完成 |
|---|---|
| 確認品項 | TRUE |
| 核對數量 | FALSE |
| 包裝 | TRUE |
| (留空) | TRUE |
E2 放數值完成率:
只計算有文字任務的列,沒有任務時留空而不除以0
=IF(
COUNTIF(A2:A5, "?*")=0,
"",
COUNTIFS(A2:A5, "?*", B2:B5, TRUE)/COUNTIF(A2:A5, "?*")
)這份資料是 2/3,儲存格可設百分比顯示為 66.7%。?* 代表至少一個字元,這個版本假設任務名稱是文字;不要拿流水號數值直接代替名稱。
E3 再放進度條:
完成率已是0到1,長條最大值設1,色碼包含#
=IF(
E2="",
"",
SPARKLINE(E2, {"charttype","bar";"max",1;"color1","#1aa260"})
)E3 會顯示約三分之二的綠條;真正勾選「核對數量」後 E2 變 1、綠條全滿,取消後回到三分之二。無名稱那列的方塊不影響完成率。清空所有任務名稱時,數值與圖都留空。這裡的空白是「沒有任務」,不是「進度零」;進度零則仍有任務、但尚未完成。
想調整尺寸與圖型,可以看 SPARKLINE 教學。核取方塊拿來控制外部資料顯示的限制,另見 IMPORTRANGE 維護陷阱:未勾時空白,不代表外部網路請求已完全停止。
把勾選值改成 1 和 0
TRUE 和 FALSE 拿來當條件很直覺,但想要「已出貨的杯數」,就得寫 SUMIFS。如果勾選值是 1、沒勾是 0,一個 SUMPRODUCT 就能把杯數乘上勾選值再加起來。
依說明中心的步驟,要改成自訂值:
- 選取
C2:C8。 - 點「資料」>「資料驗證」。
- 「條件」選「核取方塊」。
- 勾選「使用自訂儲存格值」。
- 「已勾選」旁邊填 1,「已取消勾選」旁邊填 0。
- 儲存。
圖:自訂值之後,格子裡存的就是你填的數字。
改完之後,C 欄存的是 1 和 0,外觀仍是方框。已出貨的杯數:
杯數乘上勾選值(1 或 0),再全部加總
=SUMPRODUCT(B2:B8, C2:C8)| 公式 | 結果 |
|---|---|
| SUMPRODUCT 算已出貨杯數 | 34 |
勾 1 的列保留杯數,勾 0 的列乘出 0,加起來剛好是 34。而已出貨的筆數,單純對 C 欄 SUM 就好。
我個人的習慣是這樣:只要之後會乘以數量、算百分比,就先換成 1 和 0,公式短很多。如果是要給別人看的清單,用「已出貨」「未出貨」這類文字也可以,公式要改成 ,因為格子裡存的是那個字。
自訂值改完之後,原本寫 COUNTIF(C2:C8, TRUE) 的公式會變成 0,因為格子裡已經沒有 TRUE。換值之前,先把引用這一欄的公式找出來一起改。
用 FILTER 列出還沒出貨的
回到預設的 TRUE 和 FALSE,要把沒勾的列拉成一份待出清單:
C 欄是 FALSE(未勾選)的列,取出品項與杯數
=FILTER(A2:B8, C2:C8 = FALSE)結果會從放公式的格子往右、往下展開,在這份資料上是三列兩欄(以下假設公式放在 E2):
| 列 | E | F |
|---|---|---|
| 2 | 青茶 | 7 |
| 3 | 蘋果綠茶 | 21 |
| 4 | 鮮奶茶 | 14 |
公式放在 E2 的話,結果就佔 E2:F4。之後有人把鮮奶茶勾起來,它會自己從清單消失,不用手動整理。FILTER 的完整用法在 FILTER 函式。
如果全部都勾完了,沒有任何一列符合,FILTER 會回 #N/A。清單上直接出現錯誤碼不太友善,而且 #N/A 也可能來自別的問題,所以我會包一層 IFERROR,讓全部出貨完之後顯示一句話:
全部勾完時顯示文字,不顯示 #N/A
=IFERROR(FILTER(A2:B8, C2:C8 = FALSE), "全部出貨完成")勾完自動畫線
清單最舒服的一點,是勾完整列自動變灰、畫上刪除線。這是條件式格式的自訂公式,規則的公式寫 ,格式選刪除線與灰色文字,套用範圍是 A2:C8。$C2 的 $ 是固定 C 欄,列號沒固定,所以每一列各看自己的 C 欄。自訂公式的寫法在 條件式格式的自訂公式。
練習
算還沒出的杯數
C2:C8 是預設值(TRUE、FALSE)的核取方塊,請寫出算「還沒出貨的杯數」的公式,並說出結果。
已出貨又超過 8 杯
請用 FILTER 列出「已出貨,而且杯數大於 8」的品項與杯數。結果會是哪幾列?
只要有一欄你每天在打勾,就把它換成核取方塊,再寫一條 COUNTIF 看進度,用起來會順很多。
我是喜特先生,Mr. Sheet,我們下個教學見!
出處(介面字樣對照 2026-10-11 的說明中心內容):
接下來可以
相關文章
查看所有文章資料驗證入門:下拉式選單、數字範圍、核取方塊怎麼設
從「資料」>「資料驗證」開始,一步一步設定下拉式選單(手動輸入選項)、數字介於某個範圍、核取方塊,說明拒絕輸入與顯示警告的差別,以及規則管不到舊資料與貼上的內容。介面字樣對照 Google 說明中心。
資料驗證實戰:把訂單登記表的輸入錯誤擋在門口
以手搖飲門市的訂單登記表為例,設定下拉選單(含來自範圍與晶片樣式)、數字與日期範圍,再用 COUNTIF 擋重複的訂單編號、REGEXMATCH 擋格式不對的手機號碼,並說明拒絕輸入與顯示警告該怎麼選。
條件式格式自訂公式沒反應?$ 放錯、跨表參照與日期比較的陷阱
整理條件式格式自訂公式最常踩的坑:公式以套用範圍左上角為基準、$ 該鎖欄還是鎖列、整列標色、跨工作表要用 INDIRECT、公式回傳錯誤時規則不會套用,以及日期時間與文字日期讓比較失準。
留言討論
共 0 則留言


