
Excel Tips ~ 文字列の扱い【結合】
このノートは学校という場において、私が校務の中でExcelを使ってきた事について書き留めています。
具体的な操作というより、どういうシチュエーションでどんな使い方をしてきたか、ということを中心に綴っていきます。
はじめに
学校で使うデータと言えば生徒や教職員の個人情報が一番多いのではないでしょうか。
代表的なものとして名簿・住所録などの文字列データや成績などの数値データがあります。
今回は文字列データの取扱について書きたいと思います。
使用している住所氏名は架空のダミーデータで、実在の場所、人物とは全く関係ありません。
疑似個人情報生成
元となるテーブルの作り方
データというのは基本的にあるていど分割されていた方が後々使いやすいものです。
例えば
●姓,名

●都道府県,市区町村,町域,番地,建物・方書

などなど。
ただ,実際に帳票などに出力するときは

というように分割したデータを結合する使い方が多いと思います。
ここでは分割された文字列を結合する方法を3つ紹介します。
&演算子を使う方法
最初は一番単純な方法。
文字列(または文字列は入ってセルのセル番地)をひたすら”&”でつないでいく方法です。
=K10&L10&M10&N10&O10

式の構造は極めてシンプルなんですが,結合するセルが多いと少し大変です。
次に,結合する文字列と文字列の間に別の文字を挿入したいときです。
=K14&"-"&L14&"-"&M14&"-"&N14&"-"&O14

ここでは項目どうしの間を「-」(全角ハイフン)でつないでいます。
任意の文字列を結合したいときは,その文字列を"(半角ダブルクォーツ)で括ります。
「-」を間に入れたいときは,"-"を式中に挿入し&演算子でつないでいけばOKです。
この書式は,他の関数で引数として文字列を記述するときも同じなので,覚えておくと良いでしょう。
&演算子でつないでいく方法はシンプルでわかりやすいのですが,つなぐ文字列が多くなる結構たいへんです。
2~3ぐらいでちゃちゃっとやりたいときはお手軽ですが,そうでないときはお勧めしません。
ただ,区切り文字などを場所によって変えたいとか,結構きめ細かい文字列結合ができるやり方ではあります。
CONCAT関数を使う方法
結合する文字列が連続する列に入力されている場合は関数が便利です。
&演算子のようにひとつずつ指定しなくても範囲で指定できるからです。
Excel for Microsoft 365
Excel for the web Excel 2021
Excel 2019
で使えるようです。

書式は
=CONCAT(範囲)
となります。
上図の例だと,K10からO10までのセルに入力されている文字列を結合しています。
間に区切り文字など別の文字列を挿入したいときは,ひとつずつ指定しないといけません。

こうなると関数を使っても&演算子と変わりはありません。
結合する文字列が連続するセルにある場合は関数を使用した方が便利ですね。
TEXTJOIN関数を使う方法
Excel for Microsoft 365
Excel for the web
Excel 2021
Excel 2019
で利用できるようです。
この関数もCONCAT関数と同じく,データセルが連続していたら範囲で指定できます。
さらには区切り文字の指定も可能で,&演算子やCONCAT関数のように一つ一つつなげて行かなくてもOKです。
その上空らんを無視することも可能なので,区切り文字が不要なところで表示されてしまうような事態が回避できます。

区切り文字がないもの(上)とあるもの(下)をあげます。
区切り文字が不要な場合は空文字列""(半角ダブルクォーツを2つ)を区切り文字を指定する第1引数に記述します。
第2引数は空らんを無視するかどうかですが,だいたいにおいて無視(TRUE)にしておいていいかと思います。

空のセルを無視しない,とすると空のセルが間にあると区切り文字が連続することになります。
CSV形式のデータを生成するときは空らんのセルを無視しない方がいいのですが,それ以外では「無視する」を選択した方が良さそうです。
第3引数は結合したい文字列やデータセルの範囲です。
おわりに
それぞれのやり方には適材適所がありますので,目的や状況に応じて使い分けるのがいいでしょう。
後は下位バージョンとの互換性も考慮する必要があります。
新旧のエクセルが混在している職場では注意しましょう。
&演算子 ちょっとした文字結合
CONCAT関数 連続したセルデータの結合(Excel2019~)
TEXTJOIN関数 区切り文字が必要な時(Excel2019~)