SPARKLINE 迷你圖表系列(一):折線圖

更新 發佈閱讀 13 分鐘
raw-image
raw-image
raw-image

儲存格裡面除了數字、文字、函式之外,竟然還可以放圖表?沒錯,可以的!如果你想製作這樣的迷你圖表,我們可以用 SPARKLINE 這個函式達成。

SPARKLINE 函式是可以會按照你指定的資料、在儲存格內繪製圖表的函式。這類迷你圖表可以用在資料分析、專案進度表、甘特圖、資料儀表板上,又或是當因為版面限制、不方便放一般的圖表(或是不想放太複雜的圖表)的時候,迷你圖表也是個不錯的方案。

這函式本身其實不難,但可以設定的屬性很多!我會盡力說明 SPARKLINE 函式怎麼寫、屬性怎麼設定,把這些東西梳理清楚,也會附上練習給大家試看看。

歡迎到這邊參考 SPARKLINE 的各種應用方式:



語法

在製作迷你圖表前,先了解一下 SPARKLINE 的語法吧。

=SPARKLINE(資料範圍, [圖表設定])
  • 資料範圍:想要作圖的數值,可以是單列、單欄、雙列或雙欄。例如:
單列:A2:E2、B3:3、C10:H10
單欄:A2:A10、B2:B10、C30:C
雙列:A2:H3、B5:P6、C10:11
雙欄:A2:B、C2:D、G5:H

在範圍設定成雙列跟雙欄的時候,我們可以在 SPARKLINE 進一步設定橫軸跟縱軸的屬性,等等會進一步說明。

  • 圖表設定:選填。在這邊你可以填入不同的圖表屬性和相對應的參數、改變迷你圖表的外觀。如果什麼都不填,會出現一張素素的折線圖。

圖表設定這段語法會有三個特徵:

  • 首先,要用一對花括號 { } 開頭。
  • 「屬性」跟「參數」會成對出現、並且用逗號 , 分開。
  • 一組屬性跟另一組屬性之間有分號 ; 隔著。

實際寫起來會像這樣:

=SPARKINE(A2:A)
=SPARKINE(A2:A, {"charttype", "column"})
=SPARKINE(A2:A, {"charttype", "column"; "empty", "none"})
=SPARKLINE(A2:A, {"charttype", "winloss"; "axis", false; "lastcolor", "blue"})

如果你的屬性有好幾組,SPARKLINE 函式可能會很長,所以我建議在寫函式的時候適度用 Ctrl/Command + Enter 換行,閱讀和維護會比較方便,像這樣:

=SPARKLINE(A2:B, 
{"charttype", "line"; "linewidth", 3;
"empty", "ignore"; "ymin", 10; "ymax", 10}
)

接下來一一介紹折線圖可以設定的屬性跟參數。篇幅可能會有點長,你可以利用左手邊的章節目錄,跳到你想了解的屬性唷。

歡迎打開這邊的試算表,複製一份,跟我一起練習看看。


第一步

總之我們先試著用 SPARKLINE 做第一張迷你圖表吧!點選「折線圖練習」工作表,應該會看到我幫你準備的練習題目。我們先看第一個:

raw-image

我們來用 C7 到 L7 的數值,在 B3 這個儲存格劃出一張迷你折線圖看看。

在 B3 用 SPARKLINE 的語法寫:

