【Excel】複数シートのデータが一瞬で集結する!VSTACK関数の威力★
こんにちは、HARUです!
実務では、拠点別、商品別、年度別、部門別といった情報のカテゴリごとにシートを分けて管理することがよくあります。
ここで、店舗ごとに分かれている各シートの会員名簿を特定のシートに集約したいとなったとします。
▼ ▼ ▼
2、3枚のシートであれば1つずつコピー&ペーストして連結させても良いですが、対象数が10枚、20枚と増えていくと相当時間がかかりますし、情報が追加されるたびに転記する必要があります。
そこでこの記事では、複数のデータ範囲をかんたんに結合して一括表示するテクニックをご紹介します。
元データの増減や更新にも柔軟に対応する方法もあわせて解説しますので、ぜひ最後までご一読ください!
今回使う「VSTACK関数」は、本記事執筆時点でMicrosoft365にのみ仮実装されている関数です。
以前の記事で取り上げた「スピル」動作に触れておくことでより理解が深まりますので、まずそちらをご覧いただくことをおススメします!
↓スピルの挙動と活用術はこちら↓
データ範囲を積み重ねる
今回のようなケースでは、VSTACK関数を使います。
stackは「積み重ねる」を意味する英語です。
データを縦方向に見つけるVLOOOKP関数(vertical lookup)と同じく、データを縦方向に積み重ねる"vertical stack"を示します。
VSTACK関数の基本動作
いくつかの表に分かれている担当者別の販売実績表を、E列以降にまとめて表示します。
①VSTACK関数を挿入する。
(2023年6月時点で仮実装段階のため、引数のガイダンスが英語表記になっています。引数の表現は本リリースで変更の可能性があります。)
"array"は「配列」を意味します。
array1,array2,…ということで、複数の配列を参照していくだけでVSTACK関数が機能します。
②元データの範囲を参照する。
これにより、分かれていた複数の表がひとまとまりで取得できます。
※今回はG列にあらかじめ桁区切りの通貨表記を設定しておきましたが、実際に動的配列数式でデータを取得するときは、書式を再設定する必要があります。
なお、縦方向につなげるVSTACK関数に加えて、横方向につなげるHSTACK関数(horizontal stack)があります。
VSTACK関数ほどの活用機会はないかもしれませんが、参考までにおさえておきましょう。
テーブルの適用
ここで元の表に新しいデータが追加されたとします。
しかし、最初に入力したVSTACK関数の参照範囲から外れているため、即時的には一括表示に含まれません。
こんなときはあらかじめ、元のデータ範囲にテーブルを適用しておきます。
再度VSTACK関数でそれぞれの範囲を参照すると、対象の配列がテーブルとして認識されたことがわかります。
これにより、新たなデータが追加されてもVSTACK関数のスピル範囲へ瞬時に反映されます。
VSTACK関数に限らず、動的配列数式を活用する場合は基本的に元データがテーブル化されていることが理想です。
複数シートのデータを集結させる
冒頭に触れた店舗別の会員名簿をサンプルにして、各シートのデータを「統合データ」シートに集約します。
すべての項目を集約する
①各シートのデータをテーブル化し、テーブル名を各店舗名にしておく。
ここから先は
¥ 980
Amazonギフトカード5,000円分が当たる
この記事が気に入ったらチップで応援してみませんか?