
Excel にギリシャ語の単語のリストがあります。セルの中には完全に重複しているものもあれば、まったく同じ単語ですがアクセントが異なっているものもあります (実際には、アクセントのある単語もあれば、まったくアクセントのない単語もあります)。アクセントを無視して、一意の単語のみのリストを作成したいと考えています。
これは可能ですか?
答え1
アクセント付きの文字/単語をアクセントのない文字/単語に変換するのに役立つ方法を紹介したいと思います(コメントで要望があったように) から一意の文字/単語のリストを抽出します。
この VBA コードを必要なワークシートのモジュールとして挿入します。これにより、アクセント付きの単語/文字がアクセントなしの値に変換されます。
Function ChangeAccent(thestring As String)
Dim A As String * 1
Dim B As String * 1
Dim i As Integer
Const AccChars= "ŠŽšžŸÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðñòóôõöùúûüýÿ"
Const RegChars= "SZszYAAAAAACEEEEIIIIDNOOOOOUUUUYaaaaaaceeeeiiiidnooooouuuuyy"
For i = 1 To Len(AccChars)
A = Mid(AccChars, i, 1)
B = Mid(RegChars, i, 1)
thestring = Replace(thestring, A, B)
Next
ChangeAccent = thestring
End Function
機能の使用方法:
列 A にアクセント付き単語のリストがあると想定しています。
セル B2 に次の数式を入力し、Enter キーを押して下方向に入力します。
=ChangeAccent(A2)
セル C2 にこの配列数式を記述し、Ctrl + Shift + Enter で終了して、下方向に入力します。
{=IFERROR(INDEX($B$2:$B$11, MATCH(0, COUNTIF($C$1:C1, $B$2:$B$11), 0)),"")}
スクリーンショットで示したように、アクセントのない単語の一意のリストが表示されます。