[Googleスプレッドシート]スネークケース/キャメルケース/パスカルケース/ケバブケース変換早見表

Contents

はじめに

Googleスプレッドシートで各種ケース変換を行う方法をまとめました。

前提

それぞれ以下のような表記方法を指します。

ケース名
スネークケース some_words
キャメルケース someWords
パスカルケース SomeWords
ケバブケース some-words

スネークケースに変換

キャメルケースからスネークケース : someWords → some_words

=LOWER(REGEXREPLACE(A1,"([A-Z])","_$1"))

パスカルケースからスネークケース : SomeWords → some_words

=LOWER(REGEXREPLACE(REPLACE(A1,1,1,LOWER(LEFT(A1,1))),"([A-Z])","_$1"))

ケバブケースからスネークケース : some-words → some_words

=SUBSTITUTE(A1,"-","_")

キャメルケースに変換

スネークケースからキャメルケース : some_words → someWords

=REPLACE(REGEXREPLACE(PROPER(A1),"_",""),1,1,LOWER(LEFT(A1,1)))

パスカルケースからキャメルケース : SomeWords → someWords

=REPLACE(A1,1,1,LOWER(LEFT(A1,1)))

ケバブケースからキャメルケース : some-words → someWords

=REPLACE(REGEXREPLACE(PROPER(A1),"-",""),1,1,LOWER(LEFT(A1,1)))

パスカルケースに変換

スネークケースからパスカルケース : some_words → SomeWords

=REGEXREPLACE(PROPER(A1),"_","")

キャメルケースからパスカルケース : someWords → SomeWords

=REPLACE(A1,1,1,UPPER(LEFT(A1,1)))

ケバブケースからパスカルケース : some-words → SomeWords

=REGEXREPLACE(PROPER(A1),"-","")

ケバブケースに変換

スネークケースからケバブケース : some_words → some-words

=SUBSTITUTE(A1,"_","-")

キャメルケースからケバブケース : someWords → some-words

=LOWER(REGEXREPLACE(A1,"([A-Z])","-$1"))

パスカルケースからケバブケース : SomeWords → some-words

=LOWER(REGEXREPLACE(REPLACE(A1,1,1,LOWER(LEFT(A1,1))),"([A-Z])","-$1"))

解説

3つの基本形となる操作を組み合わせています。

解説

基本形1: スネークケースからパスカルケース

# some_words → SomeWords
=REGEXREPLACE( -- 2. アンダースコアを削除する
    PROPER(A1), -- 1. 各単語の最初の文字を大文字にする
    "_",
    ""
)

PROPER()は指定した文字列内の各単語の最初の文字を大文字に変換します。

基本形2: パスカルケースからキャメルケース(最初の一文字を小文字にする)

# SomeWords → someWords
=REPLACE( -- 2. 最初の一文字を置換する
    A1,
    1,
    1,
    LOWER(LEFT(A1,1)) -- 1. 最初の一文字を取得して小文字にする
)

REGEXREPLACE()では大文字・小文字変換の正規表現(\U\u)は使えないようなのでこのようなアプローチになります。
参考→ スプレッドシートで使える正規表現一覧

基本形3: キャメルケースからスネークケース

# some_words → someWords
=LOWER( -- 2. すべて小文字にする
    REGEXREPLACE(A1,"([A-Z])","_$1") -- 1. 大文字の前に「_」を付ける
)

応用形1: スネークケースからキャメルケース(基本形1+基本形2)

# some_words → someWords
=REPLACE( -- 基本形2
    REGEXREPLACE(PROPER(A1),"_",""), -- 基本形1
    1,
    1,
    LOWER(LEFT(A1,1))
)

応用形2: パスカルケースからスネークケース(基本形2+基本形3)

# SomeWords → some_words
=LOWER(REGEXREPLACE( -- 基本形3
        REPLACE(A1,1,1,LOWER(LEFT(A1,1))), -- 基本形2
        "([A-Z])",
        "_$1"
))

応用形3: ケバブケースの場合

スネークケースの「_」を「-」に書き換えるだけです。

参考