• 締切済み

Excel2003 一つのセルの文字情報から複数のあいまい検索結果に印を付ける

1)A列のセルに3文字のキーとなる半角英数字が複数個 半角スペースで区切って複数行入力されている。 2)1)のデータから 検索したい複数個の文字を検索し、一つでも該当すれば B列に”●”、なければ”-”を表示したい。   <例> A列 検索キー文字: R20 又は R21 又は RN5 A列               B列(結果) C29 PNS RG0 S5K W4B       -   7X9 R20 S5K W4B         ● S5K W4B WFT           -  C05 PJD PM4 PXR R21       ● RN5 PH1 RG0           ● 宜しくお願い致します。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.7

例データ A1:A7 データ C29 PNS RG0 S5K W4B 7X9 R20 S5K W4B S5K W4B WFT    -  C05 PJD PM4 PXR R21 RN5 PH1 RG0 RN5 PH1 R23 ーー 条件 F1:F4 データ *R20* *R21* *R23* ーーー データーフィルターフィルタオプションの設定 指定した範囲  ON リスト範囲 A1:A7 検索条件範囲 F1:F4 抽出範囲 C1:C11 OK C列に 含まれる行のデータが出る。 データ 7X9 R20 S5K W4B C05 PJD PM4 PXR R21 RN5 PH1 R23 B2に =IF(ISERROR(MATCH(A2,$C$2:$C$100,0)),"","●") B7まで式複写。 結果 A,B列 データ C29 PNS RG0 S5K W4B 7X9 R20 S5K W4B ● S5K W4B WFT    -  C05 PJD PM4 PXR R21 ● RN5 PH1 RG0 RN5 PH1 R23 ● ================== 式が長くなってもよいなら D2に =IF(COUNTIF(A2,"*R20*")+COUNTIF(A2,"*R21*")+COUNTIF(A2,"*R23*")>0,"●","") 下方向に式を複写。 A列     結果D列 データ C29 PNS RG0 S5K W4B 7X9 R20 S5K W4B ● S5K W4B WFT    -  C05 PJD PM4 PXR R21 ● RN5 PH1 RG0 RN5 PH1 R23 ●

shawood99
質問者

お礼

ご回答、ありがとうございました。 回答を記述するだけでも大変だと思われる、丁寧なアドバイス! 本当に感謝感謝です。 検索結果を数値として出し、それを条件にて 文字として表す! 単純な文字検索じゃないのですね^^ 今回の質問の内容は、よく遭遇しそうな問題、 AまたはBまたはCまたは・・・ とか。 Excel標準装備で 選択肢をもっと 増やしてくれれば 初心者にはありがたいのかもしれないですね~。 分類コマンドも3つまでじゃなく 5つ以上とかあるともっと便利なのにと、思うのは私だけでしょうか?? 今回初めて質問をしましたが、これだけ即答していただけるとは思っても見ませんでした。 皆さんの回答へのご親切さ、そして 何より、皆さんのスキルの高さに驚いています。 imogasi様、そして ご回答頂いた皆様、改めて御礼申し上げます。

noname#204879
noname#204879
回答No.6

      A      B  C  D   E   F 1 C29 PNS RG0 S5K W4B -   A列検索キー文字 2 7X9 R20 S5K W4B   ●   R20  R21  RN5 3 S5K W4B WFT     - 4 C05 PJD PM4 PXR R21 ● 5 RN5 PH1 RG0     ● B1: =IF(LEN(A1)*3-(LEN(SUBSTITUTE($A1,D$2,""))+LEN(SUBSTITUTE($A1,E$2,""))+LEN(SUBSTITUTE($A1,F$2,""))),"●","-")

shawood99
質問者

お礼

ご回答、ありがとうございます。 普段使ったことのない関数で 意味すら わかりません^^。 Excelって本当に奥深く、マスターすると広範囲なことができるんですね!! マニュアル見てもわからない部分あったりして・・ たとえば あいまい検索は countif だけワイルドマーカーが使えるとか・・ >>これも正解なのかどうか私自身 わかりません。 本当にありがとうございました。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.5

こんな式でも =IF(MIN(FIND({R20,R21,RN5},A1&"R20R21RN5"))<=LEN(A1),"●","-")

shawood99
質問者

お礼

ご回答、ありがとうございます。 いろりろ方法があるのですね~~! 皆さんのスキルに本当に関心するばかりです。 皆さんのご回答が無かった前までは、オートフィルでの詳細にて 何度も、検索キーを与えて、抽出されたデータに●やら”-”を 手作業にてしていました。 非常にわずらわしく思っていましたが、皆さんのご回答を参考に したいと思います。 本当にありがとうございました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

No2は検索する文字列が変わっても即座に対応できます。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんにちは! COUNTIF関数を使えば出来ると思い、 投稿しようと画面を切り替えると すでにNo.1さんが回答されていましたので、 他の方法の一例です。 A1セルからデータが入っているとして B1セルを  =IF(OR(LEN(A1)>LEN(SUBSTITUTE(A1,"R20","")),LEN(A1)>LEN(SUBSTITUTE(A1,"R21","")),LEN(A1)>LEN(SUBSTITUTE(A1,"RN5",""))),"●","-") としてオートフィルで下へコピーします。 しかし、No.1さんの回答の方がスマートですね! この程度の回答しかできませんが ごめんなさいね。m(__)m

shawood99
質問者

お礼

ご回答、ありがとうございました。 この程度の回答しか・・・ なんて謙遜なさらないで! 私はそこまでもたどり着きませんでしたから~^^ 以前にも別なことで悩んだあげく、投げ出したことがありますが、 皆さんからの適切かつ丁寧なご回答、嬉しく思いました。 また、迷路に迷い込んだら、お願いします。 ありがとうございました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

例えばA2セルから下方にお示しのデータがあり、B1セルにR20,C1セルにR21、D1セルにRN5というように検索する文字列があるとします。 B2セルには次の式を入力し下方にオートフィルドラッグします。 =IF(A2="","",IF((IF(ISNUMBER(FIND(B$1,A2)),1,0)+IF(ISNUMBER(FIND(C$1,A2)),1,0)+IF(ISNUMBER(FIND(D$1,A2)),1,0))>0,"●","-"))

shawood99
質問者

お礼

ご回答、ありがとうございました。 あれこれ悩んでいるうちに半日以上費やし、結局、何が何だかわからなくなってしまいました。 皆さんの回答、大変感謝するとともに、皆さんのスキル 素晴らしいですね!! この方法だと、検索条件が変更になった場合、簡単に検索することができますね?! ひとつの結果を出すのに、皆さんからのご回答、いろいろ方法があるのですね? 発想の転換?!っていうやつですかね??!! でも、その前に関数の意味を熟知していないと、ダメですね^^ また、迷路に迷い込んだら、お願いします。 ありがとうございました。

  • turuzou
  • ベストアンサー率33% (15/45)
回答No.1

こんなのでも? =IF(OR(COUNTIF(A1,"*R20*"),COUNTIF(A1,"*R21*"),COUNTIF(A1,"*RN5*")),"●","-")

shawood99
質問者

お礼

ご回答、ありがとうございました。 この方法、してみたと思うのですが、どこかの式ミスにより、満足する結果が得られませんでした。 大変助かりました。 あれこれ悩んでいるうちに半日以上費やし、結局、何が何だかわからなくなってしまいました。 皆さんの回答、大変感謝するとともに、皆さんのスキル 素晴らしいですね!! また、迷路に迷い込んだら、お願いします。 ありがとうございました。

関連するQ&A

専門家に質問してみよう