Excel。Office365のExcel2016で追加された、CONCAT関数とTEXTJOIN関数
<CONCAT関数&TEXTJOIN関数>
【CONCAT関数】
次のような表があります。C列からF列までのセルを結合して、
1つのセルに神奈川県横浜市神奈川区西寺尾としたい場合
どうしたらいいでしょうか?
セルを結合する場合には、”&”で結合する方法がありますよね。
H2に
=C2&D2&E2&F2
という数式を作ると、簡単に文字結合できるので、
神奈川県横浜市神奈川区西寺尾という結果を算出することが出来ます。
ただ、結合するセル数が多いと、”&”で結合するのは結構面倒ですよね。
CONCATENATE関数を使ってみても同じ結果になりますよね。
J2をクリックして、
CONCATENATE関数ダイアログボックスを表示して算出してみましょう。
J2の数式は、
=CONCATENATE(C2,D2,E2,F2)
このCONCATENATE関数でも文字結合できるのですが、
先程の”&”と同じように結合するセル数が多いと、とても大変ですね。
そこで、Office365のExcel2016で新たに追加された関数の一つに、
CONCAT関数(コンカット関数)というのが登場しました。
このCONCAT関数は、CONCATENATE関数の進化版でして、
基本的にCONCATENATE関数と同じく、文字結合することが出来るのですが、
CONCAT関数のメリットは、結合するセル数が増えたときに、
その効果を実感することが出来ます。
L2をクリックして、CONCAT関数ダイアログボックスを表示しましょう。
テキスト1に、C2:F2と入力して、OKボタンをクリックします。
このCONCAT関数は、
なんと、セルを範囲選択できるようになったのです!画期的ですね。
仮に、結合したいセル数が20個でも、
範囲選択するだけで算出することができるのです。
なお、L2の数式は、
=CONCAT(C2:F2)
【TEXTJOIN関数】
文字結合をするのに登場した、CONCAT関数であっても、
以前からあるCONCATENATE関数や”&”を使ったとしても、
次の場合はどうしたらいいでしょうか?
やりたいのは、C列からF列の文字を結合するのですが、
その間を”-“(ハイフン)で連結していきたい。
つまり、SOU-1-a-内田としたいわけです。
先程と同様に簡単じゃないの?と思われるかもしれませんが、
意外な落とし穴があるのです。
では、H9に”&”を使って数式を作ってみましょう。
H9の数式は、
=C9&"-"&D9&"-"&E9&"-"&F9
セルの間に”-“を入れるだけですが、この数だけでも結構面倒なのに、
10個のセルが対象だったら大変ですよね。
しかも、オートフィルで数式をコピーしてみると、
データがないセルも関係なくいれてしまうので、
H10は、SHO-1--齋藤と、”-“(ハイフン)が連続してしまっています。
当然、”-“(ハイフン)は不要ですから削除するためには、
数式を変更しなければいけません。
では、CONCATENATE関数を使ってみたらどうなるでしょうか?
I9にCONCATENATE関数ダイアログボックスを表示しましょう。
途中に”-“(ハイフン)を設定していく必要がありますので、
セル数が少ない場合はいいですが、多くなると、先程の”&”同様に、
面倒な作業が発生してしまいます。
I9の数式は、
=CONCATENATE(C9,"-",D9,"-",E9,"-",F9)
そして結果を見てみると、
データのないセルのところは、“&”と同じく、
”-“が重なってしまっていますね。
そこで、この問題を解決するために登場したのが、TEXTJOIN関数なのです。
J9にTEXTJOIN関数ダイアログボックスを表示しましょう。
区切り文字には、"-"
今回は、”-“(ハイフン)で区切りたいので、”-“としています。
空のセルは無視には、TRUE
これをTRUEにすると、空のセル。
つまりデータがないところは関与しなくなります。
テキスト1以降は、結合したいセルをクリックしていきます。
そして、OKボタンをクリックして、
オートフィルで数式をコピーしてみましょう。
注目する点は、J10とJ12。データがないところは関与しないので、
”-“(ハイフン)が重なっていませんよね。
あまり使う機会はないのかもしれませんが、
新しく加わった、CONCAT関数とTEXTJOIN関数というのがあるということを
知っておいてもいいかもしれませんね。