投稿

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

DTPでよく使うエクセル関数の使い方を丁寧に紹介【IF関数・LEN関数・RIGHT関数】

イメージ
はじめに 前回は、 文字列中の文字を抽出するMID関数 を解説しました。 今回は、道府県名を取り出す方法を例に、条件ごとに作業を分けるIF関数、テキストの文字数を調べるLEN関数、右端からの文字を抽出するRIGHT関数、を解説します。 実は、意外に簡単です。 というのも、道府県名はパターンが非常に少ないので、この場合あの場合その場合…、と条件による取り出し方も非常にコンパクトになります。 目次 IF関数―条件ごとに作業を分ける LEN関数―テキストの文字数を調べる RIGHT関数―右端からの文字を抽出 道府県名の文字数のパターンを調べる 郡市区町村名の1文字目に「県」があるか 住所から都道府県名を取り出す 住所から郡市区町村以下を抜き出す IF関数―条件ごとに作業を分ける IF 関数を使うと、条件をテストして結果 (True または False) を返すことにより、値と予想値の間の論理的な比較を行うことができます。 =IF(条件が True であればある処理を行い、それ以外の場合は別の処理を行う) 参照: IF 関数 - Office サポート 例1: B2:千葉県 =IF(B2="千葉県","そうです","違います") 結果:そうです LEN関数―テキストの文字数を調べる 文字列の文字数を返します。 =LEN(文字列) 文字列    必ず指定。 文字数またはバイト数を調べる文字列を指定します。 スペースは文字として数えられます。 参照: LEN 関数、LENB 関数 - Office サポート 例2: B2:千葉県 =LEN(B2) 結果:3 RIGHT関数―右端からの文字を抽出 文字列の末尾 (右端) から指定された文字数の文字を抽出します。 =RIGHT(文字列[,文字数]) 文字列    必ず指定。 (A2などのセル名や"あいう"などの文字)を指定します。 文字数    省略可能。 取り出す文字数 (文字列の末尾からの文字数) を指定します。 参照: RIGHT 関数、RIGHTB 関数 - Office サポート 例3: B2:千葉県■市▲町12-34...

【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="","...