接下來想分享文章開頭那兩個核取方塊可以應用的場面:進度條跟 IMPORTRANGE 開關。這邊我們都不特別自訂核取方塊的值是什麼,所以都會以 TRUE 跟 FALSE 來寫接下來的函式囉。
進度條
我們再看一次剛剛示範的 GIF 圖:
這是由之前介紹到的 SPARKLINE 函式做成的,再搭配 COUNTIF 和 COUNTA 就可以囉!
延伸閱讀:
・SPARKLINE 函式 - SPARKLINE 堆疊長條圖
・COUNTIF 函式、COUNTA 函式 - 聊聊 COUNT 的分身們
歡迎打開這邊的
試算表並複製一份,我們一起練習吧。先打開「進度條」工作表:
我已經在 A3 到 A7 幫你把核取方塊做好了,你也可以往下新增更多核取方塊。等等要製作的部分就是進度條,會在 B1 寫函式。我們先定義當核取方塊被勾選的時候,就是「任務已完成」的意思。
好!首先,進度條的長度是怎麼來的呢?其實就是:
= 已完成的任務數 / 全部的任務數
這邊總共有 5 個任務,所以如果我完成了 1 項任務,那麼我的進度就是:
= 1 / 5
= 20%
那麼我們等等就可以利用 COUNTA,先算算這個任務清單(A3 到最後一行)裡面有多少任務:
= 已完成的任務數 / COUNTA(A3:A)
再用 COUNTIF 算有多少核取方塊被勾起來:
= COUNT(A3:A, TRUE) / COUNTA(A3:A)
這樣就可以算出比例了。
再來就是用 SPARKLINE 函式來製作進度條了!我們在 B1 這邊下:
=SPARKLINE(
COUNTIF(A3:A, TRUE),
{"charttype", "bar"; "max", COUNTA(A3:A); "color1","1aa260"})
- COUNTIF(A3:A, TRUE):用這串得到「有幾個核取方塊被選了」。
- {"charttype", "bar";:指定圖表類型是堆疊長條圖。
- "max", COUNTA(A3:A);:指定圖表最大值是任務個數。
- "color1","1aa260"}:指定長條圖的顏色是綠色(#1aa260)。
假如我們勾選了 3 個任務,並且把數字帶入進去上面那串 SPARKLINE 函式的話:
=SPARKLINE(
3,
{"charttype", "bar"; "max", 5; "color1","1aa260"})
也就是 SPARKLINE 會畫出一條長度是 3 的長條,然後設定圖表的最大值是 5 的圖了。我放上刻度稍稍圖解一下:
那這樣比例其實就會一樣是剛剛的「已完成任務數 / 全部的任務數」的概念,我們就可以利用 SPARKLINE 中 max 屬性來製作這樣的長條圖了。結果會像這樣:
當作函式的開關(IMPORTRANGE)
再來是第二個應用,函式的開關。
IMPORTRANGE 會每隔一定的頻率去抓取 IMPORTRANGE 指定範圍的資料。如果資料規模不大,或許問題不大;但如果很大,它可能會影響你所在檔案的運算效率、拖累到你其他在跑的運算、甚至讓你整個檔案都動不了。
為了避免這樣的情況,我們就可以用核取方塊來做個簡易的開關,讓試算表只在某個核取方塊打勾時才執行 IMPORTRANGE。如果你已經完成你的任務,不需要用到 IMPORTRANGE 了,就可以取消勾選那個核取方塊,把試算表跟 IMPORTRANGE 的來源中斷、不再執行。
設定的方法很簡單,只是在 IMPORTRANGE 外面再包一層 IF 而已!
延伸閱讀:
IMPORTRANGE 函式:IMPORTRANGE,即時同步 Google 試算表的資料!
IF 函式:IF,如果 … 那就 … 不然 …
你可以打開我為你準備的試算表,選「IMPORTRANGE 開關」工作表:
我們會在 E2 下函式,讓 IMPORTRANGE 只在核取方塊是 TRUE 的時候,才會執行。選取 E2,先寫:
=IF(B2 = TRUE,
這段話的意思是「如果 B2 的核取方塊是已勾選的(也就是 B2 的值若是 TRUE 的話)」。
如果核取方塊是勾選的,那就做 IMPORTRANGE:
=IF(B2 = TRUE,
IMPORTRANGE("https://docs.google.com/spreadsheets/d/1sfU1DFWQVPBP5dGEgDHPlVXxKeMIwKhCo5zEGADOHKI",
"Example!A:E")
如果不是,那就給個 "",代表空值、什麼都不做。到這步,我們的函式就寫完了:
=IF(B2 = TRUE,
IMPORTRANGE("https://docs.google.com/spreadsheets/d/1sfU1DFWQVPBP5dGEgDHPlVXxKeMIwKhCo5zEGADOHKI",
"Example!A:E"), "")
這樣就會是文章開頭那樣的效果了,預設(不勾選)就是空值,按下核取方塊後才會執行 IMPORTRANGE。
其他核取方塊能應用的場面還有很多,例如:
- 跟條件化格式配合,當某個核取方塊被勾選的時候、整列或整欄會變顏色
- 改變圖表顯示的樣式,只顯示某個核取方塊所代表的項目
- 跟 IF 或 IFS 配合,操作複雜的邏輯運算
這都是不錯的應用方法,歡迎你來發掘看看唷!
如果你喜歡這次的文章,歡迎你透過這些方法支持我:
・按下愛心、按下儲存
・留言告訴我你的想法
・加入喜特先生的官方沙龍,即時看到我發布的教學
・付費訂閱喜特先生的官方沙龍,加入每月小額訂閱方案
・追蹤喜特先生的 Facebook
・按這邊小額贊助我的創作!
我是喜特先生,Mr. Sheet,我們下個教學見!