VSTACK関数とはどんな関数か。VStack関数の基本的な使い方と、それと一緒に使うと便利な関数 Excel2021 Microsoft 365

VSTACK関数 Excel2021 Microsoft 365

VSTACK関数とはどんな関数か。VStack関数の基本的な使い方と、それと一緒に使うと便利な関数を紹介します。
さらに応用的なおすすめの使い方も紹介します。

VSTACK関数関数 10回

VSTACK関数は、マクロを使わずに複数ページからデータを結合できる

VStack関数とは、Microsoft 365で利用することができる関数です。
Microsoft 365をサブスクしてないと使えないということなので、その説明を聞いてもしょうがないと思う方もいるかもしれないですが、実は知っておいた方がいいのです。
これからのエクセルの方向、関数の方向がどんどん変わっていくそれをあからさまに確認できるというのが、このVStack関数だからです。

ExcelのVSTACK関数とは?知らなきゃ損する、究極の使い方。


VStack関数とはどんな関数か。

VStack関数とは、複数のデータを一つにまとめて配列として表示できる関数です。
同じシートにある複数のデータ、形式は一緒、つまり表示している内容、列ごとの内容は一緒だけれども、支店が違うとか、月が違うとか、そういった理由で分けてあるデータを一つにできる関数ということになります。

VSTACK関数、タイトル01

これがシートごとにデータが分かれていても同じで、シートを超えて一つのまとめのシートとか、 そういったシートに集計として集約できるわけですね。

VSTACK関数、タイトル02

そのやり方は、元データはいじらない。
元データを結合するのではなくて、元データを配列として取り込んで、結合した配列を作るということなんです。
”結合した配列”、この点が、はっきりと今までの関数とは違うなということがお分かりかと思います。

VSTACK関数、タイトル03

また、他の関数と組み合わせて使うこともできます。基本的な使用方法の場合、不要なデータが取り込まれることもあるので、それをフィルターして表示させないようにする、そのためのFILTER関数などです。

VSTACK関数、タイトル04

またVSTACK関数で表示されたデータに対して、並べ替えたいという場合にはSORT関数が使えます。

VSTACK関数、タイトル05

VStack関数で同じシート上のデータを積み上げる

まず、基本的な使い方はどのような使い方ができるのかという例です。
こちらのシートには、埼玉支店の売上と浦和支店の売上が分かれて記入されています。
このそれぞれのデータを一つに集計したいというときに、今までは範囲を選択して、
Ctrl + Cでコピーして、Ctrl + Vで貼り付けて、今度はまた次の支店の範囲を選択して、
Ctrl + Cでコピーして、Ctrl + Vで貼り付けて、という形で何度も貼り付けていました。

VSTACK関数、タイトル06

これをVSTACK関数を使う場合は、セルに=と入力して、VSと入れるとVSTACKが表示されますから、 Tabキーで確定します。引数はArray1、Array2…ということで、配列をいくつもつなぐことができるわけですね。

VSTACK関数、タイトル07

さいたま支店のデータ範囲と、浦和支店のデータ範囲を選択すると、下図のようにそっくりそのまま配列として取得されます。

VSTACK関数、タイトル08

見かけはデータ範囲の選択と同じですが、Excelの内部では配列として取得しており、Enterで確定すると、

VSTACK関数、タイトル09

下のセル以降にデータが元のデータと同じ列数、行数で積み上げられます。
データは入ったんですけれども、書式はコピーされません。配列ですから、コピーしてきたわけではないんです。

VSTACK関数、タイトル10

日付の列がシリアル値という数値表示になっていますから、これは書式で日付に変更してやる必要があります。

NAMAE11

VStack関数の構文

VSTACK関数の構文は以下のようになっています。引数は同形式の配列をいくつも追加することができ、その数は254個までという情報があります。

NAMAE12

VStack関数で複数シート上のデータを積み上げる

複数シート上のデータをVSTACK関数を使って、集計用のシートにまとめる場合は、ちょうど串刺し演算のようなイメージを持たれると良いでしょう。 同じ形式のデータを取り込むからです。
ただしデータ数が違う場合には、最大のデータ数に揃える必要があります。
このサンプルの場合は、7月、8月は200行までデータがありますが、9月は501行までデータがあります。

NAMAE13

VSTACK関数を使って配列で取得すると、空の配列も取得されますので、結果的に、そのデータはゼロ と表示されます。もちろん0を表示しない方法はあります。

NAMAE15

それでは、VSTACK関数を使って複数シートのデータを取得する方法を見ていきましょう。7月、8月、9月の売上を”まとめ”シートに配列として取得します。

NAMAE14

まず7月のシートをタブをクリックして開き、データ部分を選択すると、以下のように数式が変わります。 これは7月の選択部分を配列として取得しているという意味になります。

NAMAE16

次にShiftキーを押しながら、7月のシートに続けて、8月9月も選択します。すると

NAMAE17

数式が以下のように変わります。9月は501行までデータがありますから、200では、9月のデータの一部だけとなってしまいます。

NAMAE18

先ほどもデータのない部分は0と表示されると書きましたが、 この状態のままでは困りますので、データのある行だけを表示するように、数式を書き換えましょう。

NAMAE19

数式をデータ数に合わせた結果、7月8月には空のデータが表示されてしまいました。

NAMAE20

VStack関数で表示された空のデータを表示しない方法

FILTER関数を使って、空のデータじゃないデータだけを表示させます。
FILTER関数の入れ子にVSTACK関数の数式を使います。
第一引数にしています。

NAMAE20

第2引数の”含む”には、対象となる配列からA列を指定することにします。

NAMAE21

そして空でないという意味には、<>0 または <>”” と書きます。

NAMAE22

以上で空のデータは表示されなくなります。
次回はこのような手間がかからない方法をVSTACK関数で行ってみたいと思います。