拆分一个字符串,仅需5个项目。但是将字符数限制为<20

时间:2018-06-22 15:17:51

标签: regex google-sheets spreadsheet

一个简单的查询。

我使用了一个非常有用的公式:

 =JOIN(replace(A1, find("|", SUBSTITUTE(A1, ", ", "|", 5)), len(A1), ""), "", )

...这需要一个逗号分隔的单元格(可能包含x50个字符串),并且仅返回5,接下来,我想将返回的字符串限制为少于20个字符。是否可以在此公式中加入一些魔术。我目前使用正则表达式“查找并替换”,其值为:。{20,},然后删除超过20个字符的所有内容。一定有更漂亮的方法可以做到这一点?

即。单元格A1 =

here's a string, here's a very long string over 20 chars, string 3, string 4, another string, string 5, another string 7, number 8

将成为

here's a string, string 3, string 4, another string, string 5

此外,在公式中...您如何处理错误?如果我查询的单元格仅包含3个字符串,而我要求5个字符串,则得到一个错误或错误的回报,处理这种事件的诀窍是什么?

非常感谢您阅读本文!

1 个答案:

答案 0 :(得分:1)

=JOIN(", ",ARRAY_CONSTRAIN(FILTER(SPLIT(A1,", ",0),LEN(SPLIT(A1,", ",0))<=20),1,5))
  • 通过定界符分隔
  • LENGth个字符的FILTER数组
  • ARRAY_CONSTRAIN约束数组
  • JOIN返回分割后的过滤数组