質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

2283閲覧

正規表現による検索、またはvlookupのアイデア

SugiuraY

総合スコア317

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2018/10/12 06:05

下記のような2つのテーブルが存在して、テーブル1のA列とテーブル2のA列を比較して
含まれればテーブル1において、vlookupでテーブル2のB列の値を取得するようにしております。

ここで
=VLOOKUP(""&A1&"",テーブル2!A1:C3,2,0),"-")
でアスタリスクを用いることで「含む」というvloolupを表現することができました。
これを完全一致検索とします。

一方で部分一致検索として、テーブル1の「渡邊二郎」さんとテーブル2の「渡辺二郎」さん
も違う行で上記とは分けて検索したいと考えております。
そのためには正規表現を利用しなければならないと思うのですがそのパターンは以下のとおり
であると考えております。
"/.邊二郎|渡.二郎|渡邊.郎|渡邊二./"
ただ、このようにするにはそれぞれテーブル1の文字列を1文字ずつ切り分けてこの正規表現を
構築した上で、真偽判定をしなくてはならないと想像しております。

普段簡単なプログラミングはするのですが、エクセルが得意ではないため、
そもそもこのようなことがエクセルで実現できるのか、また出来るとしたらどのようにすべきかを
アドバイスをいただけると幸いです。

宜しくお願い申し上げます。
江川

●テーブル1

AB
田中四郎000-000-000
渡邊二郎111-111-111

●テーブル2

AB
山田一郎さん、渡辺二郎さんとお食事2018年10月5日
木村三郎さん、田中四郎さんと狩へ2018年10月6日
鈴木五郎さん、斉藤六郎さんと狩へ2018年10月7日

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

旧漢字の表記ゆれを吸収したいということでしょうか。

Excelで正規表現は、VBAでVBScriptのRegExp関数を呼べば利用可能ではありますが
ご質問の内容は正規表現でも解決しないと思います。
(テーブル1に「渡瀬二郎」さんが登録されたら破綻しますし、「斉藤」や「高橋」が登録される度に機能追加が必要になりますので)

プログラム上で吸収するのであれば
「渡辺」に対する表記ゆれ候補として「渡邊」「渡邉」がありえる、という辞書を別シートなりDBなりに作って当て込むしかないのではないでしょうか。

参考 異体字同一視検索

投稿2018/10/12 07:20

kobac

総合スコア188

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SugiuraY

2018/10/12 07:28 編集

コメント有難うございます。 厳格な表記ゆれは期待しておらず、もしかして一致していませんかリストを出力することが目的であるため、「渡瀬二郎」で一致と判定された場合それでも良いと考えております。表記ゆれ候補のDBも検討したのですが、実はOCRで一部入ってくる情報もあるため、「渡邊」「渡邉」だけではなく全く関連のない一文字の相違もある程度広い範囲で識別していきたいという趣旨になります。つまり「渡鯨二郎」ような旧漢字とは全く関連のない、OCRのご認識も拾いたいと考えております。ある程度広く網をはって、もしかしたら一致で人の目でチェックすることを想定しております。
kobac

2018/10/12 07:42

一文字違いであれば何でもいいということですね。 であれば、入力された名前から正規表現パターン「.邊二郎|渡.二郎|渡邊.郎|渡邊二.」を動的に作ってRegExp関数で成否判定するようなプログラムをVBAで組めば実現できると思います。
SugiuraY

2018/10/12 08:15

コメント有難うございます。 やはり組込関数では厳しいですか、、vbaをあまり使用したことがないので、調べて見ます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問