如何按字符数(<1000)分隔逗号分隔的列表,但又避免在逗号之间拆分单词?

时间:2019-04-03 21:58:58

标签: excel google-sheets excel-formula google-sheets-formula

我想将一个大的逗号分隔列表分成几个小于1000个字符的较小列表,而不会切断实际单词。

我一直在使用

=MID($A2,IF(COLUMN()-2=0,1,((COLUMN()-2)*1000)+1),1000)

但是,使用此公式,单词被截断了。例如,一个列表将以“ train”结尾,而下一个列表将以“ ing”开头。

以下是示例电子表格供参考: https://docs.google.com/spreadsheets/d/1HB82YQNjhpAwMJVCoTWjLKT9PHW32G0-FkAhK-lWiG8/edit?usp=sharing

1 个答案:

答案 0 :(得分:1)

查看您的Google文档,我认为这是一个XY问题。 (https://en.wikipedia.org/wiki/XY_problem

与其帮助您根据问题拆分长字符串,不如帮助您将单词列表连接到一系列字符串(每个字符串少于1000个字符),要容易得多。它通过为每个单词分配一个组号来工作,以确保加入时这些组少于1000个字符。然后将每个组中的单词合并在一起。

  1. 在A列之后插入3个助手列
  2. B3:=LEN(A3)+1填写(单词的长度加逗号)
  3. C2:0(累积长度开始)
  4. C3:=IF(C2+B3<1000,C2+B3,B3)填充(累积长度,重置为1000)
  5. D3:=IF(OR(C3<C2,C2=0),D1+1,D1)填写(组计数器)
  6. E1,E2,E3 ...:123填满
  7. E2:=TEXTJOIN(",",TRUE,OFFSET($A$3,MATCH(E$1,$D$3:$D$1002,0)-1,0,COUNTIF($D$3:$D$1002,E$1),1))填满
  8. E3:=LEN(E2)进行检查

在最终公式中,您可以根据需要将对E$1的引用替换为COLUMN()-4

enter image description here