【Excel】複数のシートの表をサクッと一つに!VSTACK関数の使い方を徹底解説

Excel
すもリーマン
すもリーマン

あちこちに散らばったExcelの表、一つにまとめたいけど、毎回コピペは面倒…

でんちゃん
でんちゃん

こんなお悩み、抱えていませんか?

今回は、そんな悩みを一瞬で解決してくれるExcelの超便利関数「VSTACK関数」を徹底解説します。


VSTACK関数って何?いつ使うの?

VSTACK関数は「データを縦に積み重ねる」魔法の呪文!

VSTACK」は、「Vertical(垂直)」と「Stack(積み重ねる)」を組み合わせた言葉です。

その名の通り、複数の表やデータ範囲を縦方向にまとめて、一つの大きな表にしてくれる関数なんです。

すもリーマン
すもリーマン

イメージとしては、バラバラになっているブロックを、上から順番にどんどん積み重ねていく感じだね!

項目2024年4月売上
商品A100
商品B150

項目2024年5月売上
商品A120
商品B180

でんちゃん
でんちゃん

この図のように、VSTACK関数を使えば、手作業でコピペする手間なしに、あっという間にデータを統合できます。

VSTACK関数はどんな時に役立つの?

でんちゃん
でんちゃん

VSTACK関数は、特に以下のような場面で大活躍します!

  • 月ごとの売上データをまとめて年間の集計表を作りたい
  • 支店ごとの顧客リストを一つのリストに統合したい
  • アンケートの回答結果がシートごとに分かれていて、全体を分析したい
  • 複数のシステムからダウンロードしたデータをまとめて分析したい
でんちゃん
でんちゃん

手作業でコピペしていると、貼り忘れや貼り間違いなどのミスが起こりがちですよね。VSTACK関数を使えば、そうしたヒューマンエラーを防ぎ、正確かつスピーディーに作業を進めることができます!

VSTACK関数が使えるExcelのバージョンは?

残念ながら、VSTACK関数はすべてのExcelで使えるわけではありません

この関数は、Microsoft 365のExcel、またはExcel 2024、そしてWeb版のExcelで利用できます。もしお使いのExcelがこれら以外の古いバージョンだと、VSTACK関数は使えないのでご注意くださいね。


VSTACK関数の基本的な使い方をマスターしよう!

でんちゃん
でんちゃん

まずは、一番基本となる「同じシート内にある複数の表をまとめる方法」から見ていきましょう。

書式(関数の形)はとってもシンプル!

VSTACK関数の書式は、たったこれだけです。

=VSTACK(配列1, [配列2], …)

  • 配列1: まず最初に、結合したい**一番目の範囲(表の場所)**を指定します。
  • [配列2], …: その後に、カンマ(,)で区切って、結合したい二番目以降の範囲をどんどん追加していきます。いくつでも追加できますよ!

具体例で見てみよう!同じシート内の表をまとめる

でんちゃん
でんちゃん

今回は、以下のような「商品A」と「商品B」の売上データを使って説明します。


商品Aの売上(A1:C3)

ABC
1日付商品名売上
22025/7/1商品A1000
32025/7/2商品A1200

商品Bの売上(A5:C7)

ABC
5日付商品名売上
62025/7/1商品B800
72025/7/3商品B950

【手順1】結果を表示したいセルを選ぶ

まとめた表を表示させたいセルをクリックします。今回はA10セルにまとめてみましょう。

【手順2】「=VSTACK(」と入力する

A10セルに「=VSTACK(」と入力します。

【手順3】結合したい範囲を指定する

まずは「商品Aの売上」の範囲、A1:C3をマウスでドラッグして選択します。

範囲を選択したら、キーボードの「,」(カンマ)を入力します。

【手順4】次の範囲を指定する

次に「商品Bの売上」の範囲、A6:C7をマウスでドラッグして選択します。

【手順5】カッコ「)」を閉じてEnter!

すべての範囲を選択し終わったら、キーボードの「)」(閉じカッコ)を入力してEnterキーを押します。

すると…

でんちゃん
でんちゃん

このように、2つの表が一つにまとまって表示されました!

VSTACK関数のすごい機能「スピル」とは?

VSTACK関数のような新しい関数は「スピル機能」という特別な能力を持っています。

