本ページには広告が含まれています。

VSTACK 関数 セル範囲(配列)を垂直方向に連結して返す

VSTACK関数 複数のセル範囲(配列)を垂直に連結して返す

VSTACK関数は、セル範囲(配列)を引数順で垂直(縦)方向に追加して、連結された新しい配列として返します。

2022年8月下旬のアップデートで新たに一般公開された14個の文字列・検索/行列関数のひとつです。(3月から「Office Insider Program」でテストされていたものが公開されたものです)

スポンサーリンク

はじめに

VSTACK関数は、複数のセル範囲(配列)を垂直(縦)方向に連結できる関数ですが、水平(横)方向に連結できるHSTACK関数も同時公開されています。

くるみこ
くるみこ

VSTACK関数の基本的な使い方について紹介していきます。
この関数を使用できるのは、サブスクリプション版の「Microsoft 365」アプリ「Excel for Microsoft 365」とWeb版だけですので注意してください。

関数名の先頭「V」からすると「縦方向」の動作という感じですね。
「STACK」は積み重ねるという意味ですね。使い方を詳しく教えてください。

よろしくお願いしますm(__)m

【この記事でわかることは】
・VSTACK関数の使い方がわかります

VSTACK 関数の構文

VSTACK 関数入力時に表示される「数式オートコンプリート」から確認しましょう。
※ 対応していないExcelバージョンでは「オートコンプリート」にこの関数は表示されません。
リンクはこの関数の公式ヘルプの掲載場所です。

VSTACK 関数の構文と引数

VSTACK関数入力時に表示される説明画像です。

VSTACK関数入力時の表示

表示される引数の表示画像がこちらです。

引数入力時に表示される「オートコンプリート」

=VSTACK(array1, [array2], …)
引数は英文表記です。日本語に整理すると次のような感じです。

【構文】

=VSTACK(配列1, [配列2], …)
 ※[ ]内の引数は省略可能

引数説明
配列1
array1
セル範囲(配列)を指定【必須】
[配列2]
array2
連結するセル範囲(配列)を指定
[配列n]
[arrayn]
連結するセル範囲(配列)を指定
n 254 が最大数
※ 配列の列数が最大列数より少ない場合、不足列のセルに #N/A エラーを返します

引数がいくつまで設定できるのかはHSTACK関数の時に実際に試してみました。その結果は、254を超えると次のエラーメッセージが出て設定できなくなります。

引数がオーバーフローの場合

VSTACK 関数の使用例

それでは実際に使ってみて確認することが大事ですので早速やってみましょう。

列数が同じ2つのセル範囲を縦に連結する

VSTACK関数で列数が同じ3つのセル範囲をカンマで繋ぐだけで簡単に縦方向に連結できました。

VSTACK関数で列数が違う3つのセル範囲の連結

・「E1」セルに入力した式は =VSTACK(A1:C4,A7:C9,A12:C14) です。

・単純に(引数1,引数2,引数3)と指定するだけで縦に連結されてスピル表示されました

スピルについてはこちらの記事をご覧ください。

列数が違うセル範囲を指定した場合

次はHSTACK関数の時と同じように、引数に列数の異なるセル範囲を含めて指定した場合の例です。

VSTACK関数で3つのうち列数が違う1つのセル範囲を連結

・「E1」セルに入力した式は =VSTACK(A1:C4,A7:C9,A12:D14) です。

・3つ目の引数(セル範囲)に+1列追加して指定しています。

H1:H7 のセルが #N/A 表示になっています。
 これは「引数3」の列数が最大列数になっているため、不足分が #N/A 表示になっています

「空欄」だったセルの部分は、連結後に “0” で表示されています。

・できれば #N/A と空欄セルに “0” を表示しないように変更したいですね。

#N/A と “0” を消す方法

#N/A のようなエラー表示を消す定番は IFERROR ですね。
・空欄セルの部分に “0” を表示したくない場合には、VSTACK関数に &”” を付加します。

VSTACK関数の#N/A と "0" を消す方法

#N/A と “0” を消すsことができました。

・「E1」セルに入力した式は =IFERROR(VSTACK(A1:C4,A7:C9,A12:D14)&””,””) です。

IFERROR(VSTACK(……)&””,””) 赤字の部分で #N/A を消しています。

・=IFERROR(VSTACK(……)&””,””) 赤字の部分で “0” を消しています。

VSTACK関数を引数として使う

今度はセルに結果をスピル表示するだけではなく、VSTACK関数で作った配列を他の関数の引数として使う例を見てみましょう。

SORT関数で使う例

3列目の「ポイント」で降順にソートしてみます。

・「E1」セルに入力した式は =SORT(VSTACK(A2:C4,A7:C9,A12:D14),3,-1) です。

・G列「ポイント」を降順にソートした結果がスピル表示されました。

XLOOKUP関数で使ってみる

少し式が長くなりますが、XLOOKUP関数の「検索範囲」と「戻り範囲」にVSTOCK関数を使います。

・「E1」セルに入力した式は、=XLOOKUP(E2,VSTACK(A2:A4,A7:A9,A12:A14),VSTACK(B2:C4,B7:C9,B12:C14),”-“,0,1) です。

赤下線の部分がXLOOKUP関数の「検索範囲」です。青下線が「戻り範囲」です。

・離れた場所にあるデータでも、VSTACK関数でスタックした配列にすれば、別関数の引数として使えることがわかりました。

※ 横方向にスタックするHSTACK関数については別の記事で解説していますのでご覧ください。

まとめ(おわりに)

以上、VSTACK関数 について解説しました。

くるみこ
くるみこ

VSTACK関数で指定する引数のセル範囲(配列)は、同じシートだけではなく、別シートや別ブックからも指定できます。今回の例では、SORT関数とXLOOKUP関数に使ってみました。もっといろいろな関数と組み合わせて活用できると思います。

VSTACK関数のほうがHSTACK関数より活用範囲が広い感じですね。

何に活用できるのかしっかり考えてみます(^^

★★★ ブログランキング参加中! クリックしてね(^^)/ ★★★

【今後の記事について】

今回の記事はいかがだったでしょうか。皆さまのお役に立てたなら幸いです(^^;
「汎用でだれでも使えて活用できるように考えてる」というポリシーで、記事を継続して書いていきたいと思っています。どうぞよろしくお願いしますm(_ _)m

スポンサーリンク

過去記事のサンプルファイルをダウンロードできます

この記事で使用したサンプルの登録はありません。
過去の記事で使用したサンプルファイルをダウンロードできるようにページを設置していますので、こちら(このリンク先)からご利用ください