excel - 如何按字符数(<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
解决方案
查看您的谷歌文档,我认为这是一个 XY 问题。(https://en.wikipedia.org/wiki/XY_problem)
与其帮助您根据您的问题拆分一个长字符串,不如帮助您将单词列表加入一系列字符串中,每个字符串都少于 1000 个字符。它的工作原理是给每个单词一个组号,确保组在加入时少于 1000 个字符。然后将每个组中的单词连接在一起。
- 在 A 列之后插入 3 个辅助列
- B3:
=LEN(A3)+1
向下填写(单词长度加逗号) - C2:(
0
累计长度开始) - C3:
=IF(C2+B3<1000,C2+B3,B3)
向下填充(累积长度,重置为1000) - D3:
=IF(OR(C3<C2,C2=0),D1+1,D1)
填写(组柜台) - E1, E2, E3...:
1
,2
,3
填满 - E2:
=TEXTJOIN(",",TRUE,OFFSET($A$3,MATCH(E$1,$D$3:$D$1002,0)-1,0,COUNTIF($D$3:$D$1002,E$1),1))
填满 - E3:
=LEN(E2)
填对检查
在最终公式中,您可以根据需要替换对 的E$1
引用COLUMN()-4
。
推荐阅读
- c# - 将 Angular 2 与 .NET Framework 一起使用
- node.js - 取决于多个并行 gulp 任务的完成情况
- asp.net-core - 使用 eureka 的服务发现在 docker 容器中不起作用
- java - 删除另一个地图中嵌套地图的值
- mysql - MySQL 唯一键不用作 SELECT 的索引
- c++ - 我们可以动态地将操作插入到我们的函数中吗?
- javascript - 在 `react-tooltip` 中多行显示文本
- php - 无法使用 github.com/web-token/jwt-framework 解密 JWE 令牌
- ios - 如何使用swift在ios中使用upi深度链接打开phonepe或google pay
- amazon-web-services - 从 Lambda 到 Aurora 数据库的连接失败