住所録から市区町村を抽出する
住所録から市区町村までを抽出します。
検索のFIND関数を使うんだね!
FIND関数で「市・区・町・村」の文字を検索します。
住所録の左から抽出するのでLEFT関数も使います。
今回は、これにIFERROR関数も追加して組み立てていきます。
FIND関数について詳しくはこちらの記事をご覧ください。
LEFT関数について詳しくはこちらの記事をご覧ください。
IFERROR関数
IFERROR関数はエラーが表示される計算結果となる場合、代わりの計算式または値を表示させる関数です。
IFERROR関数の作り方をみていきます。
例を見てみます。
伸び率の計算をします。
【D2】 =(C2-B2)/B2
【B4】に記号が入力されているため【D4】にはエラーコードが表示されます。
エラーコードが表示される場合はエラーコードではなく「欠席あり」と表示させます。
上の計算式をIFERROR関数の「値」部分に入れ、「エラーの場合の値」に”欠席あり”と入力します。
【D2】 =IFERROR((C2-B2)/B2,”欠席あり”)
市区町村までを抽出する計算式
「区」を検索して区まで抽出する計算式を入力します。
この時、区が見つからないとエラーコード#VALUEが表示されます。
それでIFERROR関数を使うんだね!
エラーになったら「市」を検索して市まで抽出、それもエラーにれば「町」を検索して町まで抽出、それでもエラーなら「村」を検索して村まで抽出。というような組み立てをしていきます。
これは、優先したい順に指定します。
今回は「区」を最優先にします。
【B2】で計算します。ベースの関数を何にするかで計算式の長さも変わっていきます。
区・市・町・村…分岐が多いから長いね!
ベースの関数をIFERRORにする場合
=IFERROR(LEFT(A2,FIND(“区”,A2)),IFERROR(LEFT(A2,FIND(“市”,A2)),IFERROR(LEFT(A2,FIND(“町”,A2)),LEFT(A2,FIND(“村”,A2)))))
ベースの関数をLEFTにする場合
=LEFT(A2,IFERROR(FIND(“区”,A2),IFERROR(FIND(“市”,A2),IFERROR(FIND(“町”,A2),FIND(“村”,A2)))))
LEFT関数をベースに組み立て
少しでも短くなるLEFT関数をベースにして作ってみます。
=LEFT(A2,IFERROR(FIND(“区”,A2),IFERROR(FIND(“市”,A2),IFERROR(FIND(“町”,A2),FIND(“村”,A2)))))
順番にみていきます。
LEFT関数で【A2】の左から「区」を検索したところまで抽出します。
=LEFT(A2,(FIND(“区”,A2))
FIND関数で「区」が見つからない場合はエラーになるので、エラーの場合「市」を検索します。
=LEFT(A2,IFERROR(FIND(“区”,A2),FIND(“市”,A2)))
「市」が見つからない場合はエラーになるので、エラーの場合「町」を検索します。
=LEFT(A2,IFERROR(FIND(“区”,A2),IFERROR(FIND(“市”,A2),FIND(“町”,A2))))
「町」が見つからない場合はエラーになるので、エラーの場合「村」を検索します。
=LEFT(A2,IFERROR(FIND(“区”,A2),IFERROR(FIND(“市”,A2),IFERROR(FIND(“町”,A2),FIND(“村”,A2)))))
これで完成です。
=LEFT(A2,IFERROR(FIND(“区”,A2),IFERROR(FIND(“市”,A2),IFERROR(FIND(“町”,A2),FIND(“村”,A2)))))