【Excel】VSTACK・HSTACK関数で複数表を縦横に結合する方法

【Excel】VSTACK・HSTACK関数で複数表を縦横に結合する方法
🛡️ 超解決

複数のシートや範囲に分散したデータを、一つのまとまったリストにしたい、または横並びで比較したいと困っていませんか。

ExcelのVSTACK関数とHSTACK関数を使えば、手作業でのコピー&ペーストを減らし、散らばったデータを効率的に結合できます。

この記事では、これらの強力な関数を使ったデータの縦方向および横方向への結合手順を、具体的な例を交えながら詳しく解説します。

【要点】VSTACK・HSTACK関数で複数表を自在に結合

  • VSTACK関数: 複数の表や範囲を縦方向に一つのリストへまとめることができます。
  • HSTACK関数: 複数の表や範囲を横方向に並べて比較しやすい形に結合できます。
  • 関数入力の基本: 結合したい範囲をカンマで区切って指定するだけです。
  • バージョン依存性: Excel for Microsoft 365の限定機能であるため注意が必要です。

ADVERTISEMENT

HSTACK・VSTACK関数とは データ結合を効率化する機能の概要

VSTACK関数とHSTACK関数は、Excel for Microsoft 365で導入された新しい動的配列関数です。これらは複数の範囲や配列を一つのまとまりに結合する目的で使用されます。従来のコピー&ペーストやPower Queryとは異なる、数式によるデータ結合の新しい選択肢を提供します。

VSTACK関数は、指定された複数の範囲を縦方向に積み重ねて結合します。例えば、各支店の月別売上データが異なるシートにある場合でも、この関数を使えば一つの年間売上リストとして統合することが可能です。これにより、全体の集計や分析が容易になります。

一方、HSTACK関数は、指定された複数の範囲を横方向に並べて結合します。異なる項目のデータを横並びで比較したい場合に特に役立ちます。例えば、前月の実績データと当月の予測データを並べて表示し、変化を視覚的に把握するのに便利です。

これらの関数は動的配列関数であるため、結果は数式を入力したセルから自動的にスピルと呼ばれる形で展開されます。そのため、出力範囲に他のデータがあると#SPILL!エラーが発生する点に注意が必要です。また、これらの関数はExcel for Microsoft 365でのみ利用でき、Excel 2019やExcel 2021などの永続ライセンス版では使用できません。

お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

複数表を縦に結合するVSTACK関数の入力手順

VSTACK関数を使って複数のデータ範囲を縦方向に結合する具体的な手順を説明します。例えば、異なる期間の売上リストを一つにまとめたい場合に活用できます。

  1. 結果を表示する開始セルを選択
    結合後のデータが展開される最初のセルを選びます。このセルが結合結果の左上隅になります。
  2. VSTACK関数を入力開始
    選択したセルに「=VSTACK(」と入力します。
  3. 一つ目の結合範囲を指定
    一つ目の表のデータ範囲をマウスでドラッグして選択します。例えば、「Sheet1!A1:C10」のようにセル範囲が数式に入力されます。範囲の入力後、カンマ「,」で区切ります。
  4. 二つ目以降の結合範囲を指定
    同様に、二つ目、三つ目と結合したい表のデータ範囲を順に選択し、それぞれの範囲の後にカンマ「,」で区切ります。異なるシートやブックの範囲も指定できます。
  5. 数式を確定する
    すべての結合範囲の指定が終わったら「)」と入力し、Enterキーを押して数式を確定します。結果が選択したセルから下にスピルして表示されます。

複数表を横に結合するHSTACK関数の入力手順

HSTACK関数を使って複数のデータ範囲を横方向に結合する具体的な手順を説明します。例えば、異なる種類の情報を同じ項目名で横並びに比較したい場合に役立ちます。

  1. 結果を表示する開始セルを選択
    結合後のデータが展開される最初のセルを選びます。このセルが結合結果の左上隅になります。
  2. HSTACK関数を入力開始
    選択したセルに「=HSTACK(」と入力します。
  3. 一つ目の結合範囲を指定
    一つ目の表のデータ範囲をマウスでドラッグして選択します。例えば、「Sheet1!A1:C10」のようにセル範囲が数式に入力されます。範囲の入力後、カンマ「,」で区切ります。
  4. 二つ目以降の結合範囲を指定
    同様に、二つ目、三つ目と結合したい表のデータ範囲を順に選択し、それぞれの範囲の後にカンマ「,」で区切ります。異なるシートやブックの範囲も指定できます。
  5. 数式を確定する
    すべての結合範囲の指定が終わったら「)」と入力し、Enterキーを押して数式を確定します。結果が選択したセルから右にスピルして表示されます。

ADVERTISEMENT

VSTACK・HSTACK関数使用時の注意点とデータ準備

VSTACK関数やHSTACK関数は非常に便利ですが、いくつかの注意点があります。これらを理解し、適切に対処することで、スムーズなデータ結合を実現できます。

Excel for Microsoft 365限定の機能である

VSTACK関数とHSTACK関数は、Excel for Microsoft 365の契約者のみが利用できる最新の動的配列関数です。

