いまさら聞けないExcelの使い方講座
【Excel】文字列の連結や分割に便利な新関数が登場! 「&」演算子やLEFT関数はもう古い?
2024年3月6日 06:55
文字列の結合や分割に便利な新関数
別々のセルに入力されたデータを連結して1つのセルにまとめたいことや、ひとつのセルに入力された文字列を別々のセルに分割したいことがありますよね。セルを編集モードに切り替えて、該当部分をドラッグして選択し、コピーや貼り付け……、と作業するのは数件でも手間がかかります。
文字列の連結には「=A1&B1」のように、&演算子を使うことが多いですが、分割はどうしましょう? LEFT関数やRIGHT関数を使う方法がありますね。セルの内容をテキストエディターなどにコピーして、タブ文字を挿入してからエクセルに貼り付け直し、といったテクニックを使う人もいるでしょう。
実は、便利な新関数が登場しています。TEXTJOIN関数とTEXTSPLIT関数です。Excel 2021 / 2019、Microsoft 365のExcelで利用可能。名前の通り、テキストを結合(JOIN)と分割(SPLIT)するための関数です。ありがちな例で簡単な使い方を見てみましょう。
区切り文字を挿入して結合できるTEXTJOIN関数
TEXTJOIN関数の構文は以下の通りです。1つ目の引数[区切り文字]に指定した文字列を挟みながら、複数のセルを連結します。例えば「-」(ハイフン)を挟んだ連結、改行を入れて連結といった使い道が考えられます。
引数[空のセルは無視]は、[文字列]で指定したセル範囲に空のセルが含まれていた場合の扱いを指定します。無視するなら「TRUE」、空のセルも含めるなら「FALSE」を指定します。「TRUE」と指定することが多いでしょう。
以下は「-」を挟んで複数のセルを連結する例です。後から区切り文字を変更したい場合は、引数[区切り記号]を変更するだけです。
引数[区切り文字]には任意の文字列を指定できるため、“改行”しながら連結することも可能です。指定した文字コードを返すCHAR関数を使って、改行を表す「CHAR(10)」を指定します。数式を入力するセルを選択して[ホーム]タブにある[折り返して全体を表示する]ボタンをクリックして有効にしておいてください。
なお、TEXTJOIN関数は“区切り文字を挿入して連結する”ことに特化しています。[区切り文字]を省略して連結することもできますが、以下のような状況では、CONCAT関数を使うほうがスマートです。
区切り文字で分割できるTEXTSPLIT関数
特定の区切り文字が挿入された文字列を分割する時は、TEXTSPLIT関数が便利です。指定した区切り文字で、横(列)方向や縦(行)方向に分割できます。数式を1つ入力するだけで、結果はスピルとして表示されます。
6つの引数がありますが、[文字列]と[列区切り]もしくは[行区切り]の2つのみ指定することがほとんどでしょう。[空文字列の扱い]には、区切り文字が連続する場合、無視(TRUE)するか、空白を含める(FALSE)かを指定します。規定は「FALSE」で省略可能です。
[検索モード]は、区切り文字の大文字と小文字を区別するかどうかという意味です。省略時は大文字と小文字を区別する「0」と見なされます。
[空いたセルの値]は[列区切り]と[行区切り]の両方を指定した場合、該当する区切り文字がない場合に表示する値を指定します。規定では「#N/A」となります。
なお、Excelのバージョンによって、引数のチップが英字で表示されることがありますが、意味は上記の通りです。
単純な例として「-」で分割してみましょう。
複数の区切り文字が含まれる場合は、区切り文字を配列で指定することで分割できます。例えば「-」と「/」が含まれている文字列なら、[列区切り]や[行区切り]に「{"-","/"}」のように指定します。
以下は、1つのセルに複数行でデータが入力されています。数値と地域で別々のセルに分割すること考えると、カッコも邪魔ですね。TEXTSPLIT関数で一発です。
横方向にデータを見ると「(」と「)」が区切り文字と言えます。縦方向では改行(CHAR(10))です。「)」の後ろは“空文字列”なので無視すると、以下のような数式が考えられます。
コピペから卒業しよう
文字列の連結や分割する作業はコピペに頼りがちですが、ぜひ便利な新関数を利用してみてください。複数の区切り文字が含まれる文字列を分割する作業でも一気に処理できますよ。