Excel

Excelでバラバラの表が一瞬で1つに! VSTACK関数で自動結合

目次


    1. VSTACK関数とは
    2. VSTACK関数の構文
    3. 2つの表を1つにまとめてみよう
    4. 新しいデータが追加されても自動で反映されるように設定しよう
    5. 新しい表を追加して結合しよう
    6. まとめ

 

日々の業務では、バラバラに作成した表をひとつにまとめたい場面が意外と多くあります。たとえば、月ごとの売上データを一覧にしたり、各支店の商品リストをひとつの表に集約したりするケースが挙げられます。

こうした作業はコピー&ペーストでも対応できますが、表の数が増えるほど手間や時間がかかりがちです。また、VBAやPower Queryを使う方法もありますが、ややハードルが高く、気軽に取り入れにくいと感じる方も多いのではないでしょうか。

そんなときに頼りになるのが、Microsoft 365やExcel 2024以降で使用できるVSTACK(ブイスタック)関数です。今回は、この関数を使って複数の表をすっきりとまとめる方法をご紹介します。

1.VSTACK関数とは

VSTACK関数は、複数の表(配列)を縦方向に並べて結合できる関数です。名前のとおり、VはVertical(垂直)、STACKは積み重ねることを意味しており、表を上から順に重ねるようにしてまとめることができます。なお、HSTACK関数も用意されており、横方向に結合したい場合に使用します。

2.VSTACK関数の構文

 

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

配列1 :追加する配列(またはセル範囲)

配列2 :追加する配列(またはセル範囲)

※引数の「配列」は、環境や資料によっては「array」と表示される場合があります。

 

実際の使用場面では、引数にセル範囲や別シートの範囲、テーブルなどを指定することが多くあります。あらかじめテーブルに変換しておくと、元のデータが追加・変更された際にも結果へ自動的に反映されるため、より便利に活用できます。

また、結合する表は列数(列見出しの項目数)をそろえておく必要があります。列数が異なる場合はエラーが表示されることがあります。また、空白のセルは状況によって「0」として表示される場合があります。

結果はスピルで展開されるため、開始セルに数式を入力するだけで、自動的に結果が表示されます。

3. 2つの表を1つにまとめてみよう

ここでは、カテゴリごとに分かれている商品データの表をVSTACK関数を使って1つの表にまとめる手順を確認していきます。

今回は手順を分かりやすくするため、同一シート内にある表を使用して操作します。

 

①展開して表示する範囲の先頭行(B19:D19)にあらかじめ項目名を入力しておきます。

②展開結果を表示する開始セルのB20に「=VSTACK」と入力します。

③結合したい範囲として<飲料>カテゴリの表(B4:D14)と<文房具>カテゴリの表(F4:H13)を指定し、「,」で区切ります。その後、Enterキーを押して確定します。

 

入力する数式は次のとおりです。 「=VSTACK(B4:D14,F4:H13)」

④Enterキーを押すと、B20を開始セルとして結合した結果が自動的に表示されます。

それぞれの表が、指定した順番に縦方向へ結合されて表示されます。

注意ポイント

・スピルで展開された結果には元の書式設定が引き継がれません。そのため、単価に設定されていた通貨記号は表示されず、数値のみが表示されます。また、日付はシリアル値として表示されます。このような場合は、展開後に必要な書式を設定してください。

・VSTACK関数の結果はスピルによって展開されるため、そのままではテーブルへの変換や並べ替えなどの操作に制限が生じる場合があります。結果をテーブルとして利用したり並べ替えを行ったりする場合は、展開された結果をコピーし、「値のみ貼り付け」(または「テキストのみ保持」)で別のシートに貼り付けてから使用してください。

4.新しいデータが追加されても自動で反映されるように設定しよう

元の表にデータが追加されることはよくあります。そのような場合に備えて、あらかじめ元の表をテーブルに変換しておくと、追加したデータがVSTACK関数の結果にも自動的に反映されるようになります。

 

①それぞれの商品データの表をテーブルに変換します。その際、後から識別しやすいように、各テーブルに分かりやすい名前を設定しておきます。今回は「飲料」と「文房具」というテーブル名を使用します。

 

②VSTACK関数の引数に、セル範囲の代わりにテーブル名を指定します。今回は「飲料」と「文房具」を指定して数式を作成します。

 

これで、元の表に新しいデータを追加した際、そのデータがVSTACK関数の展開結果にも自動的に追加されるようになります。

 

③ <飲料>の表の最終行にデータを追加します。「TE-1006 ミルクティー \1,620」と入力します。すると、VSTACK関数で結合した結果にも自動的に反映されます。

 

元データを削除した場合も、その内容は自動的に結果へ反映されます。また、別シートにある表でもテーブル化しておけば同様に参照できるため、常に最新の情報を結果として表示できます。

5. 新しい表を追加して結合しよう

商品カテゴリの表をさらに追加したい場合は、引数をカンマで区切って指定することで簡単に結合できます。今回は、あらかじめ「食品」というテーブル名を付けたテーブルを追加します。

 

① 引数に「,」(カンマ)とテーブル名「食品」を追加して入力します

② 結果のデータに、追加したテーブルの内容がこれまでの結果の下に自動的に表示されます。

このように、表が増えた場合でも数式に引数を追加するだけで、必要に応じてデータを追加表示することができます。

6. まとめ

今回は複数の表を縦方向に結合できるVSTACK関数の使い方についてご紹介しました。引数に範囲指定するだけで、簡単に1つの表にまとめることができますので、これまでコピー&ペーストで表を統合していた方は活用してみてください。

 

また、VSTACK関数は元データと連動して結果が自動更新されるため、データの追加・削除が頻繁に発生する業務でも、常に最新の一覧を維持できる点が大きな特徴です。さらに、このようにまとめたデータはピボットテーブルの元データとしても利用でき、集計や分析の基盤として活用することも可能です。シンプルな関数ですが、日々のデータ管理を大きく効率化できる便利な関数です。

 

Excelでは新しい便利な関数が続々と追加されています。対応バージョンをご利用の方は、実際の操作の中で少しずつ理解を深めていくことで、日々のデータ処理の効率化にもつながります。ぜひ実際に試してみてください。

 
 
 

この記事の著者:野元 由紀
 
東京パソコンアカデミーでExcel関数をもっと学びたい方は「Excel関数講座」がおすすめです。

関連コラム

お役立ちコラム一覧に戻る
#CONTACT

無料体験・資料請求の
お申し込み

お近くの教室で無料体験レッスンを受け付けております。
ぜひお気軽にお申し込みください。

#BUSINESS

東京パソコンアカデミーの法人向け研修

これまでの講師経験・派遣先での講習経験を活かして、
貴社の目的・依頼内容に沿った最適な講習を実施します。

法人向け研修はこちら