こんなんいつ使うんだよって話ですが、必要になるシーンがあったんです。
またいつ必要になるともわからないので、一応残しておきます。
Excel でも Google スプレッドシートでもつかえます。
やり方
SAMPLE_TEXT
を sampleText
にするセル関数
=REPLACE(SUBSTITUTE(PROPER(LOWER(${変換元のセル番地})),"_", ""),1,1,LOWER(LEFT(${変換元のセル番地},1)))
たとえば、A1
に書かれたテキストを変換したいならば、
=REPLACE(SUBSTITUTE(PROPER(LOWER(A1)),"_", ""),1,1,LOWER(LEFT(A1,1)))
解説
何をしているのかというと……
- LOWER で全部小文字にした参照先のセルの文字列を
- PROPER で単語の先頭だけ大文字にしてから
- SUBSTITUTE で
_
を取り除いて(空文字と入れ替え) - 最後にREPLACEをつかって、最初の1文字目をLEFTで参照先のセルの文字列の1文字目を抽出してからLOWER で小文字にしたものと入れ替える
みたいな感じです。
何となく想像付くと思いますが、最後のREPLACEをやらなければ PascalCase です。
SUBSTITUTE(PROPER(LOWER(A1)),"_", "")
PROPER について
PROPERは 指定した文字列無いの各単語の最初の文字を大文字に変換
というなんともマニアックな関数ですが、こいつは指定した文字列の最初じゃなくて、単語の最初の文字に作用するので、foo_bar_baz
は Foo_Bar_Baz
となります。もちろんスペース区切りでもハイフン区切りでも、混在してても問題ないみたいです。
うまく利用すればほかのケース変換もさくっと出来そうですね。