背景
特殊な用途下で、全角のかなを半角にする必要があったので用意した記録
動作例
こんな感じで、全角の文字を半角へ変換します。
説明
Unicode 表をみるとわかるんですが・・Ascii のように文字コードの範囲を指定して対応したものを List で渡すことが出来ない。
ってことで・・全部置換リスト作るしかないかなって感じで作ってみた
カタカナも同じ
Power Query
以下を Query Editor で貼り付けたら使うだけ。
全角かなカナを半角へ
// かなカナを半角へ
(originalText as text) as text =>
let
kanaList = List.Zip(
{ // 全角カナ を 半角カナ に変換する。[ひらがな](https://en.wikipedia.org/wiki/Hiragana_(Unicode_block)) [カタカナ](https://en.wikipedia.org/wiki/Katakana_(Unicode_block))
{"ぁ","あ","ぃ","い","ぅ","う","ぇ","え","ぉ","お","か","が","き","ぎ","く","ぐ","け","げ","こ","ご","さ","ざ","し","じ","す","ず","せ","ぜ","そ","ぞ","た","だ","ち","ぢ","っ","つ","づ","て","で","と","ど","な","に","ぬ","ね","の","は","ば","ぱ","ひ","び","ぴ","ふ","ぶ","ぷ","へ","べ","ぺ","ほ","ぼ","ぽ","ま","み","む","め","も","ゃ","や","ゅ","ゆ","ょ","よ","ら","り","る","れ","ろ","ゎ","わ","ゐ","ゑ","を","ん","ゔ","ゕ","ゖ","ァ","ア","ィ","イ","ゥ","ウ","ェ","エ","ォ","オ","カ","ガ","キ","ギ","ク","グ","ケ","ゲ","コ","ゴ","サ","ザ","シ","ジ","ス","ズ","セ","ゼ","ソ","ゾ","タ","ダ","チ","ヂ","ッ","ツ","ヅ","テ","デ","ト","ド","ナ","ニ","ヌ","ネ","ノ","ハ","バ","パ","ヒ","ビ","ピ","フ","ブ","プ","ヘ","ベ","ペ","ホ","ボ","ポ","マ","ミ","ム","メ","モ","ャ","ヤ","ュ","ユ","ョ","ヨ","ラ","リ","ル","レ","ロ","ヮ","ワ","ヰ","ヱ","ヲ","ン","ヴ","ヵ","ヶ"},
{"ア","ア","イ","イ","ウ","ウ","エ","エ","オ","オ","カ","ガ","キ","ギ","ク","グ","ケ","ゲ","コ","ゴ","サ","ザ","シ","ジ","ス","ズ","セ","ゼ","ソ","ゾ","タ","ダ","チ","ヂ","ツ","ツ","ヅ","テ","デ","ト","ド","ナ","ニ","ヌ","ネ","ノ","ハ","バ","パ","ヒ","ビ","ピ","フ","ブ","プ","ヘ","ベ","ペ","ホ","ボ","ポ","マ","ミ","ム","メ","モ","ヤ","ヤ","ユ","ユ","ヨ","ヨ","ラ","リ","ル","レ","ロ","ワ","ワ","イ","エ","ヲ","ン","ヴ","カ","ケ","ア","ア","イ","イ","ウ","ウ","エ","エ","オ","オ","カ","ガ","キ","ギ","ク","グ","ケ","ゲ","コ","ゴ","サ","ザ","シ","ジ","ス","ズ","セ","ゼ","ソ","ゾ","タ","ダ","チ","ヂ","ツ","ツ","ヅ","テ","デ","ト","ド","ナ","ニ","ヌ","ネ","ノ","ハ","バ","パ","ヒ","ビ","ピ","フ","ブ","プ","ヘ","ベ","ペ","ホ","ボ","ポ","マ","ミ","ム","メ","モ","ヤ","ヤ","ユ","ユ","ヨ","ヨ","ラ","リ","ル","レ","ロ","ワ","ワ","イ","エ","ヲ","ン","ヴ","カ","ケ"}
}
),
result = List.ReplaceMatchingItems(Text.ToList(originalText), kanaList)
in
Text.Combine(result)
あとがき
恐らく二度と使うことはないだろうなぁというレベル・・