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 関数だけでは難しそうだった。