エクセルにて、異体字にも対応出来る〇〇文字目の抽出は可能でしょうか?人名等にて異体字を用いられており、書き出しデータと元データの正誤確認を行いたいのですが、異体字は文字コードが複合で出来ているためMID関数などで文字列分割を行っても正しく分割が出来ません。やり方のわかる方お知恵ご教授頂けますよう、どうぞよろしくお願いいたします。

1件の回答

回答を書く

1225783

2026-05-30 09:25

+ フォロー

そもそも、ご質問者のいう「A.書き出しデータ」と「B.元データ」どのように作成されたものなのでしょうか

(1)AとBは両方とも、もともとExcelで作成されたものであり、これをExcelで照合しようとしている

(2)AまたはBのどちらかがExcel以外のシステムで作成されたものであるが、これをExcelで照合しようとしている

(3)AおよびBはどちらもExcel以外のシステムで作成されたものであるが、これをExcelで照合しようとしている



上記(1)の場合、AがBに基づき「再入力」されたものを出力した場合なら照合の意味が判りますが、Bの元データを読み込んでAを書き出したのであれば、同じExcel形式のデータなのに読み込んで書き出すと「照合か必要になってしまう」つまり「異なったデータになってしまう」ということになり、バージョンの異なるケースしか考えにくいのですが、そういう理解でよいのでしょうか?

上記(2)(3)の場合は、そもそも一方または両方が他システムで作成されたものなので照合の意味があります。



しかし、nekさんのご指摘のように、Excelで照合するために、【Excel標準の関数(MIDなど)だけで「異体字を1文字として正しく〇文字目を抽出する」ことは原理的に困難】なので、Excel単独でこれを行うという考えは一旦棚上げにしましょう。



\u0026gt;人名等にて異体字を用いられており、・・・

というご説明なので、おそらく、「見た目1文字でも複数コードで構成される文字」があり「異体字に付随するゴミ」がついた状態だと推測します。



ご質問者の作業環境が許すのであれば、以下の方法を試す価値がある気がします。

仮に、A列が「氏名」という列で、人名等にて異体字を用いられているなら、



方法1.googleスプレッドシートを使う方法

一度、ExcelシートのA2以下のデータをコピーし、googleスプレッドシートのA2以下に貼り付けし、

B2: =ArrayFormula(REGEXREPLACE(A2:A1000, \u0026quot;[\\x{E0100}-\\x{E01EF}]\u0026quot;, \u0026quot;\u0026quot;))

という数式を入力すると「異体字に付随するゴミ」が削除される。

そこで、googleスプレッドシートのB2以下をコピーして、元のExcelシートのA2以下に貼り付ける

上記を「A.書き出しデータ」と「B.元データ」ともに実施し、この状態で、ご質問者が考える数式等を用いて、必要な照合作業を行う。



方法2.サクラエディタなどの高機能エディタを使う方法

一度、ExcelシートのA2以下のデータをコピーし、サクラエディタに貼り付けし、サクラエディタのメインメニューの「検索」⇒「置換」と進んで、置換のダイアログで「置換前」の文字列に「[\\x{E0100}-\\x{E01EF}]」を入れ、「置換後」には何も入れず、「正規表現」にチェックを入れて、置換対象は「選択文字」、範囲は「ファイル全体」として「すべて置換」を実行する

これで、「異体字に付随するゴミ」が削除される。

そこで、サクラエディタの置換後の内容をコピーして、元のExcelシートのA2以下に貼り付ける

上記を「A.書き出しデータ」と「B.元データ」ともに実施し、この状態で、ご質問者が考える数式等を用いて、必要な照合作業を行う。



上記2つの方法をお試しになったらいかがかというご提案です。

うったえる有益だ(0シェアするブックマークする

関連質問

Copyright © 2026 AQ188.com All Rights Reserved.

博識 著作権所有