Excel情報560 関数 --複数シートのコピペ作業を一瞬で解決!集計を自動化する方法
【テーマ】
日々の業務で、「各シートからデータをコピー」など行っていませんか。この作業、時間がかかり、ミスの原因にもなります。今回はこうした作業を一瞬で自動化できる方法をご紹介します。
【方法】
VSTACK関数を使用します。
【参考】
元データを「テーブル」にすると、データが増減しても自動で結果が反映されます。また、データ件数やシート数が多い場合、LET関数を使うことで処理スピードが速くなります。
■ 今回の内容
日々の業務で「各シートからデータをコピーして、1つのシートに貼り付け」といった作業を行っていませんか。
この作業、時間がかかるだけでなくミスの原因にもなります。
こうした作業は VSTACK関数 を使えば、一瞬で自動化できます。
そこで今回は、VSTACK関数を使用した複数シートのコピペ作業を一瞬で解決する方法をご紹介します。
※VSTACK関数はExcel2024、Microsoft 365 でのみ利用可能です。(2026年3月現在)
  ただし、Microsoft 365でも古いバージョンでは対応していないため、ご注意ください。
■ 設定方法
【VSTACK関数】
複数の範囲を縦に結合するための関数です。
結合したいセル範囲や配列、または範囲定義名を指定します。
=VSTACK( 1つ目の配列(範囲) , 2つ目の配列(範囲) , 3つ目の配列(範囲) , ・・・・)
例. 下図のように[1月][2月][3月]シートにそれぞれ売上表が存在し、
それらの売上表を[売上集計]シートに1つにまとめます。
[売上集計]シートの出力開始位置(例ではB5セル)にVSTACK関数を指定します。
=VSTACK('1月'!B5:F31,'2月'!B5:F29,'3月'!B5:F31)  
1つのセルに数式を入れるだけで、指定した範囲のデータをExcelのスピル機能が自動で表示します。
◆シートがたくさんある場合は・・・
   各シートごとに範囲指定をすることが大変ですが、下記のようにすると簡単に設定できます。
例. 12シート(1月から12月)に存在する表を結合する場合。
※12シートの中で、最もデータ件数が多い表は40行とします。
1.複数シート選択
   [1月]シートをクリック後、「Shift」キーを押しながら[12月]シートを選択します。
2.データの範囲指定
 12シートの中で、最大行が40行なので、
 全シートの全ての行をもれなく拾うために、少し余裕をもって、50行までを範囲指定します。
3.空白行の非表示設定
   各シートでデータが入っている行数が異なり、空白行を拾ったため
 「1月0日」「0」という不要な行が入っています。
 これをFILTER関数と組み合わせ、不要な行を除外します。
=FILTER(VSTACK('1月:12月'!B5:F50),VSTACK('1月:12月'!B5:B50)<>"")
範囲: 1月から12月シートのB5セルからF50セルの範囲で、
条件: 1月から12月シートのB5セルからB50セルが空白でないデータを表示する
※B列の「日付」が空白ならその行は空白行と考えられるので、B列を指定しています。
 FILTER関数の詳細は下記バックナンバーをご参照ください。
【バックナンバー543】 関数--FILTER関数で検索する方法
■ ご参考までに
◆データを追加しても自動で反映される「テーブル」機能
   元データを「テーブル」にすると、データを追加しても自動で結果が反映されます。
    「テーブル」機能の詳細は下記バックナンバーをご参照ください。
【バックナンバー558】 挿入 --テーブル機能で仕事がスムーズに!便利機能をご紹介!
数式は =VSTACK(テーブル名1,テーブル名2,テーブル名3・・・) の形になり、
データ行数の範囲設定が不要です。
◆データ量に応じた数式の使い分けについて。
   今回のように12シートを数式の中で記述することになる場合は、以下の
    '=FILTER(VSTACK('1月:12月'!B5:F50),VSTACK('1月:12月'!B5:B50)<>"")
   の方が簡潔に記述できます。
   ただし、50行程度であれば上記の方法で問題ありませんが、各シートが1万行程度ある場合は、
   LET関数で一度データをメモリに格納してから処理する方が高速になります。
   例:=LET(d, VSTACK(1月:12月'!B5:F50000), FILTER(d, INDEX(d,,1)<>""))
    LET関数の詳細は下記バックナンバーをご参照ください。
【バックナンバー549】 関数--LET関数で計算を簡潔に
Copyright(C) アイエルアイ総合研究所 無断転載を禁じます