初心者でもできる!データを一瞬で統合!エクセルVSTACK関数の使い方ガイド

関数
この記事は約9分で読めます。

VSTACK関数とは

VSTACK関数複数の配列や範囲を縦方向に統合してくれる関数となります。

同じシート内にある複数の配列や範囲はもちろん、別シートにある配列や範囲も統合可能なので、使いこなすとすごく便利な関数ですので、この機会にぜひマスターしておきましょう!

練習用ファイルを準備しましたので、必要な方は下記よりダウンロードしてくださいね。

同じシートのデータを統合

同じシートのデータを統合する方法を、実際に操作しながら見ていきましょう。

練習用ファイル「VSTACK関数_同シート」シートを使用します。

A列~F列に、商品カテゴリごとの一覧があります。
VSTACK関数を使って、カテゴリごとに分かれている一覧を、H列~I列に統合して表示させていきましょう。

統合表示させたい範囲の最初のセルになるH2セルにVSTACK関数を入れていきます。

= VSと入れるとVSTACK関数が候補にあがってくるので、 キーでVSTACK関数を選択した状態で Tab キーで使用する関数を確定させます。

VSTACK関数
VSTACK関数

使用する関数を確定させたら、第1引数を入力します。

VSTACK関数の第1引数は「統合したい1つ目の配列や範囲」となります。
今回だと、まずケーキの範囲となるので、A2セル~B6セルを選択が第1引数となります。

VSTACK関数
VSTACK関数

第1引数を入力したら、カンマ , を打って第2引数に進みます。

VSTACK関数の第2引数は「統合したい2つ目の配列や範囲」となります。
今回だと、2つ目はケーキ以外が範囲となるので、C2セル~D6セルを選択が第2引数となります。

VSTACK関数
VSTACK関数

このように、統合したい配列や範囲を順番に引数に入れていくだけです。
2つならここで Enter を押せば完了ですが、今回は3つあるので第3引数も入れていきましょう。
第2引数の後にカンマ , を打って、3つ目の範囲となるE2セル~F6セルを選択します。

VSTACK関数
VSTACK関数

最後に Enter を押せば完了です。

H列~I列に、全てのカテゴリの商品が統合されました。

VSTACK関数
VSTACK関数
=VSTACK(1つ目のデータ範囲,2つ目のデータ範囲,3つ目のデータ範囲)
=VSTACK(A2:B6,C2:D6,E2:F6)

別シートのデータを統合

別シートにあるデータを統合する方法を、実際に操作しながら見ていきましょう。

別シートのデータが全て同じ行数の場合

「商品1~商品3」シートにあるデータをVSTACK関数を使って、「VSTACK関数_別シート①」のA列~B列に統合して表示させてみましょう。

練習用ファイル「VSTACK関数_別シート①」と「商品1」~「商品3」シートを使用します

統合表示させたい範囲の最初のセルになるA2セルにVSTACK関数を入れていきます。

= VSと入れるとVSTACK関数が候補にあがってくるので、 キーでVSTACK関数を選択した状態で Tab キーで使用する関数を確定させます。

VSTACK関数
VSTACK関数

使用する関数を確定させたら、第1引数を入力します。

VSTACK関数の第1引数は「統合したい1つ目の配列や範囲」となります。

今回は別シートなので、まず最初に統合したいシートを選択します。
統合したいのは「商品1」シートから「商品3」シートなので、最初に「商品1」シートを選択します。

VSTACK関数
VSTACK関数

「商品1」のシートを選択したら Shift を押しながら「商品3」シートを選択します。

VSTACK関数
VSTACK関数

これで統合したい「商品1」から「商品3」シートを全て選択できました。

次に統合したい範囲を選択します。
今回は「商品1」から「商品3」のシート全て同じ行数なので、A2セル~B6セルを選択します。

VSTACK関数
VSTACK関数

最後に Enter を押せば完了です。
「VSTACK関数_別シート①」に「商品1」~「商品3」のデータが統合表示されました。

VSTACK関数
VSTACK関数
=VSTACK(統合したい最初のシート:統合したい最後のシート!データ範囲)
=VSTACK(商品1:商品3!A2:B6)

別シートのデータ行数が違う場合

統合したいデータの行数が異なる場合もあります。
同じシート内であれば、それぞれデータ範囲を選択する際にその範囲に合わせて選択すればよいですが、別シートの場合にはFILTER関数を一緒に組むことで、正しく統合することが可能なので一緒にやってみましょう。

「1月」~「12月」シートにあるデータをVSTACK関数を使って、「VSTACK関数_別シート②」のA列~F列に統合して表示させてみましょう。

練習用ファイル「VSTACK関数_別シート②」と「1月」~「12月」シートを使用します

統合したいシートのデータ範囲が異なる場合、正しく統合できない場合があります。
正しく統合できない原因と解決策も一緒に見てみましょう!

誤った統合

統合表示させたい範囲の最初のセルになるA2セルにVSTACK関数を入れていきます。

= VSと入れるとVSTACK関数が候補にあがってくるので、 キーでVSTACK関数を選択した状態で Tab キーで使用する関数を確定させます。

