VSTACK関数で複数の表を1つにまとめる!
Excel 2024 Microsoft 365 Web版 Excel
解説記事内の画像はExcel 2021のものです。
スポンサーリンク
VSTACK関数は、Excelの表を縦に積んで1つにまとめる関数。
Vertical(縦に)+ Stack(積み重ねる)

なので、このように複数の表を1つにまとめてくれます。
VSTACK関数を使うときに頭に置いておくことはこちら!
スポンサーリンク
VSTACK関数の基本の使い方

まずはお好みで、結果を表示させたい箇所に見出しを作っておきます。
積んでいく最初の表を、見出しを含めて積む場合は作らなくてもいいので、ここは完全にお好みで。

VSTACK関数はスピル関数なので、関数を入力する箇所は、答をズラーッと表示させたいところの一番左上。
というわけで、答を表示させたい箇所の、一番左上のセルを選択。

数式を入力する合図で、半角イコールを入力。

関数名の頭文字「V」だけでも、「VSTACK」の途中まで入力でも、入力で絞り込まれた関数名が一覧表示されるので、↓キーでVSTACKを選択し、Tabキーを押すと、

関数名VSTACKと、ここから引数を入力しますよという合図の括弧始まりが入力されます。

まずはスタックしたい1つめの表の範囲を選択。
今回は答を表示させたい箇所にあらかじめ見出しを作っておいたので、スタックする表のデータ部分だけを範囲選択すればOK。

この時、選択する表がテーブルだと、テーブル専用の範囲選択で瞬時に指定できるので超便利です!

次の指定の前に、区切りとなる半角カンマを入力。

お次は、スタックしたい2つ目の表の範囲を選択。

まだ指定したい表があるなら、お次の表の範囲を指定する前に、区切りとなる半角カンマを入力。
❶ 表の範囲を指定
❷ 区切りとなる半角カンマを入力
❸ お次の表の範囲を指定

の操作を繰り返し、スタックしたい表の範囲すべてを指定し終わったら、

「もう指定は終わりましたよ」の合図で半角で括弧閉じを入力してEnterキーで確定すると、

指定した表をスタックして、1つの表にまとめることができました!
VSTACK関数の数式

数式を入力したセルを選択すると、数式バーでその数式を確認できます。

数式内で指定した表が普通のセル範囲だった場合は、こんな数式に。

数式内で指定した表がテーブルだった場合は、

こんな数式に。
スタックするよう指示しているテーブルの名前が数式に表示されています。

そして、数式内で指定した表が普通の範囲だろうが、テーブルだろうがに関わらず、VSTACK関数はスピル関数なので、自分で数式を入力したセル以外の、結果が表示されているセルにはゴーストが表示されています。
データが増えるとどうなる?

VSTACK関数でまとめる指示を出した表が、普通のセルの場合は、表の範囲を「何番地から何番地まで」と限定的に指定しているため、

その範囲以上に増えたデータは、自動で結果に表示されることはありません。

でも、VSTACK関数でまとめる指示を出した表がテーブルだった場合は、「このテーブルを1つにまとめてください」という、テーブル名での指定になっていることと、

そもそもテーブルは、データが増えても範囲を自動で拡張してくれるため、元のテーブルにデータが増えたら、もちろん自動的にVSTACK関数の結果にも反映されます!
これこそが、まさにテーブルをおすすめしている理由です!
現実的には別シート

今回は設定方法を分かりやすくするため、同じシートにある表を1つにまとめる例を使いましたが、現実的には、それぞれの表が別のシートにあり、VSTACK関数の結果も別シートに表示させる方が現実的だと思います。

それぞれが別のシートにある場合の数式はこんな感じ。
この数式は表が普通のセル範囲だった場合。

それぞれが別シートにある場合でも、表がテーブルになっている場合は、テーブル名が表示されるため、それぞれの表が同一シートにある場合と同じになります。
列数が違うと#N/Aエラー

VSTACK関数でまとめたい表の列数が揃っていないと、

1つにまとめた結果、列数の少ない表のところに#N/Aエラーが表示されてしまいます。

なので、列数が違う表をVSTACKで1つにまとめたい場合は、IFERROR関数や、IFNA関数を使って、

エラー表示となる部分を空欄(またはお好みの文字など)で表示されるようにします。
スポンサーリンク
かつて、こんな後悔のご経験はありませんか?
もっと早くからパソコンを触っておけば...
今まさしく、あの時とは比べものにならない大きな進化が、今まで経験したことのない驚異的なスピードで私たちを巻き込んでいます。
そうです、AIです。
あの時の何倍も何十倍も大きな後悔をしないために、本当に必要な情報とテクニックが手に入る場所、それがBe Cool UsersのAI特化メンバーシップです!
Be Cool Users管理人の略歴・得意なことをまとめました!
お仕事のご依頼も「自己紹介・お仕事のご依頼につきまして」からご連絡くださいませ。
「こんなことできる?」もお気軽にご相談ください。