Excelで複数セルのデータをまとめて1つの文字列にしたい場面、ありますよね。「報告書にデータを貼り付けたいけど、1セルずつコピーするのが面倒…」と感じたことはないでしょうか。
そのままだと、セルをひとつずつ手作業でつなげるしかなくて非効率です。
そんなときに便利なのが ARRAYTOTEXT関数 です。この関数を使えば、配列やセル範囲のデータをまとめて1つのテキストに変換できますよ。
この記事では、ARRAYTOTEXT関数の基本的な使い方から実務での活用例まで、わかりやすく解説していきます。
ExcelのARRAYTOTEXT関数とは
ARRAYTOTEXT関数は、配列やセル範囲のデータをテキスト形式に変換して返す関数です。読み方は「アレイ トゥ テキスト」です。Array(配列)をText(テキスト)に変換する、という意味がそのまま名前になっています。
たとえば、A1からA3に「田中」「太郎」「22」と入っている場合、ARRAYTOTEXT関数を使うと「田中, 太郎, 22」のように1つの文字列にまとめてくれます。
複数のセルに散らばったデータを1つにまとめたいときに活躍する関数ですよ。
なお、ARRAYTOTEXT関数は Microsoft 365 または Excel 2021 以降で利用できます。お使いのバージョンが対応しているか、確認しておきましょう。
ARRAYTOTEXT関数の構文と引数
基本構文
=ARRAYTOTEXT(配列, [書式])
引数は2つありますが、必須なのは「配列」だけです。「書式」は省略できます。
引数の詳細
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 配列 | 必須 | テキストに変換したいセル範囲または配列 |
| 書式 | 省略可 | 出力形式を指定する。0(簡潔形式)または1(厳格形式) |
書式オプションの違い
書式の指定によって、出力されるテキストの形が変わります。ここがARRAYTOTEXT関数のポイントです。
書式 = 0(簡潔形式 / デフォルト)
省略時はこちらが適用されます。セルの表示そのままの値がカンマ区切りで並びます。
=ARRAYTOTEXT(A1:A3, 0)
→ 田中, 太郎, 22
見た目がシンプルなので、報告書やメール本文にそのまま貼り付けたいときに向いています。
書式 = 1(厳格形式)
中括弧で囲まれ、文字列にはダブルクォーテーションが付きます。数値はそのまま表示されますよ。
=ARRAYTOTEXT(A1:A3, 1)
→ {"田中","太郎",22}
厳格形式は、出力結果を別の数式に渡したいときに便利です。データ型が明確になるので、文字列と数値を区別しやすくなります。
ARRAYTOTEXT関数の基本的な使い方
実際にARRAYTOTEXT関数を使ってみましょう。ここでは、よくある使い方を3つ紹介します。
セル範囲を指定する
もっとも基本的な使い方です。データが入ったセル範囲をそのまま指定します。
=ARRAYTOTEXT(A1:C1)
→ 田中, 太郎, 営業部
横方向・縦方向のどちらの範囲でも同じように動作します。
2次元の範囲を指定する
行と列にまたがる範囲も指定できます。
=ARRAYTOTEXT(A1:C3)
→ 田中, 太郎, 営業部, 鈴木, 花子, 総務部, 佐藤, 一郎, 経理部
複数行のデータもカンマ区切りで1行にまとめてくれます。データの一覧をさっと確認したいときに使えますよ。
配列定数を直接指定する
セル参照ではなく、配列定数を直接指定することもできます。
=ARRAYTOTEXT({"東京","大阪","名古屋"})
→ 東京, 大阪, 名古屋
数式の中でちょっとした文字列を組み立てたいときに覚えておくと便利です。
ARRAYTOTEXT関数の活用例
ここからは、実務で役立つ活用例を紹介していきます。
担当者名の一覧を1セルにまとめる
プロジェクトの担当者リストが縦に並んでいるとき、報告書用に1セルにまとめるケースです。
=ARRAYTOTEXT(B2:B6)
→ 田中, 鈴木, 佐藤, 山田, 高橋
これなら、報告資料にコピー&ペーストするだけで済みますよね。
TEXTJOIN関数との組み合わせ
区切り文字を自由にカスタマイズしたい場合は、TEXTJOIN関数を使うのがおすすめです。
ARRAYTOTEXTはカンマ区切り固定ですが、TEXTJOINなら区切り文字を「/」や「・」に変えられます。
=TEXTJOIN("・", TRUE, B2:B6)
→ 田中・鈴木・佐藤・山田・高橋
用途に応じて使い分けてみてください。
厳格形式を活用したデータ加工
厳格形式(書式=1)の出力は、データの受け渡しに活用できます。
=ARRAYTOTEXT(A1:A3, 1)
→ {"商品A","商品B","商品C"}
この形式は、VBAやPower Queryにデータを渡すときの入力として使えるケースがあります。データ型が明確なので、加工時のトラブルを減らせますよ。
ARRAYTOTEXT関数とVALUETOTEXT関数の違い
ARRAYTOTEXT関数と似た関数に、VALUETOTEXT関数があります。名前が似ているので混同しやすいですが、違いはシンプルです。
| 項目 | ARRAYTOTEXT | VALUETOTEXT |
|---|---|---|
| 対象 | 配列・セル範囲(複数セル) | 単一の値(1つのセル) |
| 出力 | 複数の値をまとめた文字列 | 1つの値をテキストに変換 |
| 書式オプション | 0(簡潔)/ 1(厳格) | 0(簡潔)/ 1(厳格) |
ざっくり言うと、 複数のデータをまとめたいならARRAYTOTEXT、1つの値を変換したいならVALUETOTEXT と覚えておけば大丈夫ですよ。
また、文字列を結合する関数としてはCONCAT関数もあります。CONCAT関数はセル範囲の値を区切り文字なしで結合するので、カンマ区切りが不要な場合はこちらも検討してみてください。
テキスト変換関連の関数を目的別に整理すると、次のようになります。
| やりたいこと | 使う関数 |
|---|---|
| 配列をテキストにまとめる | ARRAYTOTEXT |
| 1つの値をテキストに変換する | VALUETOTEXT |
| 区切り文字を自由に指定して結合する | TEXTJOIN |
| 区切り文字なしで文字列を結合する | CONCAT |
| 数値や日付を表示形式付きでテキスト化する | TEXT |
| テキストを区切り文字で分割する | TEXTSPLIT |
ARRAYTOTEXT関数の注意点とエラー対処
対応バージョンに注意
ARRAYTOTEXT関数はMicrosoft 365またはExcel 2021以降でのみ利用できます。それ以前のバージョンでは #NAME? エラーが表示されます。
もし #NAME? エラーが出たら、まずExcelのバージョンを確認してみてください。バージョンが対応していない場合は、TEXTJOIN関数で代用できます。
空白セルの扱い
配列の中に空白セルがある場合、簡潔形式(書式=0)ではスキップされずにカンマの間が空になります。
A1: 田中、A2: (空白)、A3: 佐藤 の場合
=ARRAYTOTEXT(A1:A3)
→ 田中, , 佐藤
空白を除外したい場合は、TEXTJOIN関数の第2引数に TRUE を指定する方法が便利ですよ。
=TEXTJOIN(", ", TRUE, A1:A3)
→ 田中, 佐藤
大量データの場合
変換対象のセル数が多いと、結果の文字列が非常に長くなります。Excelのセルに格納できる文字数は32,767文字が上限なので、大量データの場合は範囲を区切って使いましょう。
まとめ
ExcelのARRAYTOTEXT関数は、配列やセル範囲のデータをまとめて1つのテキストに変換できる関数です。
ポイントをおさらいしておきましょう。
- 書式=0(簡潔形式): カンマ区切りでシンプルに出力。報告書やメールへの貼り付けに便利
- 書式=1(厳格形式): 中括弧+引用符付きで出力。データの受け渡しに向いている
- VALUETOTEXT関数との違い: ARRAYTOTEXTは複数セル、VALUETOTEXTは単一セルが対象
- 区切り文字を変えたいとき: TEXTJOIN関数がおすすめ
配列データを文字列に変換する場面で、ぜひ活用してみてください。
