- 締切済み
EXCELでの複数語検索
ご存知の方がいらしたら教えて下さい。 EXCELで日報の管理を指定ます。かなりの文書を入れる場合もあるのですが、複数の単語を同時に満たすセルを検索したいのですが、何かいいアドインツールなどありますでしょうか? EXCELの検索が、複数語に対応してくれればいいのですが・・・
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- mu2011
- ベストアンサー率38% (1910/4994)
編集→検索で検索する文字列に単語間を「*」で連結すれば可能ですが如何でしょうか。 但し、単語指定順に左右されますのでご注意下さい。
- mshr1962
- ベストアンサー率39% (7417/18945)
セルの先頭から255文字までしか対応しませんが...こんな方法もあります。 「書式」「条件付き書式」で 「数式が」「=COUNTIF(セル,"*言語1*")*COUNTIF(セル,"*言語2*")」 として書式を押して塗りつぶしパターンを選択する。 言語を別セルで用意して =COUNTIF(セル,"*"&$A$1&"*")*COUNTIF(セル,"*"&$B$1&"*")」 のように参照しても可能です。 ※セルは塗りつぶすセルのセル座標を相対参照で入れてください。
お礼
教えて下さって本当にありがとうございます。 早速やってみました。 初めて使う機能でしたがいろいろ試しながら、該当するセルの色を変える方法で試してみました。 該当箇所が一目瞭然でとてもわかりやすいです。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 以下をアドインにすることは可能だと思いますが、アドインの場合は、ユーザーフォームを加工したりするほうがよいでしょうね。 ただし、こんな検索は出来ません。第一検索語が「あい」で、第二検索語が「あ」の場合は、重複してしまいますので、出来ません。また、常識的にほとんどすべてのセルに存在するものを、第一検索語には入れないほうがよいです。完全にデバッグが終わったわけではありませんが、一応、こちらではうまく出来ています。 '標準モジュールに入れてください。 '------------------------------------------------------- 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
お礼
教えて下さって本当にありがとうございます。 質問の投稿後、数時間でこんな回答をいただけるなんてビックリです。 VBAというものだと思いますが、どうしていいのか分からない状況で、 すぐにはどうしていいのか分かりませんが、何とか調べて試してみます。 先ずは、お礼まで。
- rin01
- ベストアンサー率43% (33/76)
こんばんは~♪ >かなりの文書を入れる場合もあるのですが 1つのセルに、入っているのでしょうか? その場合の具体例を提示されて >複数の単語を同時に満たすセルを検索したいのですが 検索して結果をどう表示すれば良いかも 表を提示された方が良いと思います。 回答で無くすみません。。。Rin~♪♪
お礼
投稿ありがとうございます。アドバイスありがとうございます。 質問が正確でなくてすいません。 1.文書量についてですが、1案件には、いくつかの項目があり、 「記入者」,「記入日時」等々あって、日報の本文は列幅50のセル にどんどん文書を入力し、高さが409を超えるようなら、下のセル に続きを記入しています。 2.検索結果の表示の件ですが、過去に同じような案件があったかどう かを調べたいケースですので、該当箇所をどんどん探して行ければ 十分です。 「編集→検索」で、空白で区切って複数語の指定が出来て、その語 を全て含むセルを検索出来ればいいのですが・・・。 宜しくお願いいたします。
お礼
教えて下さって本当にありがとうございます。 早速やってみました。感動です! 「単語指定順」を気をつけながら役立たさせていただきます。