VSTACK関数・HSTACK関数の使い方|表を縦・横につなげる・見出しの付け方

VSTACK関数・HSTACK関数の使い方|表を縦・横につなげる・見出しの付け方

エクセルで、複数の表や範囲を縦につなげて1つの表にするには VSTACK関数、横につなげるには HSTACK関数を使います。4月と5月の売上表なら、=VSTACK(A4:B5,A9:B11) で5人分の1つの表になります。

月ごと・シートごとに分かれた表をまとめるときに便利で、元の表を書き換えると結果も自動で変わります。この記事では、VSTACK関数・HSTACK関数の基本、見出しの付け方、計算した列を横に加える方法、つないだ表の合計、列の数が違うときの #N/A までを、1つの表で説明します。下の練習ツールで、売上を書き換えて結果の変わり方を試せます。

目次

VSTACK関数・HSTACK関数の書き方

VSTACK関数の構文
数式=VSTACK(配列1,[配列2],…)
ひとことで範囲を縦につなぐ
配列1
縦につなぐ範囲です
[配列2]
縦につなぐ範囲です(省略できます)
…
同じように続けて指定できます
HSTACK関数の構文
数式=HSTACK(配列1,[配列2],…)
ひとことで範囲を横に並べる
配列1
横に並べる範囲です
[配列2]
横に並べる範囲です(省略できます)
…
同じように続けて指定できます

VSTACK関数は指定した順に下へ、HSTACK関数は右へつなげます。Microsoft 365・Excel 2024 で使えます。

2つの表を縦につなぐ(VSTACK)

手順:D3 に VSTACK の式を入れて Enter

4月(A4:B5)と5月(A9:B11)の表を、縦につないで 5 人分の 1 つの表にします。 D3 に次の式を入力して、Enter キーを押します❶。

D3 に入れる式
=VSTACK(A4:B5,A9:B11)
A4:B5 配列1(4月の表)A9:B11 配列2(5月の表)
ひとことで4月の表の下に5月の表を縦につないで、1 つの表にする
式を分けて読むと(色は画像の枠と同じ)
配列1A4:B5
上に置く表は?
→ 4月の 2 人分(見出しは入れない)
配列2A9:B11
下につなぐ表は?
→ 5月の 3 人分
自分の表で使うときは
青と紫に「つなぎたい表」を上から順に入れます。3 つ以上でも , で続けられます。列の数はそろえます。例:3 か月分の表を縦につなぐ=VSTACK(A3:C20,E3:G20,I3:K20)
  • Microsoft 365・Excel 2024 で使えます(Excel 2021 以前では使えません)。結果が広がる先のセルに何か入っていると #SPILL! になります。
  • 列の数が違う表をつなぐと、足りない所が #N/A になります。
エクセルのVSTACK関数で4月と5月の表を縦につなぐ式と、配列1・配列2を色分けし、結果が広がる範囲を示した画面
エクセルのVSTACK関数で4月と5月の表を縦につなぐ式と、配列1・配列2を色分けし、結果が広がる範囲を示した画面

確認:4月の 2 行の下に、5月の 3 行がつながった

エクセルのVSTACK関数で、4月の2行と5月の3行が縦につながりD3からE7に広がったことを色で示した画面
エクセルのVSTACK関数で、4月の2行と5月の3行が縦につながりD3からE7に広がったことを色で示した画面

答えは 5 人分の 1 つの表 になりました❷。式は、次の順に計算しています。

  1. 4月の表(A4:B5)を上に置く
    ⇒ D3:E4
  2. その下に5月の表(A9:B11)をつなぐ
    ⇒ D3:E7 の 5 行
ヒント:見出しも付けるには
=VSTACK(A3:B3,A4:B5,A9:B11) のように、先頭に見出しの行を入れます。

まず動かしてみよう|この記事のサンプルをその場で試せます

練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。

VSTACK関数・HSTACK関数の使い方|やりたいこと別の式

やりたいこと式(例)結果
2つの表を縦につなぐ=VSTACK(A4:B5,A9:B11)5行2列の表
見出しも付ける=VSTACK(A3:B3,A4:B5,A9:B11)見出し+5行
計算した列を横に加える=HSTACK(A9:A11,B9:B11,B9:B11*0.1)名前・売上・1割の3列
つないだ売上の合計=SUM(VSTACK(B4:B5,B9:B11))510
列の数が違う=VSTACK(A4:B5,A9:A11)足りない所が #N/A
エクセルのVSTACK関数とHSTACK関数で表を縦・横につないだ表
エクセルのVSTACK関数とHSTACK関数で表を縦・横につないだ表

見出しも付ける

VSTACK関数の式
数式=VSTACK(A3:B3,A4:B5,A9:B11)
ひとことで範囲を縦につなぐ
A3:B3
縦につなぐ範囲です
A4:B5
縦につなぐ範囲です
A9:B11
縦につなぐ範囲です

最初に見出しの行(A3:B3)を入れると、「名前・売上」の見出し付きの表になります。見出しは1回だけ入れ、2つ目の表は見出しを除いた範囲を指定します。

計算した列を横に加える(HSTACK)

HSTACK関数の式
数式=HSTACK(A9:A11,B9:B11,B9:B11*0.1)
ひとことで範囲を横に並べる
A9:A11
横に並べる範囲です
B9:B11
横に並べる範囲です
B9:B11*0.1
横に並べる範囲です

HSTACK関数は範囲を横に並べます。名前・売上に、売上の1割を計算した列を加えると、鈴木 150・15、高橋 95・9.5、田中 60・6 の3列の表になります。

つないだ表をまとめて計算する

SUM関数の式
数式=SUM(VSTACK(B4:B5,B9:B11))
ひとことで合計を求める
VSTACK(B4:B5,B9:B11)
合計する範囲です

2か月分の売上をつないで SUM関数で合計すると 510 です。離れた範囲を1つにまとめてから計算できます。

列の数が違うときは #N/A になる

VSTACK関数の式
数式=VSTACK(A4:B5,A9:A11)
ひとことで範囲を縦につなぐ
A4:B5
縦につなぐ範囲です
A9:A11
縦につなぐ範囲です

2列の表に1列の範囲をつなぐと、足りない2列目に #N/A が入ります。=IFERROR(VSTACK(A4:B5,A9:A11),"") のように IFERROR関数で空にできます(IFERROR関数の使い方)。

VSTACK関数・HSTACK関数がうまくいかないときの確認表

症状考えられる原因対処
「#N/A」が表示されるつないだ範囲の列(行)の数が違う範囲の大きさをそろえるか、IFERROR関数で空にする。
「#SPILL!」になる結果が広がる先のセルに値が入っている右下のセルを空ける。
空のセルが 0 になる元の範囲に空のセルがある範囲を見直すか、FILTER関数で空を除く。
「#NAME?」になる使えるバージョンではないコピーして貼り付けでまとめる。

VSTACK関数・HSTACK関数のよくある質問

別のシートの表もつなげる?

つなげます。=VSTACK(Sheet1!A2:B10,Sheet2!A2:B10) のように、シート名を付けて範囲を指定します。

つないだ表から重複を除くには?

UNIQUE関数と組み合わせます(UNIQUE関数の使い方)。

あわせて読みたい:配列の関連記事

練習用ファイル:練習用Excelファイル(.xlsx・無料)

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次