コンカティネート関数はConcatenate、連結するとか鎖状につなぐという意味の英単語です。完璧に英語のままの意味で、必要な部分を必要なだけ強制的に連結し(つなぎあわせ)ていくというものです。
「2 つ以上の文字列を1 つにまとめる」といった動きをしてくれる関数でございます。
発音はクンカーティネィトと…え?聞いてない?
はい、私は呼ぶ時コンカーティネイトです、かっこつけましたすみません。
将来的にCONCATENATE関数は無くなる可能性があります、大して変わりはありませんので互換のCONCAT関数と拡張のTEXTJOIN関数も一緒にやっておきましょう。
CONCATENATE(文字列 1 [文字列 2], …)
(CONCATENATEは将来のバージョンで利用できない可能性があるため、納品するような場合はCONCAT関数にしておきましょう。)
TEXTJOIN (区切り記号、ignore_empty、文字列 1, [文字列 2],…)
CONCAT(テキスト1, [テキスト2],…)
(TEXTJOIN、CONCATは365、2016版以降から使用可能な関数です、数式を入れたまま他の人に渡す可能性のある場合は使っても数式から数値に変換してから納品しましょう。)
大きな違いはCONCATENATEは範囲指定するとエラー。
CONCAT、TEXTJOINは範囲で指定しても左上から順で並べてくれる。
という所ですね、さらにテキストジョイン関数には区切りの記号を自分で選択出来たり、空白を無視したり空白ごと持ってきたりと、条件を絞り込みながらもってきてくれる出来るコです。
さて、ではやっていきましょうか。
CONCATENATEの指定方法
=CONCATENATE(C2,D2,E2)
ALLとFORとONEをくっつけて「ALLFORONE」。
スペースを空けたい時は
こんな風に” “で空白を足して、最初の文字だけ大きくしたかったらPROPER関数を。(最初だけ大きくしたい場合はC2を囲めばOK)
LEFTやRIGHT、MID、FINDなどの検索して指定するタイプの関数と相性が良いです。ASCやJISなど、結果ここにまとめて表示するから生データをいじらないで済むという意味でとても便利でしたが、上記のような空白を設定するシーンや、コンマ(,)で区切るシーンが多く、相当数をくっつけると手間であり、効率化を待ち望まれました。
CONCATENATEで複数選択した場合はこうなります。
あ、一応1個は持ってくるんですね、頑張った。
横の指定は耐えましたが、縦の指定は無理なようです。(C列だけでもダメ)
列の全指定(A:A)や行の全指定(1:1)はバリューにはなりませんが、空白を返します。
結果このような動きにも対応出来るよう生まれたのが複数選択可能なCONCATと区切り文字を入れ空白を無視する事が出来るTEXTJOINです。IFNAなどと同様にどちらも2016以前のEXCELでは#NAME?状態なのでご注意ください。
CONCATの指定方法
CONCATENATEとおんなじです。
特徴である複数選択を見てみましょう。
C2~E3まで指定した場合、左上から降りて右へを繰り返します。
ALL(C2) FOR(D2) ONE(E2) ONE(C3) FOR(D3) ALL(E3)
の、順ですね、CONCATENATEに加えてこれが出来るようになりました。
が、これではスペースを入れたい場合一つずつの指定になってしまうので、今度はTEXTJOINを説明しましょう。
TEXTJOINの指定方法
最初の指定で” “、空白を指定。
次の指定でTRUEもしくはFALSEを指定。
ここからはCONCATやCONCATENATEと一緒です、文字体裁を変えたければASCやLOWER、PROPERなどを使用すれば綺麗になります。
区切り文字は”,”や”-“など何でも良いので、ハイフンで繋げてみたり、コロンで区切ったりすることが出来ます、特にコロンで区切るのはデータに返す時に同じ形式にしたりする事で使う事はあるのでは?
ああ、FALSEも使っておきましょう。
同じ例でいきましょう。
TRUEの場合
FALSEの場合
はい、という事でTRUEかFALSEかの違いは、
空白を無視する(TRUE)か巻き込む(FALSE)かの違いでした。
ちなみにTRUEもFALSEも入れないで
=TEXTJOIN(,,文字列)
のようにすれば、CONCATのようにして使えるので、旧verを持っている方が使う可能性がゼロの場合はこちらを使用していくと良いですね。
変わっていったら自分も変われば良いんです、今から柔軟にいきましょ~う。
コメント