• 締切済み

EXCELでの複数語検索

ご存知の方がいらしたら教えて下さい。 EXCELで日報の管理を指定ます。かなりの文書を入れる場合もあるのですが、複数の単語を同時に満たすセルを検索したいのですが、何かいいアドインツールなどありますでしょうか? EXCELの検索が、複数語に対応してくれればいいのですが・・・

みんなの回答

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.4

編集→検索で検索する文字列に単語間を「*」で連結すれば可能ですが如何でしょうか。 但し、単語指定順に左右されますのでご注意下さい。

QYV03224
質問者

お礼

教えて下さって本当にありがとうございます。 早速やってみました。感動です! 「単語指定順」を気をつけながら役立たさせていただきます。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.3

セルの先頭から255文字までしか対応しませんが...こんな方法もあります。 「書式」「条件付き書式」で 「数式が」「=COUNTIF(セル,"*言語1*")*COUNTIF(セル,"*言語2*")」 として書式を押して塗りつぶしパターンを選択する。 言語を別セルで用意して =COUNTIF(セル,"*"&$A$1&"*")*COUNTIF(セル,"*"&$B$1&"*")」 のように参照しても可能です。 ※セルは塗りつぶすセルのセル座標を相対参照で入れてください。

QYV03224
質問者

お礼

教えて下さって本当にありがとうございます。 早速やってみました。 初めて使う機能でしたがいろいろ試しながら、該当するセルの色を変える方法で試してみました。 該当箇所が一目瞭然でとてもわかりやすいです。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 以下をアドインにすることは可能だと思いますが、アドインの場合は、ユーザーフォームを加工したりするほうがよいでしょうね。 ただし、こんな検索は出来ません。第一検索語が「あい」で、第二検索語が「あ」の場合は、重複してしまいますので、出来ません。また、常識的にほとんどすべてのセルに存在するものを、第一検索語には入れないほうがよいです。完全にデバッグが終わったわけではありませんが、一応、こちらではうまく出来ています。 '標準モジュールに入れてください。 '------------------------------------------------------- Sub FindDoubleWords()  '第一語、第二語検索  Dim c As Range  Dim fstFind As String  Dim sndFind As String  Dim myFadd As String  Dim myAdd As String  Dim u As Range  Dim n As Variant    fstFind = Application.InputBox("第一検索語を入れてください。", Type:=2)  If fstFind = "False" Or fstFind = "" Then Exit Sub  sndFind = Application.InputBox("第一検索語を入れてください。", Type:=2)    If sndFind = "False" Or sndFind = "" Then Exit Sub  If InStr(fstFind, sndFind) > 0 Then   MsgBox "第一検索語: " & fstFind & " が、第二検索語: " & sndFind & vbCrLf & _   " に等しいか、充当される場合、その語の検索は出来ません。", vbInformation, "検索エラー"   Exit Sub  End If    Set c = ActiveSheet.UsedRange.Find( _           What:=fstFind, _           LookIn:=xlValues, _           LookAt:=xlPart, _           SearchOrder:=xlByRows, _           SearchDirection:=xlNext)  If Not c Is Nothing Then   myFadd = c.Address   myAdd = c.Address   Do    Set c = ActiveSheet.UsedRange.FindNext(c)    If c.Address = myFadd Then Exit Do    myAdd = myAdd & "," & c.Address   Loop Until c Is Nothing  End If  On Error Resume Next   For Each n In Split(myAdd, ",")    If u Is Nothing Then     Set u = Range(n)    Else     Set u = Union(u, Range(n))    End If   Next n  If Err.Number > 0 Then MsgBox "エラーが発生していますので検索できません。", vbCritical: Exit Sub  On Error GoTo 0 '第二検索  Set c = u.Find( _           What:=sndFind, _           LookIn:=xlValues, _           LookAt:=xlPart, _           SearchOrder:=xlByRows, _           SearchDirection:=xlNext)    If Not c Is Nothing Then   myFadd = c.Address   c.Activate   If MsgBox("次を検索しますか?", vbOKCancel) = vbCancel Then Exit Sub   Do    Set c = u.FindNext(c)    If c.Address = myFadd Then Exit Sub    c.Activate    If MsgBox("次を検索しますか?", vbOKCancel) = vbCancel Then Exit Sub   Loop Until c Is Nothing  End If End Sub    

QYV03224
質問者

お礼

教えて下さって本当にありがとうございます。 質問の投稿後、数時間でこんな回答をいただけるなんてビックリです。 VBAというものだと思いますが、どうしていいのか分からない状況で、 すぐにはどうしていいのか分かりませんが、何とか調べて試してみます。 先ずは、お礼まで。

  • rin01
  • ベストアンサー率43% (33/76)
回答No.1

こんばんは~♪ >かなりの文書を入れる場合もあるのですが 1つのセルに、入っているのでしょうか? その場合の具体例を提示されて >複数の単語を同時に満たすセルを検索したいのですが 検索して結果をどう表示すれば良いかも 表を提示された方が良いと思います。 回答で無くすみません。。。Rin~♪♪

QYV03224
質問者

お礼

投稿ありがとうございます。アドバイスありがとうございます。 質問が正確でなくてすいません。 1.文書量についてですが、1案件には、いくつかの項目があり、   「記入者」,「記入日時」等々あって、日報の本文は列幅50のセル   にどんどん文書を入力し、高さが409を超えるようなら、下のセル   に続きを記入しています。 2.検索結果の表示の件ですが、過去に同じような案件があったかどう   かを調べたいケースですので、該当箇所をどんどん探して行ければ   十分です。   「編集→検索」で、空白で区切って複数語の指定が出来て、その語   を全て含むセルを検索出来ればいいのですが・・・。 宜しくお願いいたします。

関連するQ&A