- ベストアンサー
accessかExcelで類似検索はできますか?
accessかExcelで類似検索はできますか? accessで単語の類似検索はできますか? たとえば、「パイナップル」と「ハイナップル」のように一文字だけ違う単語とか 「パイナップル!」のように特定の文字列が付加されている単語を検索したいのです。 VBAを使ったやり方でもよいので教えていただけないでしょうか。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
文字列の類似度を表すレーベンシュタイン距離というのをAccessのクエリで使ってみた事があります。 「パイナップル」と「ハイナップル」なら1になりますので、ユーザー定義式の結果が1になるレコードを抽出といった形で使えます。一文字だけの相違ならすっきりとした結果が出ますが、何文字か異なっていると、なかなか思った通りにはいかなかった記憶があります。 レーベンシュタイン距離 VBAで、下記がヒットしましたので、ご参考に載せておきます。 http://pub.ne.jp/arihagne/?entry_id=2781916
その他の回答 (2)
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! 当方使用のExcel2003の場合の一例です。 ↓の画像で説明させていただきます。 作業用の列を1列設けています。 作業列B2セルに =IF($D$1="","",IF(ISNUMBER(FIND($D$1,A2)),ROW(),"")) という数式を入れ、オートフィルで下へずぃ~~~!っとコピーします。 そして、E3セルに =IF(COUNT(B:B)<ROW(A1),"",INDEX(A:A,SMALL(B:B,ROW(A1)))) という数式を入れ、オートフィルで下へコピーしています。 これでD1セルに検索したいものの1文字でも入力し、確定すると その文字が含まれるA列のデータが表示されるはずです。 以上、参考になればよいのですが・・・m(__)m
お礼
ご回答ありがとうございます。 説明不足だったようで失礼しました。 私がやりたいことは、「6文字中5文字が一致する単語など」です。 「パイナップル」「パイナツプル」「パイナップス」とか「パイナップル」に似ているような単語を検索したいと思っています。
- szk9998
- ベストアンサー率45% (1026/2241)
ワイルドカード検索ですね。 http://office.microsoft.com/ja-jp/access-help/HP005187609.aspx#AdvancedFind の 検索および検索して置換の操作でワイルドカード文字を使用する に詳しく書かれています。 例えば、 『?イナップル』で検索すれば、 パイナップルとハイナップルは引っかかります。 正規表現とはちょっと違いますが、MSOffice系のソフトでは、みな同じです。 具体的な検索文字がわかりませんので、ご自分でトライしてみることを おすすすめします。
お礼
ご回答ありがとうございます。 説明不測だったようです。「6文字中5文字が一致している単語」などを検索したいと思っています。何文字目が異なるかはわからないので恐らくワイルドカードでは無理だと思います。 もしご存知でしたら教えていただけると助かります。
お礼
ご回答ありがとうございます。 結構難しそうですが、やりたいことができそうな感じです。 トライしてみます。