如何计算Google表格中特定单元格中的单词数?

时间:2018-11-30 03:22:54

标签: 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, ” “))

2 个答案:

答案 0 :(得分:1)

我想出了一个(丑陋的)解决方案,但我认为至少可以奏效

=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

然后仅splitcounta,我们将得到结果。

希望它能提供帮助

答案 1 :(得分:1)

也许您也可以尝试:

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

其中2是单词的最小长度。