【Excel】離れた列を横に結合!新関数HSTACKでデータ成形を効率化

【Excel】離れた列を横に結合!新関数HSTACKでデータ成形を効率化 Excel

HSTACK関数は、複数のセル範囲や配列を水平方向(横)に結合し、一つの新しい配列として返す動的配列関数です。

これまで、離れた場所にある列を一つにまとめるには、コピー&ペーストを繰り返す必要がありましたが、HSTACK関数を使えば、数式一つで瞬時に新しい表を作成できます。特に、複雑な集計を行う際のデータ成形に役立ちます。

【対応バージョン】 HSTACK関数は比較的新しい関数です。

  • Excel for Microsoft 365 (サブスクリプション版)
  • Excel 2021

HSTACK関数の基本と構文

結合したい配列や列を、カンマ(,)で区切って並べるだけで非常にシンプルです。

=HSTACK(配列1, 配列2, 配列3,…)

引数名役割
配列1, 2…水平方向に結合したいセル範囲や配列(列)を
順番に指定します。

基本的な使い方(離れた列の結合)

連絡先データなど、項目が多数ある表から、必要な情報だけを抜き出して新しい一覧表を作りたい場合に便利です。

  • 元のデータ: 氏名、住所、電話番号などが並んだ表。
  • やりたいこと: B列の氏名とE列の住所だけを横に並べた一覧を作成する。
入力する数式意味
=HSTACK(B2:B6, E2:E6)氏名(B2:B6)の右に、住所(E2:E6)を結合する。

手順

  1. 一覧を作成したいセル【H2】を指定。
氏名、住所、電話番号などが並んだ表。

2. 関数の挿入→関数の分類を検索/行列→HSTACK→OKをクリック。

関数の挿入→関数の分類を検索/行列→HSTACK

3. Array1に氏名(B2:B6) Array2に住所(E2:E6)

4. 「OK」をクリック

この数式を一つのセルに入力するだけで、結果がスピル(自動展開)され、新しい表が瞬時に作成されます。

結果がスピル(自動展開)

HSTACKが真価を発揮する応用テクニック

HSTACKは、データを結合するだけでなく、他の動的配列関数の引数(キー)を準備するために使われることが非常に多いです。

GROUPBYやFILTER関数のキーとして利用

GROUPBY関数やFILTER関数で複数の条件を使いたいとき、その条件となる列が離れて配置されている場合があります。

例えば、「担当者」と「商品名」という離れた2つの列をキーにして集計したい場合、HSTACKを使ってこの2列を一時的に結合し、GROUPBYの最初の引数(集計キー)として渡します。

例(GROUPBYとの連携)

=GROUPBY(HSTACK(担当者列, 商品名列), 販売個数列, SUM)

エラー対策:行数を必ず一致させる

HSTACK関数を使用する際の最大の注意点は、結合するすべての配列の「行数」を一致させることです。

  • 原因: A1:A10 (10行) と B1:B5 (5行) のように行数が異なる配列を結合しようとすると、#VALUE!エラーが発生します。
  • 対策: 参照する範囲を、必ず同じ行数で指定してください。テーブル参照(例: テーブル1[列名])を使えば、データが増えても自動で範囲が調整されるため、このエラーを回避しやすくなります。

類似関数との違い

関数名読み方機能
HSTACKエイチスタック配列を水平方向(横)に結合する。
VSTACKブイスタック配列を垂直方向(縦)に結合する。

HSTACKVSTACKを使い分けることで、データの配置を自由自在にコントロールできます。


🌱関連する内容をまとめたので、必要に応じてご覧ください。

ももねこ

運営者プロフィール

パソコンインストラクターの経験を生かして、シニアの方や初心者の方に、WordやExcelの「できた!」を届けるために活動しています。

ももねこをフォローする