Google 工作表正则表达式从字符串中提取城市名称
Google Sheets regexextract city names from string
媒体团队正在 运行 一些我需要报道的广告活动。报告需要基于城市或城市组。活动名称的一个小例子是:
Brand-Platform-Safety-YT-DV360-Female-FTP-Non-Skippable-10Sec-Next8-Top10HHI-Android-6th jan'22
Brand-Disinfection-YT-DV360-Male-FTP-Non-Skippable-20Sec-Bengaluru-Top10HHI-Android-6th jan'22
Brand-Disinfection-YT-DV360-Female-FTP-Non-Skippable-6Sec-Bengaluru-Top10HHI-Android-6th jan'22
Brand-Disinfection-Display-DV360-Male-RTP-Display-Top10City-Top10HHI-Android-6th jan'22
Brand-Platform-Safety-YT-DV360-Female-FTP-Non-Skippable-10Sec-Next12-Top10HHI-Android-6th jan'22
Brand-Disinfection-YT-DV360-Female-FTP-Non-Skippable-6Sec-Kolkata-Top10HHI-Android-6th jan'22
Brand-Disinfection-YT-DV360-Male-FTP-Non-Skippable-20Sec-Kolkata-Top10HHI-Android-6th jan'22
我需要从这些活动名称中提取城市名称。他们根据不同的标准设置了 100 多个活动,所以我很难手动完成。假设活动名称存储在我的电子表格的 A 列中,我几乎可以用这个公式得到整个结果:
=ARRAYFORMULA(IF(ROW(A:A)=1,"City",
IF(ISBLANK(A:A),,
REGEXEXTRACT(A:A,"Sec-(.+)-Top"))))
公式有两个问题。它目前依赖于以“Sec-”开头并以“-Top”结尾的字符串并提取它们之间的数据。
- 第一个问题是有时字符串会以“Display-”而不是“Sec-”开头。我如何使公式适应那个
- 第二个问题是,媒体团队有时会使用“Next8”/“Top10City”等城市组,而不是像“德里”/“加尔各答”这样的城市。由于使用了“-Top”一词,regexexract 函数只选取整个字符串。我该如何防止这种情况?
非常感谢任何帮助!
尝试:
=ARRAYFORMULA({"City";
IF(ISBLANK(A2:A),,REGEXREPLACE(
IFNA(REGEXEXTRACT(A2:A, "Sec-(.+)-Top"),
REGEXEXTRACT(A2:A, "Display-(.+)-Top")), ".*Display-", ))})
媒体团队正在 运行 一些我需要报道的广告活动。报告需要基于城市或城市组。活动名称的一个小例子是:
Brand-Platform-Safety-YT-DV360-Female-FTP-Non-Skippable-10Sec-Next8-Top10HHI-Android-6th jan'22
Brand-Disinfection-YT-DV360-Male-FTP-Non-Skippable-20Sec-Bengaluru-Top10HHI-Android-6th jan'22
Brand-Disinfection-YT-DV360-Female-FTP-Non-Skippable-6Sec-Bengaluru-Top10HHI-Android-6th jan'22
Brand-Disinfection-Display-DV360-Male-RTP-Display-Top10City-Top10HHI-Android-6th jan'22
Brand-Platform-Safety-YT-DV360-Female-FTP-Non-Skippable-10Sec-Next12-Top10HHI-Android-6th jan'22
Brand-Disinfection-YT-DV360-Female-FTP-Non-Skippable-6Sec-Kolkata-Top10HHI-Android-6th jan'22
Brand-Disinfection-YT-DV360-Male-FTP-Non-Skippable-20Sec-Kolkata-Top10HHI-Android-6th jan'22
我需要从这些活动名称中提取城市名称。他们根据不同的标准设置了 100 多个活动,所以我很难手动完成。假设活动名称存储在我的电子表格的 A 列中,我几乎可以用这个公式得到整个结果:
=ARRAYFORMULA(IF(ROW(A:A)=1,"City",
IF(ISBLANK(A:A),,
REGEXEXTRACT(A:A,"Sec-(.+)-Top"))))
公式有两个问题。它目前依赖于以“Sec-”开头并以“-Top”结尾的字符串并提取它们之间的数据。
- 第一个问题是有时字符串会以“Display-”而不是“Sec-”开头。我如何使公式适应那个
- 第二个问题是,媒体团队有时会使用“Next8”/“Top10City”等城市组,而不是像“德里”/“加尔各答”这样的城市。由于使用了“-Top”一词,regexexract 函数只选取整个字符串。我该如何防止这种情况?
非常感谢任何帮助!
尝试:
=ARRAYFORMULA({"City";
IF(ISBLANK(A2:A),,REGEXREPLACE(
IFNA(REGEXEXTRACT(A2:A, "Sec-(.+)-Top"),
REGEXEXTRACT(A2:A, "Display-(.+)-Top")), ".*Display-", ))})