VSTACK関数
VSTACK関数

使用する関数を確定させたら、第1引数を入力します。

VSTACK関数の第1引数は「統合したい1つ目の配列や範囲」となります。

今回は別シートなので、まず最初に統合したいシートを選択します。
統合したいのは「1月」シートから「12月」シートなので、最初に「1月」シートを選択します。

VSTACK関数
VSTACK関数

「1月」のシートを選択したら Shift を押しながら「12月」シートを選択します。
ここまでは別シートのデータが全て同じ行数の場合と同じですね。

続けてデータの範囲を指定していきます。
全てのシートを確認すると、最大行が40行以内なので、全てのシートの全ての行をもれなく拾うために、少し余裕をもって範囲指定します。

ここでは50行までを範囲指定しようと思うので「A2:F50」と数式バーに範囲を直接手入力で入力します。

VSTACK関数
VSTACK関数

最後に Enter を押してみましょう。

確かに統合はされましたが、月と月の間に「1900/1/0」「0」という不要な行が入っています。

これは、各シート行数が異なるため、全てのシートの最大行数より広く範囲指定したので、空白行も拾った結果、空白行の日付を「1900/1/0」、空白行の他の値を「0」と表示しているため、このような結果になっています。

これでは正しく統合できたとは言えません。

VSTACK関数
VSTACK関数
正しい統合

統合したいシートのデータ範囲が異なる場合は、FILTER関数を一緒に組むことで解決します。

正しく統合するための考え方を先に見てみましょう。

正しく統合するための考え方
  • 問題点
    統合したいシートのデータ範囲が異なるため、指定する範囲を広くとる必要があるけれど、空白も統合すると正しく統合されない
  • 解決策
    FILTER関数を一緒に組んで、VSTACK関数で指定した範囲に空白以外でフィルターをかけて、そのフィルター結果だけをVSTACK関数で統合する

では実際にやってみましょう!

FILTER関数の詳細はここでは省略しますので
必要な方はFILTER関数のページをご確認ください

関数をネスト(関数の中に関数を組み込む)場合、中から関数を処理するというルールがあります。
中から処理をする = 最後に処理してほしい関数から入力する。となります。

この場合、最終的にVSTACK関数で統合したい範囲のうち、空白以外を表示させたいので、FILTER関数は最後に処理してほしいため、まずFILTER関数から入力していきます。

A2セルに = と入力しFILTER関数を選択したら Tab キーで使用する関数を確定させます。

VSTACK関数
VSTACK関数

使用関数を確定させたら、FILTER関数第1引数を入力します。

FILTER関数第1引数フィルター設定したいデータが入っている範囲全てなので、ここにVSTACK関数を入れます。

VSTACK関数
VSTACK関数

VSTACK関数で統合したい範囲は「1月」~「12月」シートのA2からF50セルなので、この範囲をVSTACK関数の引数に入力してカッコを閉じます。

VSTACK関数
VSTACK関数

これがFILTER関数第1引数になりますので、カッコを閉じたらカンマ , を打ってFILTER関数第2引数に進みます。

FILTER関数第2引数フィルター設定したい値が入っている列と、フィルター設定したい値ですが、ここでフィルターしたいのは「1月~12月のシートの空白以外」で、A列が空白ならその行は空白行 と考えられるので「1月~12月のシートのA列」を見れば空白か空白でないかの判定ができそうです。

なので、ここにVSTACK関数で「1月~12月のシートのA2~A50」を指定したらVSTACK関数のカッコを閉じます。

VSTACK関数
VSTACK関数

この「1月~12月のシートのA2~A50」を空白以外でフィルターしたいので、VSTACK関数のカッコを閉じたら○○以外を示す「< >」 を入力し、空白を示すダブルクオテーション「 」を2つ続けて打ちます。

VSTACK関数
VSTACK関数

これがFILTER関数第2引数になります。

ここまで出来たらFILTER関数のカッコを閉じて、最後に Enter を押せば完了です。
VSTACK関数だけで統合した際にできていた空白行がなくなり、正しく統合されました。

VSTACK関数
VSTACK関数
=FILTER(VSTACK('統合したい最初のシート:統合したい最後のシート!データ範囲),VSTACK('統合したい最初のシート:統合したい最後のシート'!フィルターしたい範囲)フィルターしたい値)
=FILTER(VSTACK('1月:12月'!A2:F50),VSTACK('1月:12月'!A2:A50)<>"")

まとめ

VSTACK関数の基本的な使い方をご紹介しました。
統合したいシートのデータ範囲が異なる場合の統合方法は関数をネストするので、最初は混乱するかもしれませんが、混乱する場合は一緒に組む関数を一度バラシて、個別に考えると理解しやすいかもしれません。

何度も反復練習することで、気が付けば使いこなしているケースが多いので、何度も練習してぜひマスターしておきましょう。

動画でもご紹介していますので、ぜひ動画も確認しながら練習してくださいね。

VSTACK関数

励みになります!高評価とチャンネル登録よろしくおねがいいたします。

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