Excelの「表」の文字列を連結して「一連の文章」にするTEXTJOIN関数
文字列を連結するTEXTJOIN関数が「Excel2016」で装備されました。
Excelで作成した「表」のデータをWordや年賀状ソフトなどで活用する(取り込む)ためには、カンマやスペースで区切った「文字列」にする必要があります。
Excelのコマンドでもカンマやスペースで区切ったデータとして書き出すことが可能ですが、不要な部分まで書き出さされるなど制約が多く重いどおりにならないことがあります。
この「TEXTJOIN関数」の特徴は「区切り文字」が使えることです。
「TEXTJOIN関数」を使えば、単純に文字を連結するだけでなく「区切り文字」を入れながら文字列を連結することができます。
「文字列」を「区切り文字」を入れて連結することで、Excelのデータを年賀状印刷ソフトに取り込ませるデータを作成したり、他のソフトが取り込むことができるデータを作成することができます。
これまでは区切り文字を入れる場合は、個々のセルと区切り文字を「&」演算子で連結するしかなく、とても面倒でした。
さらに「TEXTJOIN関数」の優れた点は配列数式にも対応していることです、「"&"演算子」を使って文字を加えたものに区切り文字を付けて連結することができます。
「社名」と「所在地」を連結して文字列する
「所在地」を「()」で囲み連結し、「 、」で区切って一つの文字列にする
「社名」と「所在地」を連結して文字列にする
文字を連結して「 平成印刷(広島県)、大正食品(山口県)、明治飲料(岡山県)、昭和薬品(島根県) 」にします。
下の例のように「所在地」を「( )」で囲みたい場合、配列数式とTEXTJOINを組み合わせることにより、簡単に連結することができます。
配列数式を使わずに、所在地に「( )」を付ける場合
TEXTJOIN関数を使っても直接「( )」を付加することはできないので、2段階で設定します。
- 「別フィールド」に社名と所在地に「"&"演算子」を使って「( )」を加えたものを連結する
-
TEXTJOIN関数で「別フィールド」を「 、」で連結する
1.新たなフィールドとして、社名と「( )」を付加した所在地を連結する
社名と所在地に「( )」を連結したフィールドができました
「社名」と「所在地」が連結され「列1」ができました。
2.TEXTJOIN関数で「列1」を区切り文字「 、」で連結します
セルB8に、TEXTJOIN関数を使って数式を入力します。
TEXTJOIN関数の「区切り文字」を「 、」に設定します
※ 表がテーブル化されているので、「D3~D7」を選択すると「テーブル13[列1]」と表示されます。
「&演算子」 ➡ 「TEXTJOIN関数」の2段階で連結されました
- &演算子で「( )」を付けて「社名」と「所在地」を連結したフィールドを作成
- TEXTJOIN関数で「 、」を付けて、作成したフィールドを連結
TEXTJOIN関数と配列数式を組み合わせれば1ステップで連結できる
TEXTJOIN関数と配列数式を使えば、新たなフィールドを作成することなく1ステップで連結することができます。
数式「 =TEXTJOIN ( "、" , TRUE ,「社名」& " ( " & " 所在地 & " ) " 」と入力し配列数式のコマンド「 CTRL+SHIFT+ENTER 」で確定する。
関数「 fx 」ボックスに入力する場合
- 区切り文字「 、」を入力すれば「 " " 」は自動で付加されます
- 空のセルは無視は「TRUE」にします
- テキスト1は「 社名の範囲 & "(" 所在地の範囲 & ")" 」と入力します
- 「OK」や「ENTERキー」は押さずに、CTRL+SHIFT+ENTERで確定します
新たなフィールドを作ることなく、連結ができました
「文字連結」のその他の方法
文字連結関数「CONCAT」
文字を連結する関数には「CONCATENATE」がありましたが、この関数はセルの範囲を引数に指定することができませんでした。
この「CONCATENATE」の代わりにExcel2016では、後継関数として「CONCAT関数」が搭載されました。
区切り文字を使わない単純な連結の場合は「CONCAT関数」を使うことができます。
その他にも「単純な連結」の場合は、「フラッシュフィル」コマンドを使えば瞬時に連結することができます。
「フラッシュフィル」を使った文字連結
フラッシュフィルには文字連結以外にも、一度手動で行った内容を「予測?」して実行してくれる「AI」的なコマンドです。
関数を使って複雑な数式を入力することなく一度「手入力」してやれば、それと同じ操作を「コピー」してくれる機能です。
しかし、「自動更新はされない」ので、データを変更した場合はその都度操作する必要があるので万能ではありません。
そして「左側にあるデータにしか使えない」コマンドであることにも注意が必要です。
- 変換したい一番上の行に「変更したい内容を入力」する
- 入力したセルを選択すると右下に出てくる「フィルハンドル」をダブルクリックする
- 表の最下行まで「一番上の行がコピー」される
コピーされた範囲全体が選択状態になり、右下に「オートフィルオプション」が表示される
フラッシュフィルにより下の行にも、「社名」と「所在地」が連結され、所在地を「( )」で囲むという「ルール」が適用されます。
- 「オートフィルオプション」をクリック
- 「フラッシュフィル」を選択
「フラッシュフィル」には制限もありますが、「こんなこともできるのか・・・」と驚くことがあるほど便利な機能です。
機会あるごとに試してみて新しい使い方を見つけてください。
- Excelの「表」の文字列を連結して「一連の文章」にするTEXTJOIN関数
- 「社名」と「所在地」を連結して文字列にする
- 配列数式を使わずに、所在地に「( )」を付ける場合
- 2.TEXTJOIN関数で「列1」を区切り文字「 、」で連結します
- TEXTJOIN関数と配列数式を組み合わせれば1ステップで連結できる
- 「フラッシュフィル」を使った文字連結