簡體   English   中英

如何計算Google表格中特定單元格中的單詞數?

[英]How do I count the number of words in a specific cell in Google Sheets?

目的是在包含段落的單元格旁邊的單元格中顯示單詞計數,如下所示:

|                              text                                      |   word_count |
|------------------------------------------------------------------------|------------  |
|   Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut ut.      |     120      |
|   Suspendisse a lacus elementum, auctor lorem et, convallis quam.      |              |
|   Mauris facilisis sollicitudin orci, sed auctor dui blandit sit amet. |              |
|   Interdum et malesuada fames ac ante ipsum primis in faucibus.        |              |
|   Nunc ut lacinia mauris. Pellentesque lobortis pretium convallis.     |              |
|   Cras in condimentum elit. Integer pellentesque nibh diam.            |              |
|   Praesent a erat molestie purus luctus malesuada volutpat.            |              |
|   Lorem ipsum dolor sit amet, consectetur adipiscing elit.             |              |
|   Suspendisse et lorem non neque sodales viverra et risus..            |              |               
|   Pellentesque tincidunt rhoncus enim sit amet tempor.                 |              |             
|   Pellentesque non leo non purus eleifend dapibus sit.                 |              |       
|   Sed fermentum lectus vel dapibus euismod. Aenean ante                |              |               
|   nisl, sagittis ut mauris sed, congue imperdiet lectus. Nam           |              |          
|   rutrum condimentum sapien a feugiat  amet a orci.                    |              |      

有效詞為:

  • 使用連續的字母字符串形成,或者可能包含連字符,例如,特制
  • 至少N個字符長(可以根據檢查者進行調整)

我要在word_count單元格中輸入什么公式?

到目前為止完成的工作:

就是這個: =COUNTA(SPLIT(A2, ” “))

我想出了一個(丑陋的)解決方案,但至少我認為它可行

=COUNTA(SPLIT(REGEXREPLACE(A1, "([^\s].{2}[^\s]*)|([^\s].*$)", "randomToken")," "))

說明:有數據a asdad sadad dasdad asdad

REGEXREPLACE()將檢查所有匹配的模式([^\\s].{2}[^\\s]*)|([^\\s].*$)並將其替換為randomToken (您可以在此處放置任何內容)

([^\\s].{2}[^\\s]*)|([^\\s].*$)匹配3個任意字符,此后如果遇到空格,它將停止(請注意,最小字符允許在正則表達式中為n-1)

REGEXREPLACE之后的結果是randomToken randomToken randomToken randomToken

然后splitsplitcounta ,我們將得到結果。

希望能有所幫助

也許您也可以嘗試:

=sum(ArrayFormula(--(len(split(regexreplace(A1, "[^A-Za-z\-\s]"," "), " "))>2)))

其中2是單詞的最小長度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM