将句子分成两个大致相等的长度片段

时间:2016-07-26 08:19:27

标签: google-sheets

我的谷歌电子表格中有长度在50-70个符号之间的句子。我必须用空格将它们分成两个大致相等的部分。

例如:

“这是5个字的句子。”

我想得到这个: “这是句子”,“5个字。”

有没有办法做到这一点?

2 个答案:

答案 0 :(得分:0)

以下是执行此操作的公式:

=SPLIT(JOIN("", ArrayFormula(TRANSPOSE(SPLIT(A1," "))& if(MOD(row(INDIRECT("A1:A"&COUNTA(SPLIT(A1," ")))),3)=0,CHAR(10)," "))),CHAR(10))

改变这个:

  • A1到包含文字的单元格,将其更改2次
  • 3分段数

例如,单元格A1中的此文本: one to 3 for 5 six 7 eit nine ten将被转换为片段:

one to 3

for 5 six

7 eit nine

ten

请注意,最后一个单词只包含一个单词,所有单词被分割后的其余单词。

修改

这个公式的关键是单词的数量,计算在其中: =COUNTA(SPLIT(A1," "))

要获得每个部分中的大致单词数,请使用以下公式:

=CEILING(COUNTA(SPLIT(A1," "))/2)

总公式为:

=SPLIT(JOIN("", ArrayFormula(TRANSPOSE(SPLIT(A1," "))& if(MOD(row(INDIRECT("A1:A"&COUNTA(SPLIT(A1," ")))),CEILING(COUNTA(SPLIT(A1," "))/2))=0,CHAR(10)," "))),CHAR(10))

此公式不计算句子中的字母数,因此它可以给出不相等的部分。

也可以尝试

此公式计算lettets的数量,并相应地拆分文本。对于大句子来说,这可能会更好。

第1部分的公式,粘贴在B1中:

=TRIM(REGEXEXTRACT(A1,REPT("[^ ]+ ",counta(SPLIT(LEFT(A1,CEILING(LEN(A1)/2))," ")))))

第2部分的公式,粘贴在C1:

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

答案 1 :(得分:0)

改变"这是5个单词的句子。" to"这是句子"," 5个单词。"尝试:

=join(""", """,(SPLIT(JOIN("", ArrayFormula(TRANSPOSE(SPLIT(A1," "))& if(MOD(row(INDIRECT("A1:A"&COUNTA(SPLIT(A1," ")))),CEILING(COUNTA(SPLIT(A1," "))/2))=0,CHAR(10)," "))),CHAR(10))))