如何拆分值并在 google sheet 中找到最长的文本字符串

How to Split the value and find the longest text string in google sheet

我在 google sheet 中有一列,其中每个单元格都包含这种类型的文本

manager, finance manager
accountant
accountant, chief accountant
manager, auditor, other, finance manager
accountant

我想找到如下最长的文本并将该文本显示到新单元格中

finance manager
accountant
chief accountant
finance manager
accountant

我使用了拆分功能来拆分文本和查找功能,但查找字符或字符数是有效的,但我无法理解如何获得整个最长的单词

请帮助我。

如果您的文本存储在 A 列中,您可以使用此公式:

=hlookup(max(arrayformula(len(trim(split(A1,","))))), {arrayformula(len(trim(split(A1,","))));arrayformula(trim(split(A1,",")))},2,False)

第二种选择是编写自定义函数。

另一种方法是使用

=FILTER(TRIM(SPLIT(A1, ",")), LEN(SPLIT(A1, ",")) = MAX(LEN(SPLIT(A1, ","))))

并根据需要向下填写。

假设您的逗号分隔列表位于 A2:A 中。将以下内容放在空范围 B2:B ...

的 B2 中

=ArrayFormula(IF(A2:A="",,TRIM(REGEXEXTRACT(A2:A,"[^,]{"&REGEXEXTRACT(TRIM(TRANSPOSE(QUERY(TRANSPOSE(IF(REGEXMATCH(A2:A,"[^,]{"&SEQUENCE(1,30,30,-1)&"}")=FALSE,,SEQUENCE(1,30,30,-1))),,30))),"\S+")*1&"}"))))

这是一个复杂的公式,很难解释。因此,我将留给您(以及其他可能感兴趣的人)来剖析、分析和理解内部工作原理。但是,如果您(或其他人)遇到困难,如果有我可以回答的具体问题,请随时提问。

简而言之,该公式会检查长度为 30 个字符的非逗号分组是否存在任何 REGEX 匹配项,然后是 29、28 等等到 1。如果是,该数字将在 space-分隔列表。第一个数字(将是最大的)被返回并用于提取该精确长度的非逗号 REGEX 表达式(然后从中删除任何前导或尾随 spaces)。