本ページには広告が含まれています。

HSTACK 関数 セル範囲(配列)を水平方向に連結して返す

HSTACK関数 セル範囲(配列)を水平方向に連結して返す

セル範囲(配列)を引数順に列単位で追加して連結された新しい配列を返します。配列を水平(横)方向に連結できる関数です。

2022年8月下旬のアップデートで新たに一般公開された14個の文字列・検索/行列関数のひとつです。(3月から「Office Insider Program」でテストされていたものが公開されたものです)

スポンサーリンク

はじめに

HSTACK関数は、複数のセル範囲(配列)を水平(横)方向に連結できる関数です。
※ 垂直(縦)方向に連結するVSTACK関数も同時に公開されています。

くるみこ
くるみこ

HSTACK関数の基本的な使い方について紹介していきます。
この関数を使用できるのは、サブスクリプション版の「Microsoft 365」アプリ「Excel for Microsoft 365」とWeb版だけですので注意してください。

関数名の先頭「H」からすると「横方向」の動作という感じですか。
「STACK」は積み重ねるとか並べるという意味ですよね。

詳しく教えてください。よろしくお願いしますm(__)m

【この記事でわかることは】
・HSTACK関数の使い方がわかります

スポンサーリンク

HSTACK 関数の構文

HSTACK 関数入力時に表示される「数式オートコンプリート」から確認しましょう。
※ 対応していないExcelバージョンでは「オートコンプリート」にこの関数は表示されません。
リンクはこの関数の公式ヘルプの掲載場所です。

HSTACK 関数の構文と引数

HSTACK関数入力時に表示される説明画像です。

HSTACK関数入力時の表示
※ 配列ににスタック ⇒ 配列に水平にスタック ですね。

表示される引数の表示画像がこちらです。

引数入力時に表示される「オートコンプリート」

=HSTACK(array1, [array2], …)
引数は英文表記です。日本語に整理すると次のような感じです。

【構文】

=HSTACK(配列1, [配列2], …)
 ※[ ]内の引数は省略可能

引数説明
配列1
array1
セル範囲(配列)を指定【必須】
[配列2]
array2
連結するセル範囲(配列)を指定
[配列n]
[arrayn]
連結するセル範囲(配列)を指定
n 254 が最大数
※ 配列の行数が最大行数より少ない場合、不足行のセルに #N/A エラーを返します

引数がいくつまで設定できるのか実際に試してみました。結果は、254を超えると次のエラーメッセージが出て設定できなくなりました。

引数がオーバーフローの場合

HSTACK 関数の使用例

それでは実際に使ってみて確認することが大事ですので早速やってみましょう。

行数が同じ2つのセル範囲を横に連結する

HSTACK関数で行数が同じ二つのセル範囲を簡単に連結できました。

HSTACK関数で行数が同じ2つのセル範囲を横に連結

・「E1」セルに入力した式は =HSTACK(A1:C3,B5:C7) です。

・表の見出し部分も含めてセル範囲を指定しました。

・単純に「引数1」の右側に「引数2」が連結されてスピル表示されました

・例えば「引数2」の単価と金額を入れ替えて表示したい場合は、
 =HSTACK(A1:C3,C5:C7,B5:B7) のように分割して指定すればOKです。

スピルについてはこちらの記事をご覧ください。

行数が違う2つのセル範囲の連結

次は、HSTACK関数の引数に、行数の異なるセル範囲を指定した場合の例です。
さらに範囲内に空欄のセルがある場合についても一緒に見てみましょう。

HSTACK関数で行数が違う2つのセル範囲の連結

・「E1」セルに入力した式は =HSTACK(A1:C3,B5:D8) です。

・二つ目の引数(セル範囲)を先ほどの例に+1行+1列追加して指定しました。

E4:G4 のセルが #N/A 表示になっています。
 これは「引数1」の行数が最大行数に足りないため、不足分が #N/A 表示になったものです。

「空欄」だったセルの部分は、連結後には 0” で表示されているのが確認できます。

・できれば #N/A と空欄セルに “0” を表示しないように変更したいですね。

#N/A と “0” を消す方法

#N/A のようなエラー表示を消す定番は IFERROR ですね。
・空欄セルの部分に “0” を表示したくない場合には、HSTACK関数に &”” を付加します。

HSTACK関数の#N/A と "0" を消す方法

うまくいきましたね。

・「E1」セルに入力した式は =IFERROR(HSTACK(A1:C3,B5:D8)&””,””) です。

IFERROR(HSTACK(A1:C3,B5:D8)&””,””) 赤字の部分で #N/A を消しています。

・=IFERROR(HSTACK(A1:C3,B5:D8)&””,””) 赤字の部分で “0” を消しています。

・この消し方はよく使うと思うので覚えておきましょう。

※ 同時に公開された、VSTACK関数については別の記事で解説していますのでご覧ください。

まとめ(おわりに)

以上、HSTACK関数 について解説しました。

くるみこ
くるみこ

HSTACK関数で指定する引数のセル範囲(配列)は、同じシートだけではなく、別シートや別ブックからも指定できます。
今回の例では、連結をセル上に表示しましたが、FILTER関数など他の関数と組み合わせて関数内で配列をつくるようにして利用すると活用する範囲がグンとが広がりますね。

最後の #N/A と “0” を消す方法の部分はしっかり覚えて活用したいと思います。HSTACK関数でも列の並び替えができることもわかりました。他の関数に組み入れて使う活用法を考えてみます(^^

★★★ ブログランキング参加中! クリックしてね(^^)/ ★★★

【今後の記事について】

今回の記事はいかがだったでしょうか。皆さまのお役に立てたなら幸いです(^^;
「汎用でだれでも使えて活用できるように考えてる」というポリシーで、記事を継続して書いていきたいと思っています。どうぞよろしくお願いしますm(_ _)m

スポンサーリンク
スポンサーリンク

過去記事のサンプルファイルをダウンロードできます

この記事で使用したサンプルの登録はありません。
過去の記事で使用したサンプルファイルをダウンロードできるようにページを設置していますので、こちら(このリンク先)からご利用ください