多数のテキスト文字列が含まれたシンプルなGoogleスプレッドシートがあります。各セルに含まれる単語の数だけが必要です。使用できる組み込みのGoogleスプレッドシート関数はありますか?
Google Spreadsheetsでは、少し違うことをします。
=COUNTA(SPLIT(A1, " "))
SPLIT
関数はGoogleスプレッドシートでのみ使用でき、セルのコンテンツをすべてのスペース(" "
)で分割します。 COUNT
関数は、単にインスタンスをカウントします。
Excelの式でも同じ答えが得られますが、もう少し面倒です。
=LEN(TRIM(A1))-LEN(SUBSTITUTE(A1," ",""))+1
Googleスプレッドシートに固有の式は次の回答をご覧ください。
https://webapps.stackexchange.com/a/44719/2914
this other answer の式のわずかな改善により、A1が空白の場合、または空の文字列がある場合はゼロを返します。
= IF(LEN(A1)= 0,0、COUNTA(SPLIT(A1、 ""))
セル範囲でこれを行う(つまりA1:A25
)にする場合は、上の式を使用できます。ここで、CHAR(32)
はスペース文字" "
です
=COUNTA(SPLIT(ARRAYFORMULA(CONCATENATE(A1:A25&CHAR(32)));CHAR(32)))
これは、初期セルが空白の場合を除き、空白セルで機能します。
=ARRAYFORMULA(IF(LEN(A3:A),
MMULT(IF(IFERROR(SPLIT(IF(LEN(A3:A), A3:A, ), " "))<>"", 1, 0),
ROW(INDIRECT("A1:A"&COUNTA(IFERROR(
QUERY(IF(IFERROR(SPLIT(IF(LEN(A3:A), A3:A, ), " "))<>"", 1, 0), "limit 1", 0)))))^0), ))
=ARRAYFORMULA(IF(LEN(A3:A), LEN(REGEXREPLACE(A3:A, "[^\s]", ))+1, ))
別の:
=COUNTA(SPLIT(TRIM(A1&" #")," "))-1
これは、ターゲットセル内にあるものの末尾にスペースとポンド記号を追加するだけですnullに追加することを含む。その後、最後に一時的な「偽のスペース」を差し戻します。