=SPARKLINE(C7:L7

然後圖表設定怎麼做?沒關係,總之先什麼都不寫,放上右括號暫時把函式寫完吧:

=SPARKLINE(C7:L7)
raw-image

看看結果:

raw-image

出現一張折線圖!

折線圖的確呈現出數值的高低變化,但是橫軸的話 SPARKLINE 又是怎麼樣處理呢?

如果你還記得國中的直角座標的話,你可以想像 SPARKLINE 在指定 x 座標時,把第一個值當成 1、第二個值是 2,以此類推;指定 y 座標的時候,則是依數值的大小而決定,最後再透過 x 跟 y 座標畫圖,像是這樣:

raw-image

這就是 SPARKLINE 畫橫軸時的邏輯。如果你想用雙列(或雙欄)這種 (x, y) 直角坐標做比較複雜的圖形,不妨用這個邏輯去思考、準備你的資料。

像是你可以用直角坐標的邏輯,畫一個書寫體的 M:

raw-image



折線圖屬性與參數設定

OK,還可以怎麼改變折線圖的外觀呢?我們有這些屬性可以用:

raw-image


color(折線圖顏色)

指定折線圖顏色有三個方法:

  • 用英文寫指定的顏色名稱,例如 green、yellow、blue、red 等等。
  • HEX 色碼,例如 #008000、#FFFF00、#0000FF、#FF0000。
=SPARKLINE(C7:L7, {"color", "green"})
=SPARKLINE(C7:L7, {"color", "#008000"})
  • 直接更改儲存格的文字顏色。你可以點選折線圖所在的儲存格,再更改文字顏色:
raw-image

可是,要打什麼英文詞才可以?HEX 色碼又要怎麼找呢?請打開左邊章節目錄的「圖表顏色彙整」,我把答案都放在那了,去看看吧~

對了,charttype(圖表類型)呢?為什麼不寫?這是因為 SPARKLINE 函式預設產生的圖表就是折線圖,所以我們就不需要再額外指定圖表類型了。當然,如果你想讓你的函式好讀一點,加上去也沒關係,不影響執行結果。語法是 "charttype", "line":

=SPARKLINE(C7:L7, {"color", "green"; "charttype", "line"})

至於屬性要哪個先寫、哪個後寫,都沒關係唷。來看看上面這段語法的執行結果:

raw-image


linewidth(折線粗細)

我們可以再用 linewidth 屬性、用數字指定折線的粗細。數字越小越細、越大則越粗,預設值是 1。像是下圖就是 3 的粗度,比剛剛的粗了一點。

=SPARKLINE(C7:L7, {"color", "green"; "linewidth", 3})
raw-image


xmin、xmax、ymin、ymax(橫軸、縱軸的上下限)

接下來看看橫軸跟縱軸的上下限。我們只需要在 xmin、xmax、ymin、ymax 後面寫上下限的數字,就可以輕鬆設定了。上下限越寬,可以容納的值就越多、圖可能會有更多「留白」的感覺。來看看這邊:

raw-image

如果你需要畫出有 x 跟 y 值的圖表,也可以一次指定雙列(或雙欄)作為資料範圍。在 B11 儲存格寫:

=SPARKLINE(C15:L16)
raw-image

感覺好像剛上面差不多?但我們可以進一步指定軸的上下限,稍稍改變折線圖的外觀。

假如我們把橫軸上下限設定成 1 到 5,就會像這樣:

=SPARKLINE(C15:L16, {"xmin", 1; "xmax", 5})
raw-image

只出現前五個資料點,這是因為我們的上限是 5。雖然我們的 x 值在 H15 之後還有數值,但不會被畫進去。另外,橫軸的上下限只能在資料有雙列(或雙欄)的資料下設定。如果在剛剛只指定一列資料範圍的狀況下,設定 xmin 跟 xmax 會沒有效果。

那麼縱軸的上下限呢?我們設定 ymin 是 1、ymax 是 50 看看:

=SPARKLINE(C15:L16, {"ymin", 1; "ymax", 50})
raw-image

折線好像被壓扁了,這是因為我們現在整個圖表的縱軸上限拉到 50 的關係。


empty:資料若有空白值的處理方式

再來是如果你的資料範圍內有空白值:

raw-image

你可以告訴 SPARKLINE 怎麼處理這種狀況,有兩個模式:

  • ignore:把空白值忽略,繼續往下畫。
  • zero:把空白值當成 0。

如果什麼都不指定的話,預設值是 ignore,就像這樣:

=SPARKLINE(C24:L24)

=SPARKLINE(C24:L24, {"empty", "ignore"})
raw-image

第一個資料點是 10,第二個資料點是空白,第三個資料點是 8。SPARKLINE 直接忽略第二個資料點,所以第一個資料點的 10 就直接連到第二個資料點的 8 了。

如果指定 empty 的屬性是 zero,就會像這樣:

=SPARKLINE(C24:L24, {"empty", "zero"})
raw-image

第二個資料點就直接變成 0 了。


nan:資料若有非數字的處理方式

這個跟剛才處理空白很像。你可以用 ignore 和 convert 這兩個模式告訴 SPARKLINE 要怎麼處理這類不是數字的資料。你可以看到這列數值的第二個資料點出現一瓣西瓜 🍉,很明顯不是數字:

raw-image

預設值也是 ignore,忽略掉非數字的值,直接畫下一個值。

=SPARKLINE(C32:L32)
或是
=SPARKLINE(C32:L32, {"nan", "ignore"})
raw-image

再來是 convert,可以把非數字的值轉換成 0。

raw-image


rtl:是否由右到左的方向呈現

rtl 是 right-to-left 的簡寫,代表「由右到左」,可以設定 true 或 false 兩個模式,預設是 false。如果設定成 true,第一個資料點會出現在圖表右邊、最後一個資料點則是在左邊,可以說把折線圖水平翻轉過來了。展示一個由右到左的範例給大家:

=SPARKLINE(C40:L40, {"rtl", true})
raw-image

這邊的 true 跟 false 是布林值,不必用雙引號括起來唷。


你也當然可以把所有的屬性用上,做成自己喜歡的樣子。我做了一個:

=SPARKLINE(C48:L48, 
{"ymin", -20; "ymax", 20;
"color", "orange"; "linewidth", 2})
raw-image

這就是全部的折線圖可以用的屬性了!


應用

你可以用迷你折線圖製作一個簡易的股票趨勢折線圖!請點開「股票趨勢折線圖練習」工作表:

raw-image

我們可以用之前介紹過的 GOOGLEFINANCE 函式,叫出近三十天台幣兌換日圓的價格。在 B3 寫:

=GOOGLEFINANCE("TWDJPY", "price", today()-30, today(), "DAILY")
  • "TWDJPY":台幣轉日圓。
  • "price":取得價格。
  • today()-30:開始日,從今天往回算 30 天。
  • today():結束日,今天。
  • "DAILY":取得範圍內每日的報價。
raw-image

Enter 敲下去,就會出現最近 30 天每日的報價:

raw-image

搞定!那我們再用剛剛的 SPARKLINE 函式,畫出 C4 到 C33 這段值的折線圖。我們就可以在右手邊已經合併好的儲存格,寫下:

=SPARKLINE(C4:C33)
raw-image

我們當然可以再利用不同屬性調整折線圖,像是:

=SPARKLINE(C4:C33, 
{"color", IF(C33 > C32, "red", "green");
"ymax", MAX(C4:C33) * 1.05; "ymin", MIN(C4:C33) / 1.05;
"linewidth", 2}
)
  • color:如果今天的價格比昨天高,折線圖顏色則顯示紅色,反之則綠色。
  • ymax:為了要讓圖表的線條看起來平緩一點,我用 MAX 函式找到價格裡面最大的值、再乘上 1.05 倍,把它設為縱軸上限。
  • ymin:同上,用 MIN 函式找到價格裡最小的值後除 1.05 倍,設為縱軸下限。
  • linewidth:設定為 2,讓線條粗一點點。
raw-image

如果想瞭解折線圖的設計方法,可以到之前介紹給大家的「我該用哪個圖表?(一)折線圖」看看唷!


圖表顏色彙整

  • 如果你想用英文指定顏色:請到這篇維基百科的文章,複製「實名」欄位裡的英文名稱、在你的 color 屬性後貼上就可以囉!
raw-image
  • 如果你想用 HEX 色碼指定顏色:我也幫你準備好了!請你點開這個連結
raw-image

選到喜歡的顏色後,就可以到 HEX 那個欄位複製色碼了。


我預計會再寫三篇文,介紹 SPARKLINE 的堆疊長條圖、直條圖和勝負分析走勢圖怎麼使用。歡迎你繼續追蹤!

如果你喜歡這次的文章,歡迎你透過這些方法支持我:
・按下愛心、按下儲存
・留言告訴我你的想法
・加入喜特先生的官方沙龍,即時看到我發布的教學
・付費訂閱喜特先生的官方沙龍,加入每月小額訂閱方案
・追蹤喜特先生的 Facebook
・按這邊小額贊助我的創作!

想要看更多文章,歡迎來到我的 Notion 頁面找找有沒有你需要的資源喔!

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



留言
avatar-img
喜特先生官方沙龍
21.2K會員
158內容數
簡潔,快速,有效, 讓你的日常生活、工作生產力大提升! ___ 快按「加入」,馬上追蹤所有喜特先生的更新,有 Google 試算表教學、Google Apps Script 的研究、數據分析課程的開箱,還有 Google 試算表疑難雜症的解題分享唷!💪
2025/04/20
請你試著在 Google 試算表的儲存格上打這個,按下 Enter: =WHATTHEFOXSAY() 會有神奇的事情發生喔 ✨
Thumbnail
2025/04/20
請你試著在 Google 試算表的儲存格上打這個,按下 Enter: =WHATTHEFOXSAY() 會有神奇的事情發生喔 ✨
Thumbnail
2024/06/02
上次介紹了 REPLACE 函式,可以用來取代儲存格內的特定文字。其實我們還有一個相似的函式叫 SUBSTITUTE,也有取代的功能,不過當然有一點不一樣的地方!今天會分享語法的範例,還有跟 REPLACE 的差異在哪。一起來看看!
Thumbnail
2024/06/02
上次介紹了 REPLACE 函式,可以用來取代儲存格內的特定文字。其實我們還有一個相似的函式叫 SUBSTITUTE,也有取代的功能,不過當然有一點不一樣的地方!今天會分享語法的範例,還有跟 REPLACE 的差異在哪。一起來看看!
Thumbnail
2024/05/25
這是文字處理基礎函式的第四篇文章,今天要來介紹 REPLACE 函式! REPLACE 可以取代掉儲存格內的文字,今天會分享一下它語法怎麼寫、也有兩個實際應用的案例。一起來看看! REPLACE 語法 REPLACE 的語法長了一點點,有四個參數要設定: =REPLACE(要取代
Thumbnail
2024/05/25
這是文字處理基礎函式的第四篇文章,今天要來介紹 REPLACE 函式! REPLACE 可以取代掉儲存格內的文字,今天會分享一下它語法怎麼寫、也有兩個實際應用的案例。一起來看看! REPLACE 語法 REPLACE 的語法長了一點點,有四個參數要設定: =REPLACE(要取代
Thumbnail
看更多
你可能也想看
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
Google 試算表有個叫做 SPARKLINE 的函式,可以讓你在一個儲存格內生成一張迷你圖表。我寫了一篇系列文提供了教學,歡迎來看看唷!
Thumbnail
Google 試算表有個叫做 SPARKLINE 的函式,可以讓你在一個儲存格內生成一張迷你圖表。我寫了一篇系列文提供了教學,歡迎來看看唷!
Thumbnail
在 Google Sheets 中,SPARKLINE 函數提供了一個方便的方法來創建迷你圖表,讓你可以輕鬆地視覺化數據。這些迷你圖表可以是折線圖、柱狀圖或其他類型,並且可以在單個儲存格中顯示。本教學將向你展示如何使用 SPARKLINE 函數來創建迷你圖表,讓你能夠快速而直觀地理解你的數據。
Thumbnail
在 Google Sheets 中,SPARKLINE 函數提供了一個方便的方法來創建迷你圖表,讓你可以輕鬆地視覺化數據。這些迷你圖表可以是折線圖、柱狀圖或其他類型,並且可以在單個儲存格中顯示。本教學將向你展示如何使用 SPARKLINE 函數來創建迷你圖表,讓你能夠快速而直觀地理解你的數據。
Thumbnail
有沒有遇過,EXCEL繪製折線圖時,原始資料沒有數據,結果導致折線圖斷了一截呢? 其實一個小動作,就可以解決這個問題囉!! 先點選圖表 功能區選擇圖表設計 點選選取資料 點選隱藏和空白儲存格 空白儲存格顯示方式:選擇以線段連結資料點 這樣折線圖就完美的接起來了~ 覺得分享有幫助到你在工作上提升效率,
Thumbnail
有沒有遇過,EXCEL繪製折線圖時,原始資料沒有數據,結果導致折線圖斷了一截呢? 其實一個小動作,就可以解決這個問題囉!! 先點選圖表 功能區選擇圖表設計 點選選取資料 點選隱藏和空白儲存格 空白儲存格顯示方式:選擇以線段連結資料點 這樣折線圖就完美的接起來了~ 覺得分享有幫助到你在工作上提升效率,
Thumbnail
你是不是常常要面對堆積如山的excel表格?其實有一些簡單的訣竅,可以讓你大大減輕製作數十頁資料的痛苦......
Thumbnail
你是不是常常要面對堆積如山的excel表格?其實有一些簡單的訣竅,可以讓你大大減輕製作數十頁資料的痛苦......
Thumbnail
可以同時表示各產品及總和的在Excel 圖表
Thumbnail
可以同時表示各產品及總和的在Excel 圖表
Thumbnail
儲存格裡面除了數字、文字、函式之外,竟然還可以放圖表?沒錯,可以的!如果你想製作這樣的迷你圖表,我們可以用 SPARKLINE 這個函式達成。來看看怎麼做!
Thumbnail
儲存格裡面除了數字、文字、函式之外,竟然還可以放圖表?沒錯,可以的!如果你想製作這樣的迷你圖表,我們可以用 SPARKLINE 這個函式達成。來看看怎麼做!
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News