匹配 Google 工作表中字符串末尾的部分文本

Matching partial text at the end of a string in Google Sheets

我有 data in a Google spreadsheet 需要匹配他们的标准国家代码。例如Greater Chicago Area 将是 US。对于所有需要标记为 US 的单元格,它们似乎都以单词 Area 结尾。对于所有其他国家/地区,它们以国家/地区名称结尾。
我尝试了以下公式,但它似乎不起作用 -

=IFS(ISNUMBER(FIND("Area",A64)), "US", ISNUMBER(FIND("*United Kingdom",A64)), "UK").

有没有办法匹配字符串末尾的部分文本?

你的公式似乎没问题。在检查所有其他国家/地区代码后,请尝试将此 FIND 条件放在最后。

ISNUMBER(FIND("Area",A64)), "US"

如果您只想按名称查找,这里是答案,我没有使用国家/地区代码,但您可以轻松地进行查找替换搜索或从另一个范围定义 vlookup。

使用列 Header - 中列出的公式回答电子表格 https://docs.google.com/spreadsheets/d/1KOYWwqY_T8aG0USy5POVLjAdl99N2PrwWs5mpQAruRg/edit?usp=sharing

步骤:

  1. 从你的 pastebin 粘贴区域数据
  2. 字符串是否以 "Area" 结尾使用 =right(A2,4)="Area" // 让我们知道几乎所有美国案例
  3. 使用 =find(",",A2) 查找逗号索引 // 让我们找到数组
  4. 中的最后一个单词
  5. 使用 =LEN(A2)-C2 查找逗号的右字符 // 告诉逗号右边有多少个字母(最后一个单词 + 一个 space)
  6. 使用 =D2-1 为 space 减 1 // 您可以对非标准化数据使用 Trim() 但对于您的用例 -1 工作正常
  7. 使用 =right(A2,E2) 逗号的所有权利 // 最后一句话
  8. 国家名称使用 =if(B2,"United States of America",F2) // 如果它在设置为 US 的区域结束,否则将其设置为字符串中的最后一个单词
  9. 特殊情况处理使用 =if(ISERR(F2),G2,if(G2="TN","United States",if(G2="TN","United States of America",if(G2="Zhejiang, China","China",if(F2="Canada Area","Canada",G2))))) // 你需要重写的特殊情况。
  10. Vlookup 国家代码 =vlookup(H2,'Country Codes'!A:B,2,false) /// 将根据提供的KEY在搜索范围的S列中找到国家代码。

如果您需要为演示文稿清理它,您只需将 ALL 单元格引用替换为该单元格中的公式,直到您一直嵌套回到 A 列。

你也可以试试这个单一公式

=INDEX(IFERROR(REGEXREPLACE(
                      REGEXREPLACE(A2:A,"Canada Area","Canada"),
                               " Area$|, TN$",", US")))

公式是如何工作的?

内部 REGEXREPLACE 在文本中找到表达式 Canada Area 并将其替换为 Canada.
然后,外部 REGEXREPLACE 找到最后一个 AreaTN 字符串的位置,并将它们替换为 , US (我们可以用更多条件进一步丰富公式如有必要)
最后 INDEXIFERROR 的组合将我们的公式扩展到整个范围,不包括错误(现在返回为空单元格)。
至于使用的正则表达式符号,$ 定义行尾,| 定义 OR 语句。

使用的函数: