web-dev-qa-db-ja.com

Googleスプレッドシートの数式で文字列をキャメルケースに変換する方法

スペースで区切られた単語の文字列をキャメルケースに変換する数式を作成しようとしています

7
Ryan Schumacher

これは機能するはずです:

=JOIN("",ArrayFormula(UPPER(LEFT(SPLIT(A3," ")))&LOWER(MID(SPLIT(A3," "),2,500))))

またはより正確には:

=JOIN("",ArrayFormula(UPPER(LEFT(SPLIT(A3," ")))&LOWER(REGEXEXTRACT(SPLIT(A3," "),".(.*)"))))
3
Max Makhrov

はるかに小さいバージョン:

=SUBSTITUTE(PROPER(TRIM(A1))," ","")

大文字にはPROPERを使用し、スペースを削除するにはTRIMSUBSTITUTEを使用します。

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)))&REGEXREPLACE(PROPER(TRIM(A1)),"(\w|\s)(\w*)","$2")
13
TheMaster

これを行うには、次の式が機能します(ここで、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
    )
)
4
Ryan Schumacher

キャメルケースに変換しようとしている単語の文字列がA1に含まれている場合、式は非常に単純です。

=MINUSCULE(REGEXREPLACE(A1, " ", "_"))
0
Maxime Drouet