情報整理術の数々! PICK UP!

【シリーズ:一昔前のExcel(エクセル)で停滞している方へ】文字列を連結する新しい関数CONCAT関数とTEXTJOIN関数

前回、文字列を連結する古い関数である
「CONCATENATE」関数
について、事例をまじえながらその用途について確認してみました。

今回は、その後継となる「CONCAT」関数「TEXTJOIN」関数について見ていきたいと思います。

CONCATENATE関数とCONCAT関数の違いとは

エクセル2019(Office365はエクセル2016)から追加された「CONCAT」関数には、「CONCATENATE」関数にない引数の指定ができます。
それは、”セル範囲を連結文字として指定できる”という点です。

実際にその指定方法をご覧いただきましょう。

セル「E1」には、セル「A1:C1」に入力された各文字を「CONCAT」関数で繋げた結果を表示し、
セル「E2」には、同じ各文字を「CONCATENATE」関数で繋げた結果を表示しています。

一目瞭然ですが、「CONCAT」関数は、引数に指定する文字列に「A1:C1」のようなセル範囲を入力できるのです。

つまり、セル「A1」からセル「C1」までに入力された文字を変更すれば、「CONCAT」関数で接続した文字列も自動的に変更されるわけですね。

上のように、セル「C1」が空文字となってしまえば、結果も「A1:B1」の「ずるいよ」と「カンチ」の各文字が接続された後には何も表示されません。

一方で、セル「E2」に表示されている結果は、「#VALUE!」となっています。
これは、「CONCATENATE」関数の引数にセル「A1:C1」を設定してみた結果となります。
古い関数である「CONCATENATE」では、このような引数指定にはエラーを返す仕様となっているのです。

CONCAT関数でできない処理はTEXTJOIN関数で

「CONCATENATE」関数にはできなかった
”セル範囲を引数に指定できる”
「CONCAT」関数ですが、実はこの「CONCAT」関数ではできない処理もあります。

それは、「セル範囲の各文字列の区切り文字を指定する」処理です。

以下、実際の画面を見てみましょう。

先程までは、セル「A1:C1」の文字を単純に繋げていただけなので、句読点や飾り文字が一切ありませんでした。
しかし、本当は、上の赤く囲んだ「関数の結果」が表示しているように、「。」や「!」などの文字を間に挿入して、メリハリをつけたいところです。

ただそうなると、引数にセルの範囲指定はできず、上の引数指定のように1つずつセル番地を指定した合間に、「。」や「!」を指定する方法を取らざるを得ないのです。

そこで登場するのが、「TEXTJOIN」関数です。

「TEXTJOIN」関数では、各文字を区切る「区切り文字」を別個に引数として指定できます

上のように、「区切り文字」に「。」を指定すると、セル範囲「A1:C1」の各文字の間に「。」が入ります。
関数の結果を見てみると、「僕は(A1)。死にましぇん(B1)。あなたが好きだから(C1)」となっています。

それでは、「僕は、死にましぇん。あなたが好きだから!!」としたい場合は、どうしたらよいでしょうか。

その場合は、「区切り文字」にもセル範囲を指定すればよいのです。

セル「A2:C2」に「句読点」と「!!」が入力されていて、関数の「区切り文字」には「A2:C2」と指定しました。
セル「A1:C1」の文字の間を順番にセル「A2」から「C2」までの区切り文字で区切られていきますので、
上で赤く囲んだ関数の結果のように、「僕は、死にましぇん。あなたが好きだから」となります。

・・・あれっ?!

最後の「!!」が結果に表示されない
と不思議に思いませんでしたか?

では、それを解決するために一手間加えてみましょう。

本来、「区切り文字」に指定した「A2:C2」が「A1:C1」の各文字の間に表示されてほしいですよね。
僕は(A1)
、(A2)
死にましぇん(B1)
。(B2)
あなたが好きだから(C1)
!!(C2)
となってほしい。

しかし、最後の「!!」が表示されません。

これは、区切り文字というのが「文字と文字の間をつなぐもの」だからです。

最後の文字であるセル「C1」の次にも文字がないとその間の「区切り文字」は表示されないのです。

ということは、セル「C1」の次にも何か文字列を指定すればいいわけですが、特に指定したい文字がない場合は、「空文字」を指定してあげて不足を補います。

セル範囲を指定した「A1:C1」の次の引数に「空文字(” ”)」を指定しています。
これで、セル「C1」と「空文字」の間に「!!」が表示されるようになります。

