跳到主要內容跳到頁尾

SPARKLINE 迷你圖:在一格裡畫折線、長條與勝敗圖

9 分鐘閱讀Lv.3 中級摘要與日期

用茶飲每週銷量示範 SPARKLINE 的四種圖表類型(line、column、winloss、bar),整理 charttype 與常用選項、把選項放在儲存格的寫法,以及用 REPT 湊長條的做法,另附極值著色、狀態進度與最新兩期變色練習。

發布 更新

文章目錄

三種茶,每種六週的銷量,每列六個數字排在那邊,我看了半天還是不知道哪一種在變好。這時候不用特地插一張圖表,SPARKLINE 可以直接在一格裡畫一張迷你圖,放在每一列後面,掃過去就知道趨勢。

SPARKLINE 在中文常叫「迷你圖」或「走勢圖」。這篇把它的四種圖表類型都做一遍,再整理選項。Excel 的「走勢圖」是「插入」選單裡的功能(折線、直條、輸贏分析三種),不是函式,沒辦法寫進公式。

先看資料

資料放在 A1:I4,I 欄先空著,等一下拿來放迷你圖:

品項第1週第2週第3週第4週第5週第6週合計
蘋果紅茶12159211826101
青茶786115441
烏龍991410161371

H 欄的合計是 ,往下拉。蘋果紅茶:12 + 15 + 9 + 21 + 18 + 26 = 101。

光看數字,蘋果紅茶好像有在漲,青茶好像在掉,但要一個一個比大小實在有點累。

SPARKLINE

語法

  • 資料:要畫的範圍或陣列,這邊就是一列六個數字。
  • 選項:選填,用 {"選項名稱","值"; "選項名稱","值"} 的格式,每組之間用分號隔開。也可以指向一個兩欄寬的範圍,第一欄放選項名稱、第二欄放值。

不填選項,畫出來就是折線圖。

折線圖

I2 輸入:

Google 試算表公式
fx

蘋果紅茶六週銷量的折線迷你圖

=SPARKLINE(B2:G2)

往下拉到 I4,三列各一條線。

I2:I4 三格各有一條折線迷你圖,蘋果紅茶往右上、青茶往右下← 左右滑動看完整的圖,點圖可放大

圖:預設的折線圖,每一格只畫自己那一列的六個點。

列高預設太矮,圖會很扁,我通常先把 2 到 4 列的列高拉高一點再看。

折線的顏色想換,官方說明提到可以直接改儲存格的字型顏色,不用寫 color 選項。要在公式裡寫也可以:

Google 試算表公式
fx

折線顏色與粗細

=SPARKLINE(B2:G2, {"color","#5B7A52"; "linewidth",2})

linewidth 數字越大線越粗。

柱狀圖

charttype 填 "column",每個數字變成一根柱子:

Google 試算表公式
fx

柱狀迷你圖,最高的一根用綠色、最低的一根用灰色

=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):

Google 試算表公式
fx

蘋果紅茶每週比上一週多了或少了幾杯

=ARRAYFORMULA(C2:G2-B2:F2)

蘋果紅茶:15 - 12 = 3、9 - 15 = -6、21 - 9 = 12、18 - 21 = -3、26 - 18 = 8。

列KLMNO
23-612-38

再把這一列餵給 SPARKLINE:

Google 試算表公式
fx

勝敗圖,正的朝上、負的朝下

=SPARKLINE(K2:O2, {"charttype","winloss"})

結果是上、下、上、下、上,一共五根。如果某一週剛好持平(差是 0),這根不會畫出來,因為它既不是勝也不是敗。

勝敗圖,五根柱子依序朝上、朝下、朝上、朝下、朝上← 左右滑動看完整的圖,點圖可放大

圖:勝敗圖只看正負,高度都一樣。

長條圖

"bar" 跟前面不太一樣,它不是一根一根的柱子,而是一條橫的堆疊長條。資料只有一個數字的時候,拿來當進度條很好用,搭配 max 決定「滿格」是多少。

