Excel 関数でスネーク・ケバブケースをパスカル・キャメルケースにする
久々に Excel ネタ。A1 セルの入力値のケースを変更したりする。
- 入力値がスネークケース・ケバブケース・パスカルケース・キャメルケースのどれかを判定する
=IF(A1="", "Empty",
IF(NOT(ISERROR(SEARCH("_", A1))), "Snake",
IF(NOT(ISERROR(SEARCH("-", A1))), "Kebab",
IF(EXACT(LEFT(A1, 1), UPPER(LEFT(A1, 1))), "Pascal",
IF(EXACT(LEFT(A1, 1), LOWER(LEFT(A1, 1))), "Camel",
"Unknown")))))
- スネークケースかケバブケースの入力値をパスカルケースにする
=SUBSTITUTE(SUBSTITUTE(PROPER(A1), "_", ""), "-", "")
- スネークケースかケバブケースの入力値をキャメルケースにする
=LOWER(LEFT(A1, 1)) & MID(SUBSTITUTE(SUBSTITUTE(PROPER(A1), "_", ""), "-", ""), 2, LEN(A1))
- スネークケースかケバブケースの入力値をアッパースネークケースにする
=SUBSTITUTE(UPPER(A1), "-", "_")
- スネークケースかケバブケースの入力値をロウワースネークケースにする
=SUBSTITUTE(LOWER(A1), "-", "_")
- スネークケースかケバブケースの入力値をロウワーケバブケースにする
=SUBSTITUTE(LOWER(A1), "_", "-")
PROPER
関数がスペース・アンダースコア・ハイフンで区切られた単語の先頭文字だけ大文字にしてくれるので、あとはアンダースコアやハイフン文字を削除すれば、キャメルケースへの変換はこのとおり簡単。
逆に、キャメルケースからスネークケースやケバブケースに変換するには、「大文字になっている文字」を特定して処理する必要があり、Excel 関数だけでは難しそうだった。