更新於 2024/04/06閱讀時間約 4 分鐘

VSTACK、HSTACK:堆疊範圍、統整資料

在今年(2023)二月初,Google 試算表再(追上 Excel 的腳步)推出了十一個新函式!我會選其中幾個跟大家分享一下,希望可以幫助到你。
這次要介紹的兩個叫做 VSTACK 跟 HSTACK,可以讓你把範圍縱向或橫向堆疊起來,省去合併資料的一點麻煩。
・VSTACK:Vertical Stack「縱向堆疊」
・HSTACK:Horizontal Stack「橫向堆疊」
比如說,我想把這兩張表縱向堆疊,合併成一張表:
如果用了 VSTACK:
=VSTACK(A3:B7, A12:B14)
這樣就合併好了!
橫向堆疊當然也可以:
我把上方的兩個範例試算表放在這邊,歡迎參考!
過往我們可以用花括號({;} 或是 {,})來達到這個效果(延伸閱讀:{ 看過這組花括號嗎? }),但要注意左右花括號、分號或逗號有沒有正確寫對,其實不太好寫,而這個 VSTACK 跟 HSTACK 就可以省去這些麻煩,可以說是一大福音。
VSTACK 會以範圍一作為最上方的範圍、再下來是範圍二、範圍三等其他範圍。
ge
HSTACK 則是以範圍一作為最左邊的範圍、再右邊是範圍二、範圍三等其他範圍。
ge
應用層面除了統整合併之外,也當然可以跟其他像是 IMPORTRANGE、QUERY、FILTER、SORT 等等的函式搭配,語法也相當單純,我們就一起來看看怎麼寫吧!

語法說明

=VSTACK(範圍一, [範圍二...], [範圍三...])
=HSTACK(範圍一, [範圍二...], [範圍三...])
簡單來說就是,把你想要合併的範圍指定好,用逗號隔開就可以了。
比如說:
=VSTACK(A1:D3, E10:H40)
=HSTACK(A1:D3, E10:H40, C5:F10)
就是這麼單純!

注意事項

  • VSTACK 指定範圍的欄數不一致的話,會出現 #N/A 錯誤。
假如我們想用 VSTACK 把下圖上方 A3 到 C7 的這張表、和下方的 A12 到 B14 的表疊起來的話,就會看到右手邊這樣的 #N/A 錯誤。
這是因為第一個範圍(A3:C7)一共有三欄、而第二個範圍(A12:B14)卻只有兩欄。這時候會建議用 IFNA 的函式,包在 VSTACK 外面:
=IFNA(VSTACK(A3:C7, A12:B14), "")
就可以讓錯誤消失了:
  • HSTACK 指定範圍的列數不一致的話,會出現 #N/A 錯誤。跟上面的道理一樣,也可以用 IFNA 來避免,這邊就不贅述囉!

應用

VSTACK + QUERY
如果我們有多個範圍需要併在一起再用 QUERY 查找資料,跟 VSTACK 一起用就是個很棒的組合!
=QUERY(
      VSTACK(範圍一, 範圍二, ...),
      "SELECT ..."
     )
但要注意這邊就要用 Col 的欄位數字(Col1、Col2、Col3 等)來指定欄位。

VSTACK + IMPORTRANGE
我們也可以用 VSTACK 把 IMPORTRANGE 的結果合併起來:
=VSTACK(
       IMPORTRANGE(第一個網址, 工作表和範圍),
       IMPORTRANGE(第二個網址, 工作表和範圍),
       ...
      )
因為實務上我們比較常處理縱向的資料,所以這邊主要是用 VSTACK 做示範,但也當然可以用 HSTACK 來跟不同函式搭配唷!

如果你喜歡這次的文章,歡迎你透過這些方法支持我:
・按下愛心、按下儲存
・留言告訴我你的想法
・加入喜特先生的官方沙龍,即時看到我發布的教學
・付費訂閱喜特先生的官方沙龍,加入每月小額訂閱方案
・追蹤喜特先生的 Facebook
・按這邊小額贊助我的創作!
想要看更多文章,歡迎來到我的 Notion 頁面找找有沒有你需要的資源喔!
我是喜特先生,Mr. Sheet,我們下個教學見!

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.