もしくは、セル「D1」に空文字を入力して、以下のように引数指定を設定しても同様の結果となります。

最後のセル「D1」に空文字が入力されていれば、
セル「C1」とセル「D1」の間に「!!」が入りますので、同じように
「僕は、死にましぇん。あなたが好きだから!!」という結果が返ります。

総括

さて、いかがでしたでしょうか。

ただ文字列を繋げるだけだった「CONCATENATE」関数から、
各文字列をセル範囲していできるようになった「CONCAT」関数、
そして、文字と文字の間を区切る「区切り文字」も別途指定できるようになった「TEXTJOIN」関数へとグレードアップしていったのがお分かりいただけたと思います。

文字列を単純に繋げるだけなら「&(アンパサンド)」でも良かったわけですが、
文字列や区切り文字をセル範囲で指定できるようになったので、セルの内容に変更があっても柔軟に対応できるようになりました。

今回のように少し地味な文字列操作関数も、エクセルが新しくなるにつれて進化してきました。

実務だと、既に入力されているセルの文字列を使って文章などを作成する際にこれらの関数を使用する場面が出てくるかもしれません。

文字列操作でよく使う「LEFT」などのトリム系や「REPLACE」などの置き換え関数と合わせて、今回のような文字列連結ができる関数も是非是非使ってみてください。

さて、本来は今回で最終回のはずだった「一昔前エクセル」シリーズも、以前にも告知していた通り、次回の番外編でいよいよ本当の最終回を迎えます。

あのカンマがずらっと並んだ関数をスッキリさせてみたいと思います。

それでは、次回もお楽しみに!

関連記事

  1. エクセルに標準搭載された3Dマップを活用する![その4]―フィールドリストが重複したら

  2. Excelのスキルを図る企業の入社テストを実際にやってみた【2】

  3. Excelのスキルを図る企業の入社テストを実際にやってみた【4】

  4. 年末調整で求める年調年税額をエクセルの関数を交えて算出してみる!―その1―

  5. Excelのスキルを図る企業の入社テストを実際にやってみた【8】

  6. 【シリーズ:人より一歩先行くエクセル技を身につける】ピボットテーブル編③

  7. 【シリーズ:一昔前のExcel(エクセル)で停滞している方へ】番外編:再検証!あのCHOOSE関数の…

  8. エクセルに標準搭載された3Dマップを活用する![その2]―ツアーを作成してみる

  9. 年末調整で求める年調年税額をエクセルの関数を交えて算出してみる!―その3―

特集記事!

  1. [CLOVA Note]LINEの音声認識AI搭載で音声データを楽々テキスト化!…
  2. [Teams]自分だけが使うチャットでチャット操作をマスター&アカウントに注意
  3. 【スクリブルがiPadOS15から日本語対応に】メモアプリはApplePenci…
  4. こんなに簡単!おしゃれで自分好みのロゴを作成できる「DesignEvo」が秀逸す…
  5. メールアプリ「Spark」の便利機能その10ー複数で1つのメールアドレスを管理す…
  6. 続・iPadで使うカレンダー:新しい予定表の作成や公開を設定してみる
  7. 街を愛する地域ポータルサイト!個人的に好きな10サイトを選んでみた!(1位~3位…
  8. 街を愛する地域ポータルサイト!個人的に好きな10サイトを選んでみた!(4位~10…
  9. 会社を退職したいけどできない!退職代行サービスの利用で失敗しない方法とは
  10. 自社でメールマガジンを配信したい!メール配信サービス徹底比較6選

人気記事 PickUp!

おすすめ記事

ピックアップ!

  1. Slackとの連携にも必須!Trelloでチームを作成する方法
  2. [slack]24.slackに設定したOneDrive上のMicrosoft3…
  3. [slack]25.メインのメールや予定表にOutlookを使っているならsla…
  4. 【シリーズ:一昔前のExcel(エクセル)で停滞している方へ】進化し続けるエクセ…
  5. 【連載番外】Lucidchartでロジカルシンキングに使う図面を3つ選んでみた
  6. iPadでブログ記事を執筆中!記事内に挿入する画像を編集するならどのアプリを使う…
  7. iPadの時短技3選!無駄な時間を省いて効率よく作業しよう
  8. [slack]28.チャットではカバーしきれない分散される情報をStockで拾う…
  9. [slack]29.チャットではカバーしきれない分散される情報をStockで拾う…
  10. [連載]Windows・Android・iPadOSの異なる環境でメールを同期す…

PAGE TOP