問題はこちら
さて、この問題のポイントは、濁点・半濁点を親文字から分離するのですから
親文字である平仮名を如何に半角カタカナに変換するかです。
ところが、エクセルには全角半角変換の関数はあるが
平仮名カタカナ変換の関数が用意されていません。VBAを使うなら
Strconvでも使えばいいんですが、ルールでVBAは禁じ手です。
さて・・・そこでどうするかが頭の使いどころです。
minmaxさんの「地球防衛軍」にも対応していますよ、という言葉・・・
それは、タネは全てお見通しですよ、と言う宣言ですね(^^ゞ
だって「地球防衛軍」という漢字が平仮名に変わるんだもん、フリガナ関数(phonetic)を
使っているのはバレバレですよね・・・(^^ゞ
phoneticによるフリガナはデフォルトで全角カタカナになりますので
これを利用します。
手順(基本的な考え)
1.phoneticで平仮名を全角カタカナに
2.Ascで全角カタカナを半角カタカナに
3.midでばらばらにして1文字ずつ切り出す
4.jisで全角カタカナに
5.codeで文字コードを取り出す
6.文字コードから256を減じて全角カタカナのコードから
全角平仮名のコードに修正
7.charで全角平仮名のコードを文字に
【解答例】
=IFERROR(CHAR(CODE(JIS(MID(ASC(PHONETIC($A2)),COLUMN()-1,1)))-256),MID(ASC(PHONETIC($A2)),COLUMN()-1,1))
(エクセル2007 104文字)
最近のコメント