3月 132009
http://q.hatena.ne.jp/1236879956

こんな感じにしたいのかな?(^^;
まず、A列が通勤手段だとします。
A列に「自動車」という文字列や「自動二輪」という文字列が含まれていた場合、「値を切り取って」とあるんですけど、この「切り取る」ってどう切り取るのか、よくわからないですね。。。
「含まれていた場合、=から後ろの文字列を切り取る」
ということでいいのかな?
だとすると、B列の自動車の列の計算式は、B2だったら、
Visual Basic:
-
=IF(ISERROR(SEARCH("自動車",A2)),"",MID(A2,SEARCH("=",A2)+1,LEN(A2)))
C列の自動二輪の列の計算式は、C2だったら、
Visual Basic:
-
=IF(ISERROR(SEARCH("自動二輪",A2)),"",MID(A2,SEARCH("=",A2)+1,LEN(A2)))
でいいのかな?
まず、SEARCH関数でそれぞれの文字がA列に入っているかどうかを調べ、
入っていない場合は#VALUE!というエラーになるので、ISERROR関数を使用して
それを調べ、エラーだったら "" 、つまり、何も表示させない。
エラーじゃなかった場合、つまり文字列が見つかった場合は、MID関数でA列から文字列を抜き出すというふうになっています。
抜き出す位置は、A列から、「=」を探して、その次の文字から、A列の最後の文字まで、としました。
なぜ質問者さんが「自動」という文字で探そうとしているのかがよくわからないのですが。。。(^^;
なお、A列に「自動車」と「自動二輪」が両方含まれている場合や、「=」が入っていない、また「=自動車=マーチ」みたいな感じで値が入っていた場合は、この式ではだめですね。
こちらにアップしておきます→vbastudy_27.xls