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

时间:2020-06-04 10:28:13

标签: google-sheets google-sheets-formula spreadsheet

我有data in a Google spreadsheet,需要与他们的标准国家/地区代码匹配。例如Greater Chicago Area将是US。对于所有需要标记为US的单元格,它们似乎都以单词Area结尾。对于所有其他国家/地区,它们以其国家/地区名称结尾。我尝试了以下公式,但似乎不起作用-=IFS(ISNUMBER(FIND("Area",A64)), "US", ISNUMBER(FIND("*United Kingdom",A64)), "UK")。有没有办法在字符串末尾匹配部分文本?

3 个答案:

答案 0 :(得分:2)

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

答案电子表格,其中列标题中列出了公式- https://docs.google.com/spreadsheets/d/1KOYWwqY_T8aG0USy5POVLjAdl99N2PrwWs5mpQAruRg/edit?usp=sharing

步骤:

  1. 从您的pastebin中粘贴区域数据
  2. 使用=right(A2,4)="Area"字符串是否以“ Area”结尾 //让我们知道几乎所有美国案例
  3. 使用=find(",",A2)查找逗号索引 //让我们找到数组中的最后一个字
  4. 使用=LEN(A2)-C2查找逗号的Char权利 //告诉逗号右边有多少个字母(最后一个单词+一个空格)
  5. 使用=D2-1减去空间1 //您可以将Trim()用于非标准化数据,但对于您的用例-1可以正常使用
  6. 使用=right(A2,E2)的逗号的所有权利 //最后一个字
  7. 使用=if(B2,"United States of America",F2)的国家/地区名称 //如果以设置为US的区域结尾,则将其设置为字符串
  8. 的最后一个单词
  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列为止。

答案 1 :(得分:0)

您的公式似乎还可以。在检查其他所有国家/地区代码后,请尝试最后放置此FIND条件。

compile group: 'mysql', name: 'mysql-connector-java', version: mysqlVersion

enter image description here

答案 2 :(得分:0)

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

exception (num->cn 3) at line 107
  expected: <no-expected-value>
=: contract violation
  expected: number?
  given: #<procedure:...ad/racket-file.rkt:99:21>
  argument position: 1st
  other arguments...:
   0

enter image description here

公式是如何工作的?

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

使用的函数: