Excel 2003で特定の条件を検索する方法

このQ&Aのポイント
  • Excel 2003で特定の条件を検索する方法について教えてください。特に、「*???」という条件を検索したい場合の対応方法が知りたいです。
  • 現在、Excel 2003を使用していますが、「aaa???」や「bbb???」のような条件のセルを検索したいです。しかし、検索条件を「検索する文字列:*~???」とすると、意図しない結果が表示されてしまいます。
  • どのようにしたら、「aaa???」や「bbb???」のセルだけを検索することができるでしょうか?よろしくお願いします。
回答を見る
  • ベストアンサー

「*???」という条件を検索したい

エクセル2003です。 aaa? aaa??? aaa???? bbb??? bbb???? のうち、 aaa??? bbb??? だけ検索されるようにしたいのですが 検索条件が ----------------------------------- 検索する文字列:*~??? 検索対象:値 セル内容が完全に同一であるにチェック ----------------------------------- だと aaa??? aaa???? bbb??? bbb???? が検索されてしまいます。 ----------------------------------- 検索する文字列:*??? ----------------------------------- にすると、全部検索されます。 やりたいようにするにはどうすればいいでしょうか? よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

ワードならできますが,エクセルでは「除外」の検索はデキナイので,どうしても限界があります。 可能なら,データをワードに全部移行して必要な検索等を行うことをお薦めします。 補足: ワイルドカードの「*」が「aaa?」をくくってヒットしてしまうので,今のアプローチではaaa+???とaaa?+???を区別できません。 参考: 敢えてご相談のそのデータに関してだけ言えば, ???~?~?~? を「完全に同一」の条件で検索すると,できます。 またご質問で試された *~??? では,後ろ2つの?がワイルドカードとして働くので注意してください。

ikideews
質問者

お礼

ご回答ありがとうございます。

その他の回答 (4)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.5

例示のデータ(?の前の文字数が3文字限定)のワイルドカードでの検索なら以下のような検索をすることになります。 ???~?~?~? 基本的にエクセルでは、否定や複数の検索文字を指定するワイルドカード検索はできませんので、もし3文字以外の文字列の検索をすることが目的なら、ワードにコピー貼り付けして、ワードでオプションを使った検索を使用することになります。 検索することが目的ではなく、データをフィルタしたいような場合は、検索条件に数式を使ったフィルタオプションの設定を利用することになります。

ikideews
質問者

お礼

ありがとうございました。

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

例データ A列   B列 aaa123 1 aaa2345 0 aaa2 0 aaa23 0 saaa123 0 B列の式は =IF(AND(LEN(A2)=6,LEFT(LEFT(A2,6),3)="aaa",LEN(LEFT(A2,6))=6),1,0) ANDの中は (1)6桁に限る (2)左から3桁がaaa (3左から6桁が6桁に限る ーー 上記はaaaだけの検出例なので、aaaをbbbに置き換えた式をつくり両者のORを取る。 これでどうかな? こういうのはエクセルの得意な分野じゃないと思う。 ーーー エクセルバージョンで違いが出そうな点なので、バージョンは書くこと。

ikideews
質問者

お礼

失礼しました。ありがとうございました。

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.3

ご相談が「検索をしたい」のでは無いなら,添付図のように配置して B2: =AND(MID(A2,LEN(A2)-3,1)<>"?",RIGHT(A2,3)="???") 以下コピーのように判定してしまえばコタエは得られます。 またこれを応用すると, D2: =AND(MID(A2,LEN(A2)-3,1)<>"?",RIGHT(A2,3)="???") と記入しておき,D1は必ず空っぽにしておいてデータメニューのフィルタから「フィルタオプションの設定」を開始, 添付図のように リスト範囲 A2:A6 検索条件範囲 D1:D2 として実行すると,該当する2つのデータだけを抽出することも出来ます。

ikideews
質問者

お礼

画像までつけていただいて助かります!ありがとうございました。

noname#204879
noname#204879
回答No.2

添付図参照 B2: =AND(RIGHT(A2,3)="???",LEN(SUBSTITUTE(A2,"???",""))-LEN(SUBSTITUTE(SUBSTITUTE(A2,"???",""),"?",""))=0)

ikideews
質問者

お礼

画像までつけていただいて助かります!ありがとうございました。

関連するQ&A

  • 「??」を検索するには

    A1→a?? A2→?a 検索と置換で 検索する文字列→*~?? セル内容が完全に同一である物を検索するにチェック 検索対象→値 この条件で検索するとどちらもヒットしてしまいます。 検索したい条件は「??で終わる」のですが A1だけが「??」で終わってるので A2まで引っかかってしまいます。 セル内容が完全に同一である物を検索するのチェックを外してもだめです。 検索する文字列→~?? にして セル内容が完全に同一である物を検索するにチェックをしたら A2→?a がヒットしてしまいます。 ワイルドガードのせいだと思いますが どうすれば「??で終わる」を検索できるのでしょうか?

  • 「?」のみを検索したい

    エクセル2003にて 「検索と置換」のダイアログを出し 検索する文字列に「?」を入力して 「すべて検索」を押すと 全部検索されてしまいます。 「セル内容が完全に同一であるものを検索する」 にチェックを入れると 「?」と「*」が検索されてしまいます。 「?」を検索するにはどうすればいいでしょう? よろしくお願いします。

  • エクセル:セルの検索

    Sheet1のC~G列を検索し、 [AAA]が見つかれば「成功」、見つからなければ「失敗」と表示するコードを作りました。 (実際のコードでは、AAAが見つかったセルBBBの.Addressや.Valueを使いたいので「Set BBB」などという書き方をしています)   Dim AAA As String Dim BBB As Range Set BBB = Worksheets("Sheet1").Range("C:G").CurrentRegion.Find(What:=AAA, LookAt:=xlWhole) If BBB Is Nothing Then MsgBox "検索に失敗" Else MsgBox "検索に成功" End If このコードで、C~D列にAAAがある場合は見つかるのですが、 E~G列にAAAがある場合は見つからず「検索に失敗」とメッセージが出ます。 また、 別のシートでも全く同じコードを使っているのですが、こちらは正常に動作します。 上に挙げたコードと違うところは検索範囲がE~I列だというだけです。 上記コードでとあるシートにおいてのみE~G列にある値が検索に引っかからない理由として、 どのようなことが考えられるでしょうか。 保護はかかっていません。 値が微妙に違うということもありません。 大文字小文字、半角全角の指定はしておりませんが、 C列で検索に引っかかった値をそのままG列に移動しただけで見つからなくなります。 なお、AAAに入れているデータは、 Private Sub Worksheet_Change(ByVal Target As Range) End Sub のTarget.Addressで、「$A$20」のような形で入っています。 Sheet1のC~G列に用意している値も「$A$20」のような形で直接書き込んでいます。

  • エクセル複数条件の条件付き書式

    エクセル2003です。 A1→aaa A2→bbb A3→ccc この状態で、"A列がaaaかbbbなら赤色にする”にはどうすればいいでしょうか? 2003の場合は、条件付き書式が3つまでなのでまとめられるものはまとめたいです。

  • セルの値を含む文字列を検索する方法

    エクセル2010を使っている者です。 セルの値を一部として含むかどうかを調べることはできますか? countifだとA列のセルとB列のセルの値が一致してないとならないし、findだと*aaa@tokyo.co.jp* のようにセルとして指定することができないし。。 例えば以下のような表でB列においてA列のそれぞれのセルについて値が含まれているか を調べたいと思っております。 よろしくお願いします。 A列              B列 aaa@tokyo.co.jp      aaa@tokyo.co.jp; bbb@tokyo.co.jo; ccc@tokyo.co.jp         bbb@tokyo.co.jp      ddd@tokyo.co.jo; eee@tokyo.co.jp; fff@tokyo.co.jp ccc@tokyo.co.jp      ggg@tokyo.co.jp; hhh@tokyo.co.jp; iii@tokyo.co.jp ・・・             ・・・・・・・

  • エクセル関数を使って検索したいです。

    やりたいことは以下の通りです。 Sheet1~Sheet15が存在します。Sheet2~Sheet15には3列で行がそれぞれ異なる表があります。例えばSheet1は5行3列、Sheet2は10行3列、Sheet4は30行3列のように。ちなみにこれらの表は行が追加されていきます。 Sheet1にも同様に3列の表があるのですが、Sheet1のB列(2行目)に、式を作りたいです。 どんな式かと言うと、Sheet1のA列(1行目)に値を入れると、それと同じ値を、Sheet2~Sheet15のA列(1行目)と同じものを探し、そのSheetのB列(2行目)の値を返すというようにしたいです。 VLOOKUPを使うといいかと思うのですが、Sheetを14個もまたいで検索したい時にIFで作るとエクセル2003なので入れ子が7個以上になってしまいうまくいきません。 ちなみに、Sheet1に入力する値はAAA1やBBB2の様にアルファベットと数字の組み合わせです。 よって、例えばSheet2のA列にはAAA1、AAA2、AAA3、AAA4の様に、Sheet2のA列にはBBB1、BBB2、BBB3、BBB4の要に入力された状態になっています。 どなたかうまく切り抜ける方法を教えてください。

  • Officeで条件を満たす行を抽出したい

    Office AccessまたはExcelで条件を満たす行を抽出したいのですが、上手くいきません。 Officeソフトは2002を使っています。 検索対象セル(Excel表現ですがここでは共通で使わせて頂きます)には長文(2000文字程)が入力されています。 条件は100個程の文字列のうちどれかを含むというものです。 Excelでフィルタオプションを使い、検索対象セルの文字数が長文でなければ成功しました。 ネットで検索してみたのですが、解決策を見つける事ができていません。 できればAccessで動作させたいと思っています。 Access Excel共に、基礎的な使い方しかできないので、初心者にもわかりやすく説明して頂けると大変助かります。 どうか、よろしくお願い致します。

  • マクロを使用しての重複チェックについて

    ここの質問にCOUNTIFや条件式書式などでデータの重複チェックを する内容はあるのですが、ちょっと思ってるのと違うので 質問します。 A列 B列 1 aaa 1 aaa 2 aaa 2 aaa 3 bbb 3 bbb 4 ccc 4 ccc 上記のように8行のデータがあります。 条件で、A列の数字が同じ数字でB列が同名の場合は、 チェック対象外で、A列の数字が違う数字でB列が同名の場合 (上記でいうと1 aaa と 2 aaaの場合)は、重複で対象行を 網掛けをするという処理を作りたいのですが、そういうことって できるのでしょうか。 まずは、値を明示的にやるべきだと思いますが、 理想としては、A1とA2が同じ値でB1とB2の値が一緒の値だったら 処理なし。 A1とA2の値が違う値でB1とB2の値が一緒の値だったら 重複っていうような処理を行えたら幸いです。 理由は、どんどんなデータ(行)を追加することを想定させた場合を 考えております。 参考になるのがありましたら教えてください。

  • EXCEL 検索条件をハイライト

    EXCELでシート1に A行に番号(型番)(A-1、A-2、A-3・・・・・)が入っています。 シート2のA行に検索条件になるリストがあります。 A-3、A-10 などなど この検索条件に合致したシート1のA行のセルをハイライトしたいのですが、良い方法はありますでしょうか? つまり、この場合、例えばVBAなら実行すると、シート1のA-3という文字列が入ったセルと、A-10という文字列が入ったセルがハイライト(背景の色が変わる)される、といった具合の結果を必要としています。 よろしくお願い致します。

  • 日付の年のみ置換

    エクセルシートに 2016/12/28 など 2015/12/28 に置換したいです。 要するに年度のみ変えたいです。 でも一つのセルに 「今日は2016/12/28です。」 のように、日付以外の文字も入ってる時は対象外としたいです。 なので画像の様に ******************************************* 検索する文字列→2016/??/?? 検索後の文字列→2015/??/?? セル内容が完全に同一であるものを検索する ******************************************* という条件にしました。 「?」はワイルドカードで、一文字と言う意味として使っています。 この条件だと 「2016/??/??」は、2016/12/28に該当するので置換対象となりますが 置換後に 2015/??/?? になってしまいます。 「2016/」 から 「2015/」は別の条件もヒットしてしまうので考えてません。 ちなみに ******************************************* 検索する文字列→2016/##/## 検索後の文字列→2015/##/## セル内容が完全に同一であるものを検索する ******************************************* にした場合は、検索にも引っかかりませんでした。 「#」はワイルドカードで、数値と言う意味だと思っていました。

専門家に質問してみよう