適材適所

PowerShellやVBAなどのプログラミングに関すること、キャリア、子育ての3本で書いていきます

TextJoin関数で連結する文字を囲んで連結したい

Excel 2019で登場した、待望(?)の文字列連結関数、TextJoin。

これが登場する前は、VBAで関数をちょこっと自作してましたが、もうその手間から解放されますね。

今回は、そのTextJoin関数のちょっとした応用例として、連結する文字を特定の文字(ダブルクォーテーションなど)で囲んでから連結する方法を紹介したいと思います。

どんなときに役立つか

プログラムで配列を書くのが面倒なときなど重宝する・・・かも。

第一引数の区切り記号を工夫する

TextJoin関数のヘルプを見ると構文はこのようになっています。

TEXTJOIN (区切り記号、ignore_empty、文字列 1, [文字列 2],...)

最初に区切り記号を指定します。この区切り記号が文字列と文字列の間にはいるわけです。

ただ連結する

区切り記号に何も指定しないと、ただ文字列が連結されます。

=TEXTJOIN("",TRUE,A1:A2)

f:id:shinmai_papa:20200715083544p:plain

カンマ区切りにする

カンマ区切りにする場合は、

=TEXTJOIN(",",FALSE,A1:A7)

区切り文字にカンマを指定します。

f:id:shinmai_papa:20200715083547p:plain

特定の文字列で囲む

特定の文字で囲みたい場合です。

%a%,%b%

この例では、パーセントで囲ってみました。

このようにするためには、区切り記号を工夫し、区切り記号の頭とお尻に文字列を追加してあげます。

=TEXTJOIN("%,%",TRUE,A1:A7)

f:id:shinmai_papa:20200715083551p:plain

そうすることで、連結した文字列の前後に%が追加されました。

これだけだと連結後の文字列の前後に記号が足りないので、付け加えてあげます。

="%"&TEXTJOIN("%,%",TRUE,A1:A7)&"%"

f:id:shinmai_papa:20200715083555p:plain

こうすれば、文字列を全て記号で囲むことができます。

バリエーション

ダブルクォーテーションやシングルクォーテーションで囲むときは見づらいのであんちょこを貼っておきます。

繰り返しになりますが、プログラムで配列を書くときはこの辺を活用して楽ができますね!!

ダブルクォーテーション

=""""&TEXTJOIN(""",""",TRUE,A1:A7)&""""

シングルクォーテーション

="'"&TEXTJOIN("','",TRUE,A1:A7)&"'"

終わりに

やっと登場してくれた、汎用的な文字列連結用関数。

まだまだ、色々と活用できそうですね!!

ここまでお読みいただき、ありがとうございました。