2024年11月15日【ID:0】
メンバー限定
【Excel】複数シートの表を数式で1つにまとめる
以下のように、数式で複数のシートに用意された表を1つのシートにまとめて表示する方法について解説していきます。
複数の表を縦方向に繋げる
複数の表を縦方向に繋げるには、VSTACK関数を活用します。
この関数の使い方は、以下になります。
=VSTACK(配列1, [配列2], [配列3], …)
// 配列:対象の表(必要な数分、カンマ区切りで指定する)
実際に、各シートの表を指定して表を繋げる場合、以下のような数式になります。
=VSTACK('2024年1月'!A2:C10,'2024年2月'!A2:C10,'2024年3月'!A2:C11,'2024年4月'!A2:C11,'2024年5月'!A2:C11)
// それぞれのシートの表を1つ1つ指定
VSTACK関数を使うことで、上記のように表を繋げることができました。
しかし、この数式のままですと、「シートの数が増えた時」や「表にデータが追加された時」に対応するのが大変になります。
そこで、複数のシートの表を一括で指定する数式に変更していきます。
複数の表を一括で指定する
複数のシートの範囲を一括で指定する場合、「=VSTACK(」と入力した後に、「対象の先頭のシート」を選択した後に、Shiftキーを押しながら、「対象の末尾のシート」を選択します。
この時、対象のシートの間に対象でないシートが含まれていると、その対象でないシート自体も参照されてしまいます。
対象の末尾のシートを選択することができましたら、アクティブになっているシートの表の範囲を大きめに指定します。
実際に上記の手順で指定すると、以下のような数式になります。
=VSTACK('2024年1月:2024年5月'!A2:C100)
// 今後データが追加されることを考慮して100行目まで指定
上記の数式を入力すると、空の範囲が「0」として抽出されてしまいます。
ただ、全シートの表を繋げることができました。
「0」を除外する方法については、後で解説していきます。
こちらで参照しているシートは、対象のシートの先頭から末尾のシートになります。
次から追加するシートに関しては、指定した先頭と末尾のシートの間に移動することで、数式を修正する必要がなく、まとめた表に加えることができるようになります。
そのため、先頭と末尾のシートに関しては「空の表」にし、シートの開始と終了が分かりやすいようなシート名にしておくと良いです。
実際に、修正した例が以下になります。
=VSTACK(S:G!A2:C100)
先頭と末尾のシートに関しては、以下のように空の表にしています。
以上の手順で、複数のシートの表を一括で指定し、抽出することができました。
ただ、空(「0」)のデータが表示されている状態では、見た目が良くないので、空(「0」)のデータを除外して抽出する数式に変更する必要があります。
空(「0」)のデータを除外する
続きはIT予備メンバー限定です。
メンバー限定コンテンツになります。
IT予備メンバーページと連携することで内容を確認することができます。
メンバーとは
すでにメンバーの方は、
ログインして連携してから、こちらを更新すると閲覧できます。
※連携しても確認ができない場合は、少し時間を置いてご確認ください。
ログイン(新しいタブ)
※[ログイン]→[設定]→[IT予備-連携]で連携できます