そのため、Excel 2019やExcel 2021などの永続ライセンス版ではこれらの関数は使用できません。作成したファイルを共有する際は、受け取る側のExcel環境も確認し、必要に応じて値を貼り付けるなど互換性を確保する必要があります。

バージョンに依存しないデータ結合には、Power QueryやVBAを活用することも検討してください。

データの行数・列数が合わない場合の挙動

VSTACK関数で結合する範囲の列数が異なる場合、列数が少ない範囲には#N/Aエラーが表示されます。このエラーは「該当する値がない」という意味を示し、データが不足していることを表します。

HSTACK関数で結合する範囲の行数が異なる場合も同様に、行数が少ない範囲には#N/Aエラーが表示されます。この状態はデータの整合性が取れていないことを示唆します。

対処法としては、結合前にデータの形を揃えることが基本です。または、ISNA関数やIFERROR関数などを組み合わせてエラーを処理し、空白や特定のテキストを表示させることで、見た目を整えることも可能です。

数式がスピルして表示されない「#SPILL!」エラー

VSTACK関数やHSTACK関数の結果は、数式を入力したセルから動的に展開されます。この展開先となる「スピル範囲」にデータや結合セルが存在する場合、数式は「#SPILL!」エラーを返して結果を表示しません。

このエラーが発生した場合、数式を入力したセルの下または右側の範囲を調べ、他のデータ入力やセルの結合がないか確認してください。

解決策は、スピル範囲内の不要なデータを削除するか、結合されたセルを解除することです。十分な空白セルがある場所へ数式を入力し直すか、既存のデータを移動させてください。

結合セルの扱いとデータ破損のリスク

結合されたセルが含まれる範囲をVSTACK関数やHSTACK関数で指定すると、予期せぬ結果やデータの歪み、あるいはエラーが発生する場合があります。

結合セルはデータの構造を複雑にし、関数による自動処理と相性が悪いことが多いです。数式が結合されたセルをどのように解釈するかは予測が難しく、正確な結果が得られない可能性があります。

可能な限り、結合されていないデータ範囲を結合対象とすることが望ましいです。結合を解除してから関数を適用するか、データをテーブル化してから処理することを検討してください。

データ型の不一致がもたらす影響

結合する複数の範囲で、数値と文字列が混在している場合、期待通りの結果にならないことがあります。

Excelはデータ型に基づいて値を処理するため、例えば、ある範囲の数字が文字列として扱われ、別の範囲の数字が数値として扱われると、計算や並べ替えの際に問題が発生する可能性があります。

データの型を事前に統一することが重要です。TEXT関数やVALUE関数を使って、結合前にデータ型を変換する前処理を行うことで、より安定した結果が得られます。

空の範囲や空白セルが含まれる場合の挙動

VSTACK関数やHSTACK関数に空の範囲や多くの空白セルを含む範囲を指定した場合、その空の領域も結果に含まれてしまいます。

これにより、不要な空白行や空白列が結果として表示され、データの可読性が低下したり、後続の分析に影響を与えたりする可能性があります。

不要な空白を除外するには、事前にFILTER関数などを組み合わせて、空白セルを含まない範囲をVSTACKまたはHSTACK関数に渡すことを検討してください。これにより、必要なデータのみを効率的に結合できます。

VSTACK・HSTACK関数と従来のデータ結合方法の比較

Excelでデータを結合する方法は複数あります。ここでは、VSTACK・HSTACK関数と、従来のコピー&ペーストやPower Queryを比較し、それぞれの特徴を理解します。

項目 VSTACK/HSTACK関数 コピー&ペースト Power Query VBAでの処理
更新の自動化 元データ変更で結果が自動更新される 手動での再貼り付けが必要となる データソース変更後、更新操作が必要となる コード実行で更新、自動実行設定も可能
操作の手軽さ 数式入力のみで結合が完結する 繰り返し作業が発生しがちである 初期設定に手順がかかるものの、一度設定すれば容易 VBAコードの記述が必要、専門知識を要する
対応バージョン Excel for Microsoft 365のみで利用可能 すべてのExcelバージョンで利用可能 Excel 2010以降のバージョンで利用可能 すべてのExcelバージョンで利用可能
処理の柔軟性 単純な結合に特化し、シンプルに使える 手動で細かく調整できる柔軟性がある データの変換・整形を強力に支援する あらゆる複雑な処理をプログラムで実現する
データ量 中規模程度のデータ結合に適している 小〜中規模程度のデータ結合に適している 大規模データも効率的に処理できる データ量に応じて処理速度に影響が出る
エラー処理 #N/Aや#SPILL!エラーで問題が明確になる 手作業のためエラーは目視で確認 エラー処理機能が充実している エラーハンドリングをコードで記述する

まとめ

VSTACK関数とHSTACK関数は、複数のデータ範囲を効率的に縦横に結合するための強力なExcel機能です。

この記事で解説した手順を実践すれば、手作業でのデータ集計を大幅に削減し、業務効率を向上させることができます。

ぜひこれらの関数を使いこなし、日常のデータ処理業務をスムーズに進めてください。さらに複雑なデータ統合には、Power QueryやVBAとの組み合わせも検討し、より高度なデータ管理を実現しましょう。

📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】