「つばさ」から「川越」を取り出す方法 | エクセル マクロはおまかせ excelのちょっとした便利わざ

「つばさ」から「川越」を取り出す方法

前回の続きです。


前回の分をまだ、読んでない方は、こちらからどうぞ↓


[つばさ」と「川越」と「埼玉」を切り分ける方法



前回は、 「埼玉県川越市」から、 


埼玉県を切り出す事ができましたね。


では、次に、「川越市」を 切り出してみましょう


「埼玉県」を切り出したときの手法を踏まえて


やるとなると、


「県」 の文字は、 左から3文字目にある事が


わかっているから、


「川越市」 は、その次、


つまり、 


4つめから、切り出せば、いいことになりますね。


4つめ、 と言うことは、


「3」に 1を足せばいいのです。



よって、


=MID(A1,FIND("県",A1)+1,


ここまでは、わかりますか


A1 の セル の  左から4文字目から


(つまり、「県」 =3  ですから、 これに +1 で 

 4文字目から、 という 数式にしてあるわけです)



さて、数式は、これで完成ではありません。


何文字目から、 は、確定しましたが


何文字分、取り出すか


が問題です。



「川越市」は、3文字だから


3 を指定すればいいのでしょうが


ほかの市だったら、どうするか?


3文字以上の市もありますよね


「市」のあとに、 町名や番地なども


入ったとすると、


ますます、何文字分切り出していいか、


わからなくなりませんか?


「わからないから、とりあえず、


 最大値100 ぐらいにしておけば、


 いいんじゃないの?」


こういう考え方もありです。


たしかに、住所で100文字以上、って

なさそうです。


でも、この技を、他に応用したいときは、


データが、「住所」 とは限りませんから 


最大値をいくつにしておけばいいのか、


わからないものもありますよね



他に、切り出す方法は、ないものか、、、?



そこで、


=SUBSTITUTE


という関数を使ってみましょうか



この関数、 文字を切り出す関数では


ありません。


文字の置き換えを行うときに使う関数です。



じゃ、切り出しは出来ないの?



「できません」



じゃ、使えないんじゃ、 ないの?



たしかに、使えません



でも、


発想の転換で、  


「埼玉県川越市」


の 「埼玉県」 を


ブランクに置き換える、としたら、どうでしょう。


「埼玉県」は、 ブランクになってしまいますから、


「川越市」だけが残る、ということになりませんか?



でも、


ブランクに置き換えって、


こんな風になっちゃうんじゃないの?



excelのちょっとした便利わざ-置き換え前ー置き換え後



「埼玉県」 の代わりに、 3文字分のブランクが入る、


こんなイメージを持たれる方も、いらっしゃるかもしれません。



そこで、置き換えるのは、 0文字分のブランクです。


長さゼロですから、 結果的に 「川越市」だけが、残る、 


ように見えます。



数式は、こうなります。



excelのちょっとした便利わざ-SUBSTITUTE


D1 の 数式を見てください。


=SUBSTITUTE(A1,C1,"")


A1セルの 文字のうち、 C1セルにある文字に相当する部分を "" (ブランク)


  に置き換えなさい。


 という意味です。


 これで、 D1には、 「川越市」 と表示されるようになります。


 文字数が何文字だろうが、関係ありません。


 「何文字分切り出せ」 という数式ではありませんから。



  これで、とりあえず、解決したように見えますが、


  この数式は、置き換え対象文字として、C1 を見に行ってますね。


  つまり、 


  C1に 「埼玉県」 という文字が、切り出されている事を

  前提としているわけです。


  すると、県名が切り出させてないときに、「市」 だけ切り出そうとした場合、

  エラーが起きてしまいます。


  そこで、 D1の数式に、 C1の数式も組み込んでしまいましょう。


  

  =SUBSTITUTE(A1,MID(A1,1,B1),"")


  これで、C1のセルがどうなっていようと、 C1に依存しないで

  ちゃんと「川越市」を切り出す事が出来ます。


  

  このわざは、


  たとえば、


  ○○部△△課  を


  「○○部」 と  「△△課」 に分けたい、 と言った場合にも


  応用が出来ますね


    

  *****************************************************************


今回のポイントは、 ココ

  

  =SUBSTITUTE(元の文字列, 置き換えたい文字 ,何に置き換えるか)


      

  =SUBSTITUTE(A1,C1,"")


   

   ""  の  "  "  の  間の間隔が、


   置き換えるブランクの長さ となります。


    ""  のように、ぴったりくっつけると、 0文字分のブランクとなり


    "   " のように、3文字分あけると、 


    

excelのちょっとした便利わざ-置き換え前ー置き換え後

       

このような結果になります。


*******************************************************************************


今回の SUBSTITUTE の 使い道のように


本来は、文字を置き換えする関数なのに、


工夫しだいで、文字切り出しに利用できちゃったり


EXCELは、アイデアしだいで


用意されている関数を、別の用途で使って


みることによって、無限の可能性を


引き出すことが出来る、非常に奥が深い


ツールである。


だから、おもしろい。


このおもしろさを、多くの人に


わかってもらいたいし、


このおもしろさに はまる人たちを


ふやしたい


それが、私がブログをやっている理由であり、


夢でもあるわけです。