2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Googleスプレッドシートでカタカナ→ローマ字に変換する数式(GAS不要・標準数式のみ)

Last updated at Posted at 2022-03-07

結論

下記のスプレッドシートの「katakana2romaji」をご自身のシートにコピーして使ってください。
https://docs.google.com/spreadsheets/d/1yRK8a640VTDl-Jq2NVVcqcSKRVdzXmga9VlX7vyYGJM/edit?usp=sharing

使用方法

上記シートをコピーした後、
カタカナからローマ字変換を表示したいセルに下記の関数を入力してください。
※「A1」をカタカナが書いてあるセルを参照するように書き換えてください

katakana2romaji.js
=regexreplace(join("",arrayformula(vlookup(split(regexreplace(regexreplace(regexreplace(regexreplace(A1,"\s", " "),"",""),"","+"),"\+(ァ|ィ|ゥ|ェ|ォ|ャ|ュ|ョ)", "$1"),"+",true,true),katakana2romaji!$A$7:$B,2,false))),"ッ([a-z])","$1$1")

解説 どのような手順で変換しているのか

「サッターフォ リョウスケ」を例として説明します。

①全ての空白を半角スペースに変換
=regexreplace(A1,"\s", " ")
出力:サッターフォ リョウスケ

②伸ばし棒(ー)を無くす
=regexreplace(①,"ー","")
出力:サッタフォ リョウスケ

③全ての文字の間に「+」を入れる
=regexreplace(②,"","+")
出力:+サ+ッ+タ+フ+ォ+ +リ+ョ+ウ+ス+ケ+

④+の後が ァ|ィ|ゥ|ェ|ォ|ャ|ュ|ョ のどれかなら+を取り一つ前の文字とセットにする
=regexreplace(③,"\+(ァ|ィ|ゥ|ェ|ォ|ャ|ュ|ョ)", "$1")
出力:+サ+ッ+タ+フォ+ +リョ+ウ+ス+ケ+

⑤+で分割
=split(④,"+",true,true)
出力:[,サ,ッ,タ,フォ, ,リョ,ウ,ス,ケ,]

⑥一文字ずつvlookupで表から探す
※配列を一文字ずつ扱うためにarrayformulaで括っています。
※「ッ」のみ最後に変換を行うので「ッ」のままにしています。
※半角スペースも表の中にいれてエラーが出ないようにしています。
=arrayformula(vlookup(⑤(一文字),katakana2romaji!$A$7:$B,2,false))
出力:[,sa,ッ,ta,fo, ,ryo,u,su,ke,]

⑦結合する
=join("",⑥)
出力:saッtafo ryousuke

⑧「ッ」を一文字後ろのアルファベットに置き換える
=regexreplace(⑦,"ッ([a-z])","$1$1")
出力:sattafo ryousuke

補足

・ひらがなも表に加えればひらがなも変換対応可能
・もう少しカスタマイズすればカタカナ3文字の特殊パターンを変換することもできる(「リョウ」を「ryo」など)

2
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?