スペースで区切られた単語の文字列をキャメルケースに変換する数式を作成しようとしています
これは機能するはずです:
=JOIN("",ArrayFormula(UPPER(LEFT(SPLIT(A3," ")))&LOWER(MID(SPLIT(A3," "),2,500))))
またはより正確には:
=JOIN("",ArrayFormula(UPPER(LEFT(SPLIT(A3," ")))&LOWER(REGEXEXTRACT(SPLIT(A3," "),".(.*)"))))
はるかに小さいバージョン:
=SUBSTITUTE(PROPER(TRIM(A1))," ","")
大文字にはPROPER
を使用し、スペースを削除するにはTRIM
とSUBSTITUTE
を使用します。
LowerCamelCaseが必要な場合は、
最初の文字を小文字でREPLACE
するだけで、次のようになります。
=REPLACE(SUBSTITUTE(PROPER(TRIM(A1))," ",),1,1,LEFT(LOWER(TRIM(A1))))
正規表現の使用:
=REGEXREPLACE(REGEXREPLACE(PROPER(A1),"\s*",),"^(\w)",LEFT(LOWER(TRIM(A1))))
=LOWER(LEFT(TRIM(A1)))®EXREPLACE(PROPER(TRIM(A1)),"(\w|\s)(\w*)","$2")
これを行うには、次の式が機能します(ここで、A3
はセルです)
tl; dr:
=IF(IFERROR(FIND(" ",A3)), CONCAT(SUBSTITUTE(LEFT(LOWER(A3), FIND(" ", A3)), " ", ""), SUBSTITUTE(PROPER(SUBSTITUTE(A3, LEFT(A3, FIND(" ", A3)), "")), " ", "")), LOWER(A3))
注釈付き:
=IF( // if a single Word
IFERROR( // test if NOT an error
FIND( // looking for a space
" ",
A3
)
),
CONCAT( // concat the first Word with the rest
SUBSTITUTE( // remove the space
LEFT( // left of the find
LOWER( // lowercase the string
A3
),
FIND( // find the space in the string
" ",
A3
)
),
" ",
""
),
SUBSTITUTE( // remove spaces
PROPER( // convert string to capitals
SUBSTITUTE( // remove first Word
A3,
LEFT( // left of the find
A3,
FIND( // find first space
" ",
A3
)
),
""
)
),
" ",
""
)
),
LOWER( // lowercase rest of the Word
A3
)
)
キャメルケースに変換しようとしている単語の文字列がA1に含まれている場合、式は非常に単純です。
=MINUSCULE(REGEXREPLACE(A1, " ", "_"))