三種茶,每種六週的銷量,每列六個數字排在那邊,我看了半天還是不知道哪一種在變好。這時候不用特地插一張圖表,SPARKLINE 可以直接在一格裡畫一張迷你圖,放在每一列後面,掃過去就知道趨勢。
SPARKLINE 在中文常叫「迷你圖」或「走勢圖」。這篇把它的四種圖表類型都做一遍,再整理選項。Excel 的「走勢圖」是「插入」選單裡的功能(折線、直條、輸贏分析三種),不是函式,沒辦法寫進公式。
先看資料
資料放在 A1:I4,I 欄先空著,等一下拿來放迷你圖:
| 品項 | 第1週 | 第2週 | 第3週 | 第4週 | 第5週 | 第6週 | 合計 |
|---|---|---|---|---|---|---|---|
| 蘋果紅茶 | 12 | 15 | 9 | 21 | 18 | 26 | 101 |
| 青茶 | 7 | 8 | 6 | 11 | 5 | 4 | 41 |
| 烏龍 | 9 | 9 | 14 | 10 | 16 | 13 | 71 |
H 欄的合計是 ,往下拉。蘋果紅茶:12 + 15 + 9 + 21 + 18 + 26 = 101。
光看數字,蘋果紅茶好像有在漲,青茶好像在掉,但要一個一個比大小實在有點累。
SPARKLINE
語法
- 資料:要畫的範圍或陣列,這邊就是一列六個數字。
- 選項:選填,用
{"選項名稱","值"; "選項名稱","值"}的格式,每組之間用分號隔開。也可以指向一個兩欄寬的範圍,第一欄放選項名稱、第二欄放值。
不填選項,畫出來就是折線圖。
折線圖
I2 輸入:
蘋果紅茶六週銷量的折線迷你圖
=SPARKLINE(B2:G2)往下拉到 I4,三列各一條線。
圖:預設的折線圖,每一格只畫自己那一列的六個點。
列高預設太矮,圖會很扁,我通常先把 2 到 4 列的列高拉高一點再看。
折線的顏色想換,官方說明提到可以直接改儲存格的字型顏色,不用寫 color 選項。要在公式裡寫也可以:
折線顏色與粗細
=SPARKLINE(B2:G2, {"color","#5B7A52"; "linewidth",2})linewidth 數字越大線越粗。
柱狀圖
charttype 填 "column",每個數字變成一根柱子:
柱狀迷你圖,最高的一根用綠色、最低的一根用灰色
=SPARKLINE(
B2:G2,
{"charttype", "column"; "highcolor", "#5B7A52"; "lowcolor", "#B5B0A6"}
)highcolor 是最高值那根的顏色,lowcolor 是最低值。蘋果紅茶最高是 26(第 6 週),最低是 9(第 3 週),所以第 6 週那根會是綠色、第 3 週是灰色。另外還有 firstcolor、lastcolor(第一根與最後一根)、negcolor(所有負數)。
要不要畫一條零線,看 axis(true 或 false),線的顏色是 axiscolor。資料有負數的時候,打開 axis 會比較好讀。
圖:柱狀圖的高低點上色,一眼看出哪一週最好、哪一週最差。
勝敗圖
"winloss" 是只看正負、不管大小的柱狀圖:正數畫在上面,負數畫在下面,高度一樣。拿來看「這週比上週好還是差」最適合。
先算週對週的增減,從第 2 週開始,用 K2 起放(K2:O2):
蘋果紅茶每週比上一週多了或少了幾杯
=ARRAYFORMULA(C2:G2-B2:F2)蘋果紅茶:15 - 12 = 3、9 - 15 = -6、21 - 9 = 12、18 - 21 = -3、26 - 18 = 8。
| 列 | K | L | M | N | O |
|---|---|---|---|---|---|
| 2 | 3 | -6 | 12 | -3 | 8 |
再把這一列餵給 SPARKLINE:
勝敗圖,正的朝上、負的朝下
=SPARKLINE(K2:O2, {"charttype","winloss"})結果是上、下、上、下、上,一共五根。如果某一週剛好持平(差是 0),這根不會畫出來,因為它既不是勝也不是敗。
圖:勝敗圖只看正負,高度都一樣。
長條圖
"bar" 跟前面不太一樣,它不是一根一根的柱子,而是一條橫的堆疊長條。資料只有一個數字的時候,拿來當進度條很好用,搭配 max 決定「滿格」是多少。
假設蘋果紅茶這六週的目標是 110 杯,已經賣了 H2 的 101 杯:
長條進度,滿格為 110
=SPARKLINE(H2, {"charttype","bar"; "max",110; "color1","#5B7A52"})101 / 110 大約是 92%,所以綠色會填到九成多的位置。資料給多個數字的話,會依序堆疊成好幾段,每段顏色用 color1、color2 指定。
勝敗顏色:數值極值不等於所有贏家
延伸方格子的勝敗圖,另開空白表,B2:H2 依序放 3、10、-2、-7、0、留空、文字。先在 J2 畫原始值:
highcolor/lowcolor 標原數值極值,負色衝突要看實得
=SPARKLINE(B2:H2,{"charttype","winloss";"color","#9aa0a6";"highcolor","#1a73e8";"lowcolor","#ea4335";"negcolor","#a142f4";"empty","ignore";"nan","ignore"})結果:3 為灰色向上、10 為藍色向上、-2 為紫色向下、-7 為紅色向下。柱高都只分正負,但 highcolor、lowcolor 仍讀原數值的極值;在這個同時設定負色的案例,最低 -7 的紅色優先於 negcolor 的紫色。0 不畫柱,空白與文字採 ignore,沒有被畫成勝或敗。
如果要的是「所有正數一色、所有負數一色」,可以先把有效數值轉成 1、0、-1;B4 放下式,留空 B4:H4:
只對數值取 SIGN,空白與文字不當成零
=ARRAYFORMULA(IF(ISNUMBER(B2:H2),SIGN(B2:H2),""))應得到 1、1、-1、-1、0、空字串、空字串。J4 再畫:
正規化後並列極值同色
=SPARKLINE(B4:H4,{"charttype","winloss";"highcolor","#1a73e8";"lowcolor","#ea4335";"empty","ignore";"nan","ignore"})兩根正值都是藍色、兩根負值都是紅色,0 與空字串不畫勝敗柱。把 J 欄加寬、列高拉高再看,才能分清柱子的顏色;迷你圖複製出來沒有文字,不要因此誤以為它沒顯示。
這種正規化會丟掉原始幅度,適合看勝敗次數,不適合比較賺了多少。選項的正式定義可對照 Google 的 SPARKLINE 文件;empty 只有 zero/ignore,nan 是 convert/ignore,別從其他圖表工具套入 none 或布林值。
專案進度:完成量加剩餘量,才等於總量
方格子的堆疊長條可以整理成專案清單。請在同一張練習表的 A11 貼上:
專案 完成量 總量 狀態 進度
甲 20 100 進行中
乙 100 100 已完成
丙 0 100 未開始
丁 120 100 進行中
戊 0 0 未開始
己 100 進行中
庚 20 100 未知E12 貼下式,再填到 E18;先把 E 欄加寬、資料列拉高,才能看清比例:
兩段是完成量與剩餘量,數量錯誤先顯示提示
=IF(
OR(NOT(ISNUMBER(B12)), NOT(ISNUMBER(C12))),
"待補數值",
IF(
OR(B12<0, C12<0, B12>C12),
"數量有誤",
IF(
C12=0,
"無任務",
SPARKLINE(
{B12, C12-B12},
{
"charttype", "bar";
"max", C12;
"color1", SWITCH(D12, "已完成", "#1aa260", "進行中", "#fbbc04", "未開始", "#9aa0a6", "#9aa0a6");
"color2", "#e8eaed"
}
)
)
)
)第一段是完成量,第二段是「總量-完成量」。不要餵「完成量、總量」兩段,否則 20 與 100 堆起來是 120,不是 20%。color1 依狀態控制已完成那段,color2 固定淡灰表示剩餘量;未知狀態落在灰色,仍應另外檢查,不表示分類正確。
公式填到 E18 的結果:甲是黃色約 20% 加淡灰剩餘,乙全綠,丙全為剩餘灰;丁顯示「數量有誤」、戊「無任務」、己「待補數值」,庚是未知狀態的灰色約 20% 加淡灰。
狀態文字和數量是兩種資訊。公式不會自動保證「已完成」一定等於 100%;正式流程可加資料驗證或異常清單檢查。若多個進度條要互相比,明訂每列的總量意義;同為 50% 可能代表 1/2 或 50/100。
趨勢變色:用最新兩期決定整條線的顏色
方格子的折線迷你圖有漲跌變色與軸限練習。這裡用合成資料,避免外部行情延遲干擾,從 A26 貼上:
日期 合成值
=DATE(2026,10,1) 100
=DATE(2026,10,2) 102
=DATE(2026,10,3) 101
=DATE(2026,10,4) 104
=DATE(2026,10,5) 103確保 A27:A31 是真正日期、按日期升冪,B27:B31 都是數值。D27 放:
最新兩筆決定整條線顏色,最大最小值之外留白
=SPARKLINE(
B27:B31,
{
"charttype", "line";
"color", IF(B31>=B30, "#1aa260", "#ea4335");
"ymin", MIN(B27:B31)-MAX(1, (MAX(B27:B31)-MIN(B27:B31))*0.1);
"ymax", MAX(B27:B31)+MAX(1, (MAX(B27:B31)-MIN(B27:B31))*0.1);
"linewidth", 2
}
)最後兩筆是 104、103,所以整條線應為紅色;改最後一筆 105 則變綠。這是整條線的一種分類色,不是每個線段各自變色。上下各留至少 1,五筆都等於 100 時仍有 99 到 101 的範圍,不把上下限設成一樣。
把最後一筆從 103 改成 105,紅線會轉綠;五筆全改為 100,綠色水平線仍可見。這個留白量是本例設計,改成百分比或很小單位時要依尺度調整,不能把上下至少 1 套到所有指標。
本例故意固定五筆。接 GOOGLEFINANCE 時應先排除表頭、空值與非數值,再按日期確認最後兩筆;不要假設查近 30 天就恰好有 30 列資料。外部資料的適用範圍與延遲看 GOOGLEFINANCE。
以上三個延伸練習請另開一張練習表做;下一節的選項儲存格與最後的烏龍練習,回到開頭的六週茶飲資料。
選項放在儲存格
選項一多,公式會很長。官方說明提供另一種寫法:把選項列在一個兩欄寬的範圍,第一欄是名稱、第二欄是值,公式直接指到這個範圍:
| Q | R |
|---|---|
| charttype | column |
| color | #5B7A52 |
Q1:R2 這樣放好之後:
選項來自 Q1:R2
=SPARKLINE(B2:G2, Q1:R2)想一次改好幾格迷你圖的樣式,只改這兩格就好,這個做法我個人滿常用。
選項速查
| 適用 | 選項 | 作用 |
|---|---|---|
| 全部 | charttype | line(預設)、column、bar、winloss |
| 折線 | linewidth、color | 線的粗細與顏色 |
| 折線 | xmin、xmax | 固定橫軸範圍 |
| 折線/柱狀 | ymin、ymax | 固定縱軸範圍 |
| 柱狀/勝敗 | color | 柱子的預設顏色 |
| 柱狀/勝敗 | highcolor、lowcolor | 最高、最低值的顏色 |
| 柱狀/勝敗 | firstcolor、lastcolor、negcolor | 第一根、最後一根、負數的顏色 |
| 柱狀/勝敗 | axis、axiscolor | 是否畫軸線與軸線顏色 |
| 長條(bar) | max、color1、color2 | 橫軸最大值與前兩段的顏色 |
| 全部 | empty、nan、rtl | 空白格、非數字怎麼處理,由右往左畫 |
empty 填 "zero" 或 "ignore",nan 填 "convert" 或 "ignore",rtl 填 true 或 false。顏色可以寫英文名稱("green")或十六進位色碼。
ymin、ymax 對折線和柱狀圖有用,勝敗圖不適用。這點我個人覺得很實用:三列要互相比大小的時候,把 ymax 設成同一個值,三條線的高度才能比。不設的話,每一格都會自己縮放到剛好填滿。
不想用 SPARKLINE 的時候
有些情況,例如要貼到不支援迷你圖的地方,或只是想讓格子看起來有條橫槓,可以用 REPT 把字元重複 N 次湊一條:
每 10 杯一個方塊
=REPT("■", ROUND(H2/10))101 / 10 = 10.1,四捨五入後是 10,所以蘋果紅茶有 10 個方塊;青茶 41 / 10 = 4.1 是 4 個;烏龍 71 / 10 = 7.1 是 7 個。
| 品項 | 方塊 |
|---|---|
| 蘋果紅茶 | ■■■■■■■■■■ |
| 青茶 | ■■■■ |
| 烏龍 | ■■■■■■■ |
REPT 的詳細用法在 字元與格式文字函式。方塊版好處是它就是文字,可以複製、排序;缺點是只能畫長條,也沒辦法精準到小數。
練習
烏龍的勝敗圖
烏龍的資料在 B4:G4。請寫一條公式,在一格裡畫出烏龍每週比上一週增減的勝敗圖(不需要另外用輔助格放增減)。
烏龍的週增減是 0、5、-4、6、-3,第一根是 0,不會畫出來,所以看到的是四根:上、下、上、下,前面空一格。
圖的方向、顏色和比例,把格子放大再看比較清楚。折線、柱狀圖最好各做一次,感覺會差很多。
我是喜特先生,Mr. Sheet,我們下個教學見!
接下來可以
相關文章
查看所有文章Google 試算表常用進階函式導覽:QUERY、IMPORTRANGE、GOOGLEFINANCE、SPARKLINE 怎麼選,Excel 有沒有
從 Excel 轉到 Google 試算表,哪些函式要先學、Excel 又有沒有對應?依「解決什麼問題」分組介紹 QUERY、IMPORTRANGE、IMPORTHTML、IMPORTXML、ARRAYFORMULA、SPLIT、REGEX 系列、GOOGLEFINANCE、GOOGLETRANSLATE、DETECTLANGUAGE、IMAGE、SPARKLINE、AI,每個附語法、Excel 對照表與詳細教學連結。
Google 試算表圖表完全指南:選對類型,3 秒看懂資料
學會根據問題選擇正確的圖表類型(折線圖看趨勢、長條圖比大小、圓餅圖看佔比),掌握配色、排序、動態更新等技巧,建立讓主管一眼就懂的視覺化報告。
字元與格式文字函式:CODE、UNICHAR、ASC、EXACT、REPT、DOLLAR、FIXED、ROMAN
整理比較少人提的文字函式:CODE 與 UNICHAR 的字元編碼、ASC 全形轉半形、EXACT 區分大小寫的比對、REPT 重複字串、T 取出文字、DOLLAR 與 FIXED 把數字轉成格式化文字,以及 ROMAN 與 ARABIC 的羅馬數字轉換。
留言討論
共 0 則留言



