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

问题描述 投票:1回答:1

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

excel google-sheets excel-formula google-sheets-formula
1个回答
1
投票

看看你的谷歌文档,我认为这是一个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

© www.soinside.com 2019 - 2024. All rights reserved.