投稿

ラベル(CONCATENATE)が付いた投稿を表示しています

DTPでよく使うエクセル関数の使い方を丁寧に紹介【文字列を結合する関数:CONCATENATE・CONCAT・TEXTJOIN】

イメージ
テキスト整形で、「置換」と同じくらいによく行うのが「結合」です。 ですが、実は「結合」の関数は何種類かあり、また関数を使用しない方法もあるのです。 目次 CONCATENATE関数 テキスト結合演算子「&」 CONCAT関数 TEXTJOIN関数 まとめ CONCATENATE関数 現在最も一般的な「結合」の関数は、CONCATENATEになります。 CONCATENATEの書式は以下の通りです。 =CONCATENATE(文字列1[,文字列2], ...,[,文字列255]) 「文字列1」は必須項目 「文字列2」以降は省略可能 「文字列X」には、テキスト値、数字、セル参照のいずれかを指定。Xは255まで指定可能。 ※セル参照:セルA1とかセルB2などのA1やB2のこと。 参照: CONCATENATE 関数 - Office サポート 使用場面としては、住所が「都道府県」「市区町村」「町名」が予め分割されて入力されている時に、印字はすべてつながった状態にしたい場合などによく使います。 例1 C2:東京都 D2:港区 E2:麻布百番 F2:100-100 G2:山田百番ビル =CONCATENATE(C2,D2,E2,F2,G2) 結果:東京都港区麻布百番100-100山田百番ビル 住所とビル名の間に半角アキを入れたい場合は、 =CONCATENATE(C2,D2,E2,F2," ",G2) 結果:東京都港区麻布百番100-100 山田百番ビル と、関数内の「F2」と「G2」との間に「," "」(半角コンマ"半角アキ")を挿入すればよいのです。 テキスト結合演算子「&」 実は、関数を使用しなくても結合は出来てしまいます。 それは、「&」を使用することです。 この「&」は テキスト結合演算子 といい、CONCATENATE関数と同じテキストの結合をします。 例2 A2:山田 B2:花子 =CONCATENATE(A2,B2) 結果:山田花子 と、CONCATENATE関数を使用しても構いませんが、 例3 A2:山田 B2:花子 =A2&B2 結果:山田花...

【Excel関数】表の横項目を「/」を挟んで結合させようとしたら意外に大変だった、というおはなし

イメージ
ある表の、同年の項目1から項目5までの文字列を、「/」を挟んで結合させたい案件が発生した。 序でに内容のない項目(つまりは空セル)は省いて結合させたい。 具体的にはこんな感じ。 表1 コレ、以外にややこしい事になってしまった。 マクロは使わず(マクロが出来ない、が正解なのだが)、関数のみでどうにか出来ないか悪戦苦闘したからだが。 ややこしすぎて、どうやったか忘れそうなので、備忘録としてまとめてみた。 条件は、 文字列を「/」を挟んで結合させたい 空セルは省く どの項目が空セルになるかはランダム 以上の条件全てを満たす関数を組みたいのだが、懸念点は以下の通りである。 途中に空セルがある場合「/」が「//」や「///」と重なる   例)2017:「東京/大阪///奈良」 最後が空セルの場合、最後に「/」が来てしまう   例)2016:「東京//京都/神戸/」 先頭が空セルの場合、先頭に「/」来てしまう   例)2015:「/大阪//神戸/奈良」 もう何とも意図したものに出来ないのである。 ということで、地道に1づつ解説していく。 まず最初に、 文字列を「/」を挟んで結合させたい を実装する関数を考えてみる。 セルB7に結合した文字列を表示するものとする。 素直に文字列を結合すると、 B7=B2&"/"&C2&"/"&D2&"/"&E2&"/"&F2(B7=CONCATENATE(B2,"/",C2,"/",D2,"/",E2,"/",F2)に同じ) 結果:「東京/大阪///奈良」 この場合、上記懸念点で記した通り、空セルがある場合は「/」が余計に現れるのである。 今回作成する関数はひじょ〜に長いので、通常文字列を結合させる時に使用するCONCATENATE関数ではなく、「&」を使った文字列結合を採用する。 次に、空セルの場合は省き、そうでない場合は文字列を表示したい時、これは条件分岐のIF関数で、 B7=IF(B2="","...