文字列が入っていたら抜き出す処理をワークシート関数で

Written on 金曜日, 3月 13th, 2009 at 09:19 by admin
Filed under VBAのお勉強.

http://q.hatena.ne.jp/1236879956

400

こんな感じにしたいのかな?(^^;

まず、A列が通勤手段だとします。

A列に「自動車」という文字列や「自動二輪」という文字列が含まれていた場合、「値を切り取って」とあるんですけど、この「切り取る」ってどう切り取るのか、よくわからないですね。。。
 
「含まれていた場合、=から後ろの文字列を切り取る」
ということでいいのかな?

だとすると、B列の自動車の列の計算式は、B2だったら、

Visual Basic:
  1. =IF(ISERROR(SEARCH("自動車",A2)),"",MID(A2,SEARCH("=",A2)+1,LEN(A2)))

 
C列の自動二輪の列の計算式は、C2だったら、

Visual Basic:
  1. =IF(ISERROR(SEARCH("自動二輪",A2)),"",MID(A2,SEARCH("=",A2)+1,LEN(A2)))

 
でいいのかな?

まず、SEARCH関数でそれぞれの文字がA列に入っているかどうかを調べ、
入っていない場合は#VALUE!というエラーになるので、ISERROR関数を使用して
それを調べ、エラーだったら "" 、つまり、何も表示させない。
エラーじゃなかった場合、つまり文字列が見つかった場合は、MID関数でA列から文字列を抜き出すというふうになっています。
抜き出す位置は、A列から、「=」を探して、その次の文字から、A列の最後の文字まで、としました。

なぜ質問者さんが「自動」という文字で探そうとしているのかがよくわからないのですが。。。(^^;

なお、A列に「自動車」と「自動二輪」が両方含まれている場合や、「=」が入っていない、また「=自動車=マーチ」みたいな感じで値が入っていた場合は、この式ではだめですね。

こちらにアップしておきます→vbastudy_27.xls

コメントをどうぞ