我需要从包含由" _"分隔的文本的单元格中创建一些列。
输入将是: campaign1_attribute1_whatever_yes_123421
输出必须在不同的列中(每个字段一个),没有" _"并且不包括最终的数字,如下: campaign1 attribute1无论是什么
必须使用正则表达式公式完成!
帮助!
提前致谢(对不起我的英文)
答案 0 :(得分:1)
要解决此问题,您可以使用SPLIT和REGEXREPLACE函数
解决方案:
If Tmp <> 0 And Tmp <> "" And Tmp < Fun Then
Fun = Tmp
i = y
End If
说明:
在单元格A3中我们使用SPLIT(文本,分隔符,[split_by_each]),本例中的文本格式为regex = REGEXREPLACE(A1,“_ + \ d $”,“” )*删除 123421,女巫会给你一个由“”分隔的每个单词的列。
Text - A1 = "campaign1_attribute1_whatever_yes_123421"
Formula - A3 = =SPLIT(REGEXREPLACE(A1,"_+\d*$",""), "_", TRUE)
答案 1 :(得分:1)
=REGEXEXTRACT("campaign1_attribute1_whatever_yes_123421","(("®EXREPLACE("campaign1_attribute1_whatever_yes_123421","((_)|(\d+$))",")$1(")&"))")
这样做是用括号替换所有_
来创建捕获组,同时也排除末尾的数字串,然后用括号括起整个字符串。
然后我们使用正则表达式提取来实现拉出碎片,组自动将它们推送到自己的单元格/列
答案 2 :(得分:0)
昨天终于在stackoverflow(西班牙语)中弄明白了:https://es.stackoverflow.com/questions/55362/c%C3%B3mo-separo-texto-por-guiones-bajos-de-una-celda-en ...
毕竟这很简单......
我之所以要求只使用正则表达式和谷歌工作表是因为我需要在Google数据工作室中使用它(与电子表格相同的正则表达式功能)
要使每个列只使用此正则表达式提取函数:
第1栏:REGEXP_EXTRACT(Campaña, '^(?:[^_]*_){0}([^_]*)_')
第二栏:REGEXP_EXTRACT(Campaña, '^(?:[^_]*_){1}([^_]*)_')
第3栏:REGEXP_EXTRACT(Campaña, '^(?:[^_]*_){2}([^_]*)_')
...等 在切换列的公式中唯一需要改变的是{},(列号-1)中的数字。 如果你没有最终的号码,就不要把最后一个号码放在&#34; _&#34;。
最后,请记住再次执行所有计算字段,因为(例如)它会因CPC,CTR和其他自动计算的Adwords指标而出错。
希望它有所帮助!