名寄せを行うためには、その前にデータクレンジングを行う必要があります、データクレンジングとは、データの中から、重複の排除、誤記、表記の揺れの修正などを行い、データの品質を高めることです。データを整形して、扱いやすいデータに変換します。未整備のローデータを活用しようとする時には避けて通れない作業となります。当然ですが、これらの文字列比較(IFで=判定)では、別の文字列として認識されます。人間が目視すれば同じ社名と認識できても、Excelのシート関数にしろVBAにしろ別物と判定されます。これらを同一の社名と判断するのに、IFでAndやOrを延々つなげていては効率が悪く、保守性も悪くなります。いう時は、専用のFunction(関数)を作成するようにします。FunctionこのVBAはあくまで参考ですが、概ねこのようなFunctionを作っておけば良いでしょう。日本の名前の場合、さらに厄介な問題も多々あります。きりがないのが旧字体ですね。旧字体の対応は、さすがに汎用的な対処は大変なので、必要に応じて置換を追加するしかないでしょう。カタカナ社名でよくある間違いが、キャ○ン、シャ○○タとかでしょうか。これらの拗音は、正式社名としては大文字になってる場合があります。手入力された社名なら、これらは間違っていても不思議ではないし、いや普通に間違えますよね。これに対処する場合は、とりあえずカナ小文字を大文字にして比較すれば良いです。"ヤ")これを「ァィゥェォャュョ」ぶん追加すれば解決します。名寄せに置いて、そんなことが問題になる事はほとんどないと思います。カナ社名ですと、さらに半角カナという事もありえますので、そこは、StrConvで全て全角にしてしまいましょう。ついでに、英小文字も英大文字に変換しておくと良いですね。Function名前なので、いろんなパターンが考えられますので、これでも不足はあると思います。最初は90%くらいを対応するつもりでVBAを書いて、はじかれたものを目視で確認し、共通するものがあれば、随時それを追加していく位でちょうど良いと思います。最終的に99%が対応出来れば、残りの1%は手作業で行うということで良いはずです。このVBAでは名寄せの為にデータ整形したのであって、そもそも正式社名は別途調べなければならないものになります。5678社名同様に、これらは違う文字列となってしまいます。これらを同一の番号と認識するための処理としては、いくつかの方法が考えられます。・社名同様に、(や-を統一した文字列に置換する。・数値部分だけを取り出す。前者の方法の場合は、社名のFunctionと同様のものになります。区切り文字として使われる可能性がある文字がどれだけあるか・・・これを考えるくらいなら、後者の数値部分だけを取り出す方法の方が汎用性がありそうです。FunctionFunctionの戻り値として、局番の区切りを入れたいと思われるかもしれませんが、これは結構大変です。対応するとなると、全国の市外局番を調べて一覧にしなければならなくなります。市外局番の一覧はネットに転がっているでしょうから、作成できないこともありませんが、その労力に見合う成果があるかどうかは疑問です。日付の表記として、良くありそうなものはこんな感じでしょうか。昭和20年8月15日この3つだけなんです。IsDate関数IsDate関数は、式を日付に変換できるかどうかを調べ、結果をブール型(True,False)で返します。日付や時刻として認識できる日付式または文字列式を含むバリアント型(Variant)の式を指定します。CDate関数CDate関数は、引数の数値または文字列をDate型(日付型)に変換します。引数expressionには任意の文字列式または数式を指定します。この引数は必ず指定します。この3つ以外は、これらの関数で日付として認識されます。VBA関数は結構優秀なんです。従って、この3つのパターンに対応するFunctionを作成すれば良いことになります。Function戻り値は日付文字列として、yyyy/mm/ddで戻しています。Date型にしてしまうと、日付として認識できない文字列の場合に困りますので文字列型にしています。ちなみに、VBAでは1900年以前も扱えますが、ワークシートのセルに入れると日付として認識されませんので注意してください。名寄せを想定し、これをデータ整形するFunctionのサンプルを提示しました。なりますので、代表的な項目を取り上げました。ここに掲載したVBAを参考に、元データを精査して対応VBAコードを作成してみて下さい。Next)|VBA入門8.セルに文字を入れるとは(Range,Value)|VBA入門9.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説10.徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)|エクセル関数超技ホームマクロVBAマクロVBA技術解説データクレンジングと名寄せこのサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。GASスプレッドシート入門スプレッドシート応用GAS入門GAS応用ホームマクロVBAマクロVBA技術解説データクレンジングと名寄せこのサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。