如何分割值,并找到最长的文本字符串在谷歌工作表



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

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

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

finance manager
accountant
chief accountant
finance manager
accountant

我使用分割函数来分割文本和查找函数,但查找字符或字符数正在工作,但我无法理解我将如何获得整个最长的单词

请帮帮我。

另一种选择是使用

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

并根据需要填充。

假设逗号分隔的列表位于A2:A中。例如,将以下内容放入其他空范围B2中的B2:B…

=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。如果是,则以空格分隔的列表形式返回该数字。返回第一个数字(它将是最大的数字),并用于提取该长度的非逗号REGEX表达式(然后从其中删除任何前导或尾随空格)。

如果文本存储在A列,则可以使用以下公式:

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

第二个选项是编写一个自定义函数。

最新更新