- ベストアンサー
エクセル:文字列がマッチしたものだけ、隣に表記を入れたいです
エクセルの100行ぐらいある1列の中で、例えば、「○×△◇」という文字列があるセルのみ、その隣のセルに「記載有り」という表記が出るように、関数を作りたいと思っています。 IF・MATCHや、VLOOKUPを使えばと思ったんですけど、そんなに甘くないようで、苦戦しています。 どなたか、アドバイスいただけないでしょうか。よろしくお願い致します。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
> エクセルの100行ぐらいある1列 これがA列でセルA1~セルA100として、 > その隣のセルに「記載有り」 これがB列でセルB1~セルB100として、 セルB1に以下の式を設定し、セルB100までコピーしてください。 =IF(SEARCH("○×△◇",A1)>0,"記載有り","") 含まれない場合の処理がおかしいので、IFのELSEは工夫してください。
その他の回答 (6)
#5です。 補足要求です。 「○、×、△、◇」 の一つでも入っていれば 「記載有り」 なのでしょうか? 「○A×B△C◇」 や、 「○D」 や、 「×△」 という文字列でも「記載有り」?
補足
えーと、「○×△◇」という文字列の意味について、今回は「あいうえお」といったような、単語をイメージして質問させていただいたのですが、今後は、「まる」「ばつ」「しかく」といった単語の複数検索も覚えていきたいなぁと思いました。
- imogasi
- ベストアンサー率27% (4737/17069)
文字列を含むかどうかを調べるのは、FINDとSEARCH関数があります。 両者は大文字小文字を区別する・しない、ワイルドカードを使える・使えないの差がありますので、エクセルの関数の本か、WEBで照会してみてください。見つからないときエラーになるのでISERROR等で逃げます。 (その場合はIF関数で聞いて、空白を出すということ)
お礼
アドバイス、ありがとうございました。 FIND関数がNo2:grape16さんのアドバイス、 SEARCH関数がNo1:bin-chanさんのアドバイスということでしょうか。 大文字小文字を区別する・しない、ワイルドカードを使える・使えないの差といったような使い方も含めて、これからもっと勉強&慣れていこうと思います。 今後ともよろしくお願い致します。
関数より、オートフィルのほうが検索しやすいですよ。 検索後、「記載有り」と書き込む。 データ=>フォルタ オートフィルタ オプション 抽出条件の指定 「○×△◇」 「を含む」 で、 OK をクリック http://homepage1.nifty.com/kenzo30/ex_kisosyo/ex_ks_syokyu9_2.htm
お礼
アドバイス、ありがとうございました。 オートフィル機能は、結構使ってるつもりでしたが、オプション(抽出条件の指定)というやり方を知りませんでした・・これが使いこなせたら、色々、便利ですよねぇ。 今後ともよろしくお願い致します。
- tak2003
- ベストアンサー率32% (174/540)
=IF(A1="○×△◇","ある","ない") では駄目ですか? それとも、Like "%○×△◇%"のような曖昧検索ですか?
お礼
アドバイス、ありがとうございました。 恥ずかしながら、IFをこのまま使ってやる方法すら、自分ではうまくできませんでした。 これだったら、その言葉そのものを当てたい時(指定した文字列が含まれている全てを選ぶのではない時)に便利ですねぇ。勉強になりました。 これからもよろしくお願い致します。
- karashif7
- ベストアンサー率39% (23/58)
たとえばA列に問題の"○×△◇"という文字があり、その隣のB列に記載ありという表記を出したいとしたら、 =IF(A1="○×△◇","記載あり","") という式をB1に入れてオートフィルしてやればA列に"○×△◇"という文字が書いてある場合、隣のセルに記載ありと出ます。 もし、"あいうえ○×△◇"のように、"○×△◇"を含む文字列を検索したい場合は =IF(COUNTIF(A1,"*○×△◇*"),"記載あり","") でいけると思います。
お礼
アドバイス、ありがとうございました。 まず、IF方式を試しました。ピッタンコの言葉の時は、これが使えそうですねぇ。 また、後半のCOUNTIF方式であれば、文章中に含まれているものを全部、引っ張ってこれる(ワイルドカートというんですか?)ので、便利ですねぇ。 教えていただいたテクニックを今後も応用させていただきたいと思います。これからも、よろしくお願い致します。
- grape16
- ベストアンサー率55% (52/93)
FIND関数を使った =IF(ISERR(FIND("○×△◇",A1)),"","記載あり") のような式を隣のセルに記述してはいかがでしょう。 上の式の意味を簡単に言いますと,「セルA1から文字列"○×△◇"を見つけよう(FIND)としてエラーだったら(すなわち見つからなかったら)""を表示,そうでなければ"記載あり"を表示」という感じです。
お礼
アドバイス、ありがとうございました。 早速試したら、うまくいきました! 「エラーだったら(すなわち見つからなかったら)""を表示」→「すなわち、空白のまま」になるので、 とても便利でした。 空白の代わりに、何か文字を指定したら、それを表示することもできるんですもんね。 こんなに便利なら、関数もっと勉強しようと思っています。これからもよろしくお願い致します。
お礼
土日に出かけて、パソコンを見てびっくりしました。 こんなに、皆さんから親切な回答が! 本当にありがとうございました。 いま、教えていただいたアドバイスをそれぞれ、やっと試し終わったところです。本当に、どれも便利!そして、御礼が遅くなりまして、申し訳ありませんでした。 bin-chanさん アドバイス、ありがとうございました。 早速、試してみてうまくできました。 含まれない場合の"ERROR処理"も、参考書に載っていたので、充分使えそうです! これからもよろしくお願い致します。
補足
そうそう、初心者の私には、”>0”が(数字でなく、)文字列でも使えることをはじめて知りました! これだったら、色々使えそうですね!!