これは、数式を入力したたった一つのセルから、結果が複数行・複数列にわたって自動的にバーッと展開される機能のことです。

あなたがA10セルに数式を入力しただけで、A10セルからA15セルまで勝手にデータが広がったのは、このスピル機能のおかげなんです。

もしデータの一部を修正したい場合は、一番最初に数式を入力したA10セルだけを編集すればOKです。他のセルは触らなくても自動で更新されます。とっても便利ですよね!


【本題】複数のシートに分かれた表を一つにまとめる方法

でんちゃん
でんちゃん

さて、いよいよ本題です!

「商品A」の売上と「商品B」の売上が、それぞれ別のシートに分かれている場合を想定して、それらを一つのシートにまとめる方法を見ていきましょう。

【準備】複数のシートにデータを用意しよう

今回は、以下のようにシートを分けてデータを作成します。

シート名:「商品A_売上」

ABC
1日付商品名売上
22025/7/1商品A1000
32025/7/2商品A1200
「商品A_売上」シート

シート名:「商品B_売上」

ABC
1日付商品名売上
22025/7/1商品B800
32025/7/3商品B950
「商品B_売上」シート

そして、まとめた結果を表示させるための新しいシート「集計結果」を用意しておきましょう。

【手順1】「集計結果」シートで数式を入力するセルを選ぶ

まとめた表を表示させたい「集計結果」シートのセルをクリックします。
今回はA1セルにまとめてみましょう。

