我有data in a Google spreadsheet,需要与他们的标准国家/地区代码匹配。例如Greater Chicago Area
将是US
。对于所有需要标记为US的单元格,它们似乎都以单词Area
结尾。对于所有其他国家/地区,它们以其国家/地区名称结尾。我尝试了以下公式,但似乎不起作用-=IFS(ISNUMBER(FIND("Area",A64)), "US", ISNUMBER(FIND("*United Kingdom",A64)), "UK")
。有没有办法在字符串末尾匹配部分文本?
答案 0 :(得分:2)
如果您只是想按名称提供,这里就是答案,我没有使用国家/地区代码,但是您可以轻松地进行查找替换搜索或从另一个范围定义vlookup。
答案电子表格,其中列标题中列出了公式- https://docs.google.com/spreadsheets/d/1KOYWwqY_T8aG0USy5POVLjAdl99N2PrwWs5mpQAruRg/edit?usp=sharing
步骤:
=right(A2,4)="Area"
字符串是否以“ Area”结尾
//让我们知道几乎所有美国案例=find(",",A2)
查找逗号索引
//让我们找到数组中的最后一个字=LEN(A2)-C2
查找逗号的Char权利
//告诉逗号右边有多少个字母(最后一个单词+一个空格)=D2-1
减去空间1
//您可以将Trim()
用于非标准化数据,但对于您的用例-1可以正常使用=right(A2,E2)
的逗号的所有权利
//最后一个字=if(B2,"United States of America",F2)
的国家/地区名称
//如果以设置为US的区域结尾,则将其设置为字符串=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)))))
//您需要覆盖的特殊情况。 =vlookup(H2,'Country Codes'!A:B,2,false)
///将根据提供的KEY在搜索范围的S列中找到国家/地区代码。 如果您需要为演示文稿进行清理,则可以使用该单元格中的公式替换 ALL 单元格引用,直到将其嵌套到A列为止。
答案 1 :(得分:0)
您的公式似乎还可以。在检查其他所有国家/地区代码后,请尝试最后放置此FIND条件。
compile group: 'mysql', name: 'mysql-connector-java', version: mysqlVersion
答案 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
公式是如何工作的?
内部 =INDEX(IFERROR(REGEXREPLACE(
REGEXREPLACE(A2:A,"Canada Area","Canada"),
" Area$|, TN$",", US")))
在文本中找到表达式 REGEXREPLACE
并将其替换为仅 Canada Area
。
然后,外部 Canada
找到最后一个 REGEXREPLACE
或 Area
字符串的位置,并将它们替换为 TN
(如有必要,我们可以使用更多条件进一步丰富公式)
最后,, US
和 INDEX
的组合将我们的公式扩展到整个范围,不包括错误(现在作为空单元格返回)。
至于使用的正则表达式符号,IFERROR
定义行尾,$
|
语句。
使用的函数: