首页 > 解决方案 > 如何按字符数(<1000)分隔逗号分隔列表,但避免在逗号之间拆分单词?

问题描述

我想将一个大的逗号分隔列表分成几个小于 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

标签: excelgoogle-sheetsexcel-formulagoogle-sheets-formula

解决方案


查看您的谷歌文档,我认为这是一个 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...: 1, 2,3填满
  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

在此处输入图像描述


推荐阅读