【手順2】「=VSTACK(」と入力する

A1セルに「=VSTACK(」と入力します。

【手順3】最初のシートの範囲を指定する

シートタブで「商品A_売上」シートをクリックして移動します。

そして、「商品A_売上」シートのA1:C3の範囲をマウスでドラッグして選択します。

すると、数式バーには=VSTACK(‘商品A_売上’!A1:C3のように、シート名が自動で入ります。

範囲を選択したら、キーボードの「,」(カンマ)を入力します。

【手順4】次のシートの範囲を指定する

次にシートタブで「商品B_売上」シートをクリックして移動します。

(画像挿入:シートタブで「商品B_売上」が選択された状態のExcel画面)

そして、「商品B_売上」シートのA2:C3の範囲をマウスでドラッグして選択します。

数式バーは=VSTACK(‘商品A_売上’!A1:C3,’商品B_売上’!A2:C3のようになります。

【手順5】カッコ「)」を閉じてEnter!

すべての範囲を選択し終わったら、キーボードの「)」(閉じカッコ)を入力してEnterキーを押します。

すると、自動的に「集計結果」シートに戻り、このようにまとめて表示されます!

「集計結果」シートに、VSTACK関数でまとめられた結果

でんちゃん
でんちゃん

これで、複数のシートに分かれていた表が、たった一つのシートにまとまりました!

【応用技】シート名を連続して指定する「串刺し参照」

でんちゃん
でんちゃん

もし、たくさんのシートをまとめていて、それらのシートが連続して並んでいる場合は、「串刺し参照」という便利な方法で範囲を指定できます。

例えば、「商品A_売上」シートから「商品C_売上」シートまで連続してデータをまとめたい場合、数式はこうなります。

=VSTACK(‘商品A_売上’:’商品C_売上’!A1:C3)

これは、「商品A_売上」シートから「商品C_売上」シートまでのすべてのシートのA1:C3範囲をまとめてね、という意味になります。

ただし、この方法は参照するシートのセル範囲(例: A1:C3)がすべて同じ形式である場合のみ有効です。
異なる形式のデータが混ざっていると、うまくいかないことがあるので注意してくださいね。


VSTACK関数を使う上での注意点とコツ

VSTACK関数はとっても便利ですが、いくつか知っておきたい注意点や、さらに使いこなすためのコツがあります。

列数が異なると「#N/A」エラーが出ちゃうかも!

VSTACK関数で複数の範囲を結合する際、もしそれぞれの範囲の列の数がバラバラだと、列数が足りない部分に「#N/A」というエラーが表示されてしまいます。

例えば、

  • 表1: 「日付」「商品名」「売上」の3列
  • 表2: 「商品名」「売上」の2列

というように列数が違う場合、表2をまとめたときに「日付」の列が空になるので、そこに「#N/A」と表示されてしまう、という感じです。

このエラーを避けたい場合は、結合するすべての表の列数を同じにしておくのが一番です。

もしどうしても列数が違う表をまとめたい場合は、IFERROR関数などと組み合わせて、エラーを空白にしたり、任意の文字に置き換えたりする方法もあります。

=IFERROR(VSTACK(A1:C3, D1:E3),””)

データが増えるたびに手動で範囲を直すのは面倒…「テーブル機能」が超おすすめ!

先ほど、セルの範囲(例: A1:C3)を直接指定してVSTACK関数を使いましたよね。

でも、もし毎月新しいデータが追加される場合、そのたびにVSTACK関数の範囲をA1:C3からA1:C5のように手動で修正するのは面倒です。

そこで大活躍するのが、Excelの「テーブル機能」です!

テーブル機能とは?

表の範囲を「テーブル」として設定することで、新しい行や列を追加すると、自動的にその範囲が拡張されるようになる便利な機能です。

このテーブル機能をVSTACK関数と組み合わせると、データの追加があっても自動的に結果に反映されるため、数式を一切修正する必要がなくなります!

【手順】表をテーブルに変換する方法

  1. データがある範囲(例: A1:C3)を選択します。
  2. 「挿入」タブをクリックし、「テーブル」を選択します。
  3. 「テーブルの作成」ダイアログが表示されたら、「先頭行をテーブルの見出しとして使用する」にチェックが入っていることを確認し、「OK」をクリックします。

テーブル作成

これで、表がテーブルに変換され、テーブル名が自動で付きます(例: テーブル1、テーブル2)。

VSTACK関数でテーブルを結合する

テーブルに変換したら、VSTACK関数ではセルの範囲ではなく、テーブル名を指定します。

例えば、先ほどの「商品A_売上」の表を商品A_テーブル、「商品B_売上」の表を商品B_テーブルという名前にした場合、数式はこうなります。

=VSTACK(商品A_テーブル, 商品B_テーブル)

でんちゃん
でんちゃん

これで、それぞれのテーブルに新しい行を追加しても、自動的にVSTACK関数の結果に反映されるようになります。とってもスマートですよね!

他の関数と組み合わせてもっと便利に!

でんちゃん
でんちゃん

VSTACK関数は単体でも十分便利ですが、他の関数と組み合わせることで、さらに便利なデータ処理が可能になります。

  • SORT関数で並べ替え
    VSTACKでまとめたデータを、日付順や売上順に並べ替えたい場合は、SORT関数と組み合わせます。
    =SORT(VSTACK(範囲1, 範囲2), 1, 1) '1列目(日付)を昇順で並べ替える例
  • FILTER関数で絞り込み
    まとめたデータの中から、特定の条件(例: 商品Aのデータだけ)を抽出したい場合は、FILTER関数と組み合わせます。
    =FILTER(VSTACK(範囲1, 範囲2), VSTACK(範囲1, 範囲2)![商品名]="商品A")
  • UNIQUE関数で重複を除去
    結合したデータの中から、重複している行を削除して、ユニークなデータだけを表示したい場合は、UNIQUE関数と組み合わせます。
    =UNIQUE(VSTACK(範囲1, 範囲2))

このように、VSTACK関数を起点として、さまざまなデータ加工ができるようになります。


VSTACK関数であなたのExcel作業をもっと効率的に!

でんちゃん
でんちゃん

今回は、ExcelのVSTACK関数について、基本的な使い方から、複数のシートに分かれた表を一つにまとめる方法、そして便利な活用術や注意点まで、詳しく解説しました。

もし「もっとこんなことできる?」といった疑問があれば、いつでも聞いてくださいね。

この記事を書いた人
でんちゃん

一児の父。人事として6年、採用・教育・労務・人事制度などを経験してきました。これまで200名ほどの方と面接を実施してきたので就職・転職に関するノウハウがあります。またExcelを用いたデータ分析が得意です。
娘が生まれ日々のすさまじい成長を目の当たりにしています。
人事やExcel、子育てに関してのお役立ち情報を伝えるブログを作っていきます!

でんちゃんをフォローする
Excel
でんちゃんをフォローする

コメント

タイトルとURLをコピーしました