假設蘋果紅茶這六週的目標是 110 杯,已經賣了 H2 的 101 杯:

Google 試算表公式
fx

長條進度,滿格為 110

=SPARKLINE(H2, {"charttype","bar"; "max",110; "color1","#5B7A52"})

101 / 110 大約是 92%,所以綠色會填到九成多的位置。資料給多個數字的話,會依序堆疊成好幾段,每段顏色用 color1、color2 指定。

勝敗顏色:數值極值不等於所有贏家

延伸方格子的勝敗圖,另開空白表,B2:H2 依序放 3、10、-2、-7、0、留空、文字。先在 J2 畫原始值:

Google 試算表公式
fx

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:

Google 試算表公式
fx

只對數值取 SIGN,空白與文字不當成零

=ARRAYFORMULA(IF(ISNUMBER(B2:H2),SIGN(B2:H2),""))

應得到 1、1、-1、-1、0、空字串、空字串。J4 再畫:

Google 試算表公式
fx

正規化後並列極值同色

=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 貼上:

狀態、完成量與總量,貼到 A11
專案	完成量	總量	狀態	進度
甲	20	100	進行中
乙	100	100	已完成
丙	0	100	未開始
丁	120	100	進行中
戊	0	0	未開始
己		100	進行中
庚	20	100	未知

E12 貼下式,再填到 E18;先把 E 欄加寬、資料列拉高,才能看清比例:

Google 試算表公式
fx

兩段是完成量與剩餘量,數量錯誤先顯示提示

=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 貼上:

日期升冪的五筆合成資料,貼到 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 放:

Google 試算表公式
fx

最新兩筆決定整條線顏色,最大最小值之外留白

=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。

以上三個延伸練習請另開一張練習表做;下一節的選項儲存格與最後的烏龍練習,回到開頭的六週茶飲資料。

選項放在儲存格

選項一多,公式會很長。官方說明提供另一種寫法:把選項列在一個兩欄寬的範圍,第一欄是名稱、第二欄是值,公式直接指到這個範圍:

QR
charttypecolumn
color#5B7A52

Q1:R2 這樣放好之後:

Google 試算表公式
fx

選項來自 Q1:R2

=SPARKLINE(B2:G2, Q1:R2)

想一次改好幾格迷你圖的樣式,只改這兩格就好,這個做法我個人滿常用。

選項速查

適用選項作用
全部charttypeline(預設)、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 次湊一條:

Google 試算表公式
fx

每 10 杯一個方塊

=REPT("■", ROUND(H2/10))

101 / 10 = 10.1,四捨五入後是 10,所以蘋果紅茶有 10 個方塊;青茶 41 / 10 = 4.1 是 4 個;烏龍 71 / 10 = 7.1 是 7 個。

品項方塊
蘋果紅茶■■■■■■■■■■
青茶■■■■
烏龍■■■■■■■

REPT 的詳細用法在 字元與格式文字函式。方塊版好處是它就是文字,可以複製、排序;缺點是只能畫長條,也沒辦法精準到小數。

練習

1

烏龍的勝敗圖

烏龍的資料在 B4:G4。請寫一條公式,在一格裡畫出烏龍每週比上一週增減的勝敗圖(不需要另外用輔助格放增減)。

烏龍的週增減是 0、5、-4、6、-3,第一根是 0,不會畫出來,所以看到的是四根:上、下、上、下,前面空一格。

圖的方向、顏色和比例,把格子放大再看比較清楚。折線、柱狀圖最好各做一次,感覺會差很多。

我是喜特先生,Mr. Sheet,我們下個教學見!

分享:
#SPARKLINE#迷你圖#走勢圖#儲存格內圖表
喜特先生 Mr. Sheet

喜特先生 Mr. Sheet

數據分析師/商業分析師

八年工作經驗,跨不同業界解決數據需求。做過的案例都整理在作品集。

接下來可以

相關文章

查看所有文章

留言討論

共 0 則留言

訂閱電子報,新文章上線就通知你

免費,隨時可取消。

送出即表示同意服務條款與隱私權政策。