Excel。文字列のフリガナ情報を取り出すのがPHONETIC関数です
<関数辞典:PHONETIC関数>
PHONETIC関数
読み方: フォネティック
分類: 情報
PHONETIC(参照)
文字列のフリガナ情報を取り出す
【Excel・Word・PowerPoint・Access】あなたの「困った」を解決!10年以上の経験が詰まった、現場の疑問から生まれた実践テクニック集。作業効率を劇的に上げるOffice活用術をお届けします。
PHONETIC関数
読み方: フォネティック
分類: 情報
PHONETIC(参照)
文字列のフリガナ情報を取り出す
名簿など索引をつくりたいとします。
そして、ア行の索引には、インデックスで「ア」というようにしたいのですが、濁音をどのようにしたらいいのか、困ることがあります。
次の名簿を見てみましょう。
D列には、
=LEFT(PHONETIC(B2),1)
という数式を設定して、オートフィルで数式をコピーしています。
=LEFT(PHONETIC(B2),1)
とすることで、フリガナの1文字目を表示することができます。
さて、ここで、D4には「ガ」と表示されています。
これだと、「カ」ではないので、「カ」として、まとめることができません。
どのようなことかというと、D列を昇順で並べ替えてみるとわかります。
そのため、並べ替えると、ガはカの後になってしまいます。
このような濁音や半濁音に対応するにはどのようにしたらいいのでしょうか。
=JIS(LEFT(ASC(PHONETIC(B2)),1))
これで、濁音・半濁音を除くことができます。
数式の仕組みはいたってシンプルです。
JIS関数は、半角を全角にする関数です。
LEFT関数は、文字列の左側から指定した文字数を抽出する関数です。
ASC関数は、全角を半角にする関数です。
PHONETIC関数は、文字情報のフリガナ情報を表示する関数です。
PHONETIC関数で抽出した文字列をASC関数で半角にします。
半角にすることで、「カ」と「゛」にわけることができます。
LEFT関数で、左から1文字目を抽出するので、半角の「カ」が抽出されます。
半角なので、全角に戻しますので、JIS関数をつかいます。
ただし、この方法には、注意点があります。
カタカナで入力されている文字列を、ひらがなに変更したい場合にはどのようにしたらいいのでしょうか。
Excelには、カタカナをひらがなに変更する関数は、残念ながらありません。
ということは、努力と根性で、ひらがなで入力し直さないといけないのでしょうか。
そこで、少々、力技ではありますが、ルビ(ふりがな)の関数。PHONETIC関数をつかうことで、対応することができます。
C2にPHONETIC関数の数式を設定します。
=PHONETIC(B2)
オートフィルで数式をコピーします。
ただ、現状全角カタカナです。
表示したいのは、ひらがな。
そこで、B2:B6を範囲選択します。
ホームタブの「ふりがなの表示/非表示」の▼をクリックして、「ふりがなの設定」をクリックします。
ただし、この方法、問題があって、B列の文字列にフリガナ情報がないと、PHONETIC関数をつかっても、フリガナが表示されませんので、注意が必要です。
氏名からフリガナを抽出するには、PHONETIC関数をつかうわけですが、VLOOKUP関数で抽出した文字列からフリガナを抽出することはできません。
次の表を用意しました。
B2には、VLOOKUP関数をつかって、A4:C8の表から、氏名を抽出しています。
B2の数式は、
=VLOOKUP(A2,A5:C8,2,FALSE)
と設定しています。
さて、C2にB2の文字列のフリガナを表示したいので、
C2に、PHONETIC関数だけの数式を設定してみます。
結果は、何も表示されません。
PHONETIC関数は、文字列の入力時のデータを表示するだけの関数なので、VLOOKUP関数で表引きした結果からは、表示することはできないというわけです。
では、PHONETIC関数の引数にVLOOKUP関数を直接設定すればいいように思えます。
C2の数式を
=PHONETIC(VLOOKUP(A2,A5:C8,2,FALSE))
にしてみると、エラーが表示されてます。
そこで、以前ならば、INDEX関数とMATCH関数を組み合わせて対応したりしましたが、XLOOKUP関数をつかえば、解決します。
PHONETIC関数は、VLOOKUP関数とのネストはできないのですが、XLOOKUP関数とのネストはできるようになっています。
C2の数式をPHONETIC関数は、XLOOKUP関数とのネストで数式を設定してみます。
=PHONETIC(XLOOKUP(A2,A5:A8,B5:B8,"",0,1))
これで、C2にフリガナを表示することができました。
XLOOKUP関数の引数を確認しておきましょう。
最初の引数は、「検索値」。
VLOOKUP関数で表引きした結果が表示されている、A2を設定します。
2番目の引数は、「検索範囲」。
NOのA5:A8を設定します。
3番目の引数は、「戻り範囲」。
氏名のB5:B8を設定します。
4番目の引数は、「見つからなかった場合」。
見つからなかったら空白にしますので「””(ダブルコーテーション×2)」と設定します。
5番目の引数は、「一致モード」。
完全一致にしたいので、「0」と設定します。
最後の引数は、「検索モード」。
先頭から検索させますので「1」と設定します。
これで、VLOOKUP関数の表引き結果をつかったフリガナを表示することができました。
氏名からフリガナを抽出したい時には、PHONETIC関数をつかうことで、表示できます。
ところが、PHONETIC関数は、文字を入力した時のデータを表示するため、VLOOKUP関数やセル参照などで、間接的に表示されているデータからフリガナ情報を表示することができません。
では、どのようにしたら、次のように、フリガナを表示することができるのでしょうか。
=VLOOKUP(A2,A5:F14,2,FALSE)
C2に、PHONETIC関数をつかった数式を設定してみても、何も表示されません。
=PHONETIC(B2)
と設定していますが、表示されないわけですね。
解決するポイントは、文字入力が入っている元のデータをつかえばいいわけです。
では、次のようにC2の数式を修正していきます。
=PHONETIC(INDEX(B5:B14,MATCH(B2,B5:B14,0)))
これで、フリガナを表示することができるようになります。
それでは、この数式を説明していきます。
最初のPHONETIC関数は、「フリガナ」情報を表示することができる関数ですね。
INDEX関数で指定した行列番号が交差するセル参照する関数ですね。
そして、INDEX関数と相性抜群のMATCH関数を組み合わせます。
MATCH(B2,B5:B14,0)
と数式を設定していますが、B2の値は、B5:B14のなかで、何番目にあるのかを算出することができます。
MATCH関数は、範囲内にある検索値の位置を算出する関数です。
このように、INDEX関数とMATCH関数を合わせることで、元にあるフリガナ情報を抽出することができます。
INDEX+MATCH関数は、覚えておくといい、関数の組み合わせかもしれませんね。
今回は、PERMUT関数~PI関数までをご紹介しております。
PERMUT関数
パーミュテーション
PERMUT(標本数,抜き取り数)
順序を区別して抜き出すときの順列を算出します
PERMUTATIONA関数
パーミュテーション・エー
PERMUTATIONA(数値,抜き取り数)
重複許可の順序を区分して抜き出すときの順列を算出します
PHI関数
ファイ
PHI(x)
標準正規分布の密度の値を算出します
PHONETIC関数
フォネティック
PHONETIC(参照)
文字列のフリガナ情報を取り出す
PI関数
パイ
PI()
円周率の数値を算出します
すでに「カタカナ」で入力されている列のデータを「ひらがな」に変更したいけど、どうしたらいいのでしょうか?
これ、難しくないのですが、引っかかる人も、ちょこちょこいますので、確認しておきましょう。
次のデータがあります。
カタカナをひらがなに変換できる関数を見つけようとしますが、これが見つかりません。
ないと書かなかったのは、「ある関数」を使うからなのです。
その「ある関数」とは、フリガナを表示する関数のPHONETIC関数なんです。
フリガナではなくて、カタカナをひらがなに変換したいだけなのに…と思ってしまうのが、Excelのワナなんですね。
とりあえず、やってみます。
B2に
=PHONETIC(A2)
という数式を設定します。
設定したPHONETIC関数の数式を、オートフィルでコピーします。
A列と同じカタカナで表示されてきました。
もしかしたら、ひらがなで表示される場合もあるかもしれません。
まだカタカナのままなので、先にひらがなにしてから説明します。
表示元のA2:A11を範囲選択します。ここがポイントです。
ホームタブの「ふりがなの表示/非表示」の▼をクリックして、「ふりがなの設定」をクリックします。
ふりがなの設定ダイアログボックスが表示されます。
ふりがなタブの種類を、今回は「カタカナ」を「ひらがな」で表示したいので、ひらがなに設定して、OKボタンをクリックします。
このように、カタカナをひらがなに変換することができました。
では、少し説明をしていきます。
まず、ふりがなを設定するPHONETIC関数ですが、フリガナ情報がないと、その文字自体を表示することができます。
要するに、カタカナを入力した場合、漢字を入力したのとことなり、その文字自体を表示することになります。
あとは、PHONETIC関数をつかっているわけですから、文字種の変更をすればいいわけですね。
なので、元の情報。今回はA列の文字を選択しておいて、ふりがなの設定ダイアログボックスをつかって、カタカナをひらがなに変換する設定をすれば、完成です。
なお、初期値は、全カタカナで設定されていますが、場合によって、ひらがなに設定されている場合は、PHONETIC関数をつかって、情報を表示した時点で、ひらがなで表示されますので、状況に合わせて設定してください。
ということで、「カタカナ」を「ひらがな」に「ひらがな」を「カタカナ」に変換したい場合は、フリガナを表示するPHONETIC関数の出番です。
ちなみに、Excel VBAだと、次のようなプログラム文で変換できます。
Sub カタカナをひらがな()
Dim i As Integer
For i = 2 To 11
Range("b" & i) = Range("a" & i).Phonetic.Text
Range("b" & i).Value = StrConv(Range("b" & i).Value, vbHiragana)
Next
End Sub