CONCAT関数・TEXTJOIN関数を学ぶ~ MOS2019試験に出るシリーズ

Excel(エクセル)MOS資格対策

本ブログ別の投稿にて、マイクロソフトオフィス・スペシャリスト資格(MOS)の次期バージョン、「MOS 2019(Office365 & Office2019)」の最新情報をご紹介しています。

MOS2019 最新情報 | キュリオステーション志木店のブログ

次期バージョンでは、Office2019の新機能が随所に盛り込まれています。決して難しくなってはいないと思いますが、新しい内容の学習が必要です。

そこで本記事では、新バージョンのMOS2019の中でも「Excelアソシエイト」(旧バージョンのExcelスペシャリストに相当)の試験範囲として明示された

  • CONCAT関数
  • TEXTJOIN関数

について、学習してみたいと思います。

いずれも、「Office2016の」新関数ですが、発売当初ではなくアップデートにより追加された関数です。

スポンサーリンク

MOS2019 「Excelアソシエイト」出題範囲を確認

米国Certiportより公開されている、MOS 2019(Office365 & Office2019)の出題範囲から、Excelアソシエイトの出題範囲を当教室にて独自翻訳したものがこちらです。

COUNTIF / SUMIF / AVERAGEIF関数などは、Excelエキスパートの方の出題範囲に明記されているので、アソシエイトレベルでは出題されないと見てよいと考えられますが、

一方で、新しい内容も入ってきています。

本記事では、この中の次の部分を取り扱います。

4.3.3 CONCAT()およびTEXTJOIN()関数を使用してテキストを整形する

※本記事では、関数名に()をつけて CONCAT()関数と表記しています。日本では一般には「CONCAT関数」と、()をつけないで表記されますが、本記事では()つき表記をおこないます。

スポンサーリンク

CONCAT() 関数について

CONCAT() 関数とは

CONCAT()関数は、文字列を結合する関数です。

CONCAT(文字列1,[文字列2],[文字列3],……)

文字列をいくつでも「,」で区切って入れられ、そのすべてが結合された文字列が戻り値となります。

ここまでだと、CONCATENATE()関数と同じですが、CONCAT()は、結合対象として範囲を指定することもできます。戻り値はその範囲内の文字列をすべて結合したものとなります。

例えば次のようなシートで、B1にこのようにCONCAT関数を入れると…

計算結果はこのようになります。

このように、範囲指定によって多数のセルの文字列を一気に結合できることがCONCAT()関数の特徴です。

CONCAT()関数を使った問題例

たとえばこんな問題が予想されます。

CONCAT()関数想定問題
CONCAT()関数を使った想定問題。タップすると拡大できます。

解答例はこのようになるかと思います。

=CONCAT(C4,B4,A4," ",D4," ",E4:G4,"サイズ")

CONCAT()関数は、個別のセル参照、” “でくくった文字列、セル範囲を混在できますので、このような書き方になります。

結果自体はそれほど難しい関数ではありませんので、問題文どおり正確に結合することが求められるように思います。

CONCATENATE()関数でも正解になる?

いっぽう、セル範囲を使わないですべて「,」で区切れば、CONCATENATE()関数でも同様に書けてしまいます。

しかし、試験範囲として明示されているのは「CONCAT()関数」の方ですから、それでは正解にならないと考えられます。

マイクロソフトは、CONCATENATE()関数を廃止したいと考えているようです。

重要: Excel 2016、Excel Mobile、および Excel オンラインでは、この関数は CONCAT 関数に置き換えられています。CONCATENATE 関数は、引き続き下位互換性がありますが、今後は CONCAT を使用することを検討する必要があります。これは、CONCATENATE が Excel の将来のバージョンで利用できない可能性があるためです。

Microsoftサポート「CONCATENATE関数」

ですから、試験でも、CONCATENATE()を使える場面でもCONCAT()を使いましょうよ、ということでしょう。

とはいえ、何の出題指示もなく、CONCATENATE()を×にすることは、ちょっと無理がある場面が多そうなので、もしかしたら問題文に「CONCATENATE関数は使わない」と明記されることになるかもしれませんね。

スポンサーリンク

TEXTJOIN()関数について

TEXTJOIN()関数とは

TEXTJOIN()関数も、文字列を結合する関数ですが、動作はCONCAT()とずいぶん違います。

TEXTJOIN(区切り文字,空文字列の扱い,文字列1,[文字列2],…)

「空文字列の扱い」とは

  • TRUE → 空文字列があったら区切り文字を挿入しない
  • FALSE → 空文字列であっても区切り文字は挿入する

与えられたいくつもの文字列を結合して、長い文字列を作り、
なおかつ、それを適切に区切って整った書式にする

という、なかなか難しい関数です。

例えば次のようなシートを作ると、

TEXTJOIN()関数のサンプル。上は空白を無視(TRUE)、下は空白も表示(FALSE)
TEXTJOIN()関数のサンプル。上は空白を無視(TRUE)、下は空白も表示(FALSE)

計算結果は次のようになります。

空白を表示(FALSE)の方は、「,,」とカンマが続いているところがある
空白を表示(FALSE)の方は、「,,」とカンマが続いているところがある

ぜひしっかり学習してものにしましょう。

TEXTJOIN()関数を使った問題例

例えばこんな問題が想定されます。

TEXTJOIN関数問題例。
TEXTJOIN関数を使った想定問題。タップすると拡大できます。

(ダウンロードファイルの中の「問題例1」です)

解答例としてはこのようになります。

=TEXTJOIN(",",TRUE,B3:H3)

「区切り文字」が範囲で指定される。難問の例

このTEXTJOIN()関数ですが、マイクロソフトの解説を見ますと、とてつもなく難しい使い方もあるようです。

TEXTJOIN関数 | Microsoftサポート

この中の「使用例3」の使い方が、もし問題になったらこんな感じです。

TEXTJOIN()関数で想定される難問の例。
TEXTJOIN()関数で想定される難問の例。タップすると拡大できます。

「区切り文字」が、一文字ではなく、なんと範囲で指定されています。
TEXTJOIN()関数は、「区切り文字」として範囲も指定できるのです。範囲内の区切り文字が、順番に使われます。「空白を無視」とした場合は、空白データがあった場合は順番は進みません。

(さきほどのダウンロードファイルに「問題例2」としてつけています)

解答例は次の通りです。

TEXTJOIN()関数の難問、解答例
スポンサーリンク

文字列関数ではTEXTJOIN()関数がむずかしい

MOS 2019 (Office365 & Office2019)の新試験範囲、CONCAT()関数とTEXTJOIN()関数をみてきました。

どうやら、文字列関数ではTEXTJOIN()関数がもっともやっかいな、むずかしい関数となりそうです。

自分で何度も試して、自信をもって使えるようにしておきましょう。

パソコン教室・キュリオステーション志木店からのお知らせ
レッスンはオンラインで受講できます

パソコン教室・キュリオステーション志木店では、本年よりオンラインでの在宅レッスンを実施しております。
教室の全コースがオンラインで受講可能。実際にインストラクターがご対応いたします。
1時間の無料体験レッスンはいつでも予約できます。詳しくは公式ページをご覧ください。

スポンサーリンク
キュリオステーション志木店運営をフォローする
志木駅前のパソコン教室・キュリオステーション志木店のブログ

コメント

タイトルとURLをコピーしました