我必须在Power Query的文本字段中搜索非英语文本。几种语言具有特殊字符,可以在文本字段中搜索,如果发现则很明显,这些文本字段是非英语文本。
我已经尝试并尝试找到特定的语言字符,例如“é”或“ä”等。但是我知道仅使用条件列函数搜索每个字符,如果找到,则随后将“ 0”作为值我将所有条件列相乘,如果为0,则为非英语文本,如果为“ 1”,则为英语。
= Table.AddColumn(#"Added Conditional Column13", "Custom É", each if Text.Contains([Text 1], "É") then 0 else if Text.Contains([Text 2], "É") then 0 else if Text.Contains([Text 3], "É") then 0 else 1)
是否存在一种在文本字段中搜索特殊字符列表的解决方案(例如“ÁáÉéÖöÜÜüäß”)->搜索>结果“ 0”(如果在文本中找到任何人,否则给出输出“ 1”)。
答案 0 :(得分:4)
您可以使用List.ContainsAny
检查列表是否包含第二个列表中的任何值。
使用Text.ToList
将其组合以将字符分成一个列表,然后您会得到类似的内容:
= Table.AddColumn(#"Prior Step", "Contains Special Characters", each List.ContainsAny(Text.ToList([Values]),Text.ToList("ÁáÉéÖöÜüäß")), type logical)
当然,此方法要求您提供要测试的“特殊”字符列表。您可以翻转此轮,并指定“英文”字符:
#"English Characters" = "abcdefghijklmnopqrstuvwxyz0123456789 ,.:;", // include all characters you consider "English"
#"Added Custom" = Table.AddColumn(#"Prior Step", "Contains Special Characters", each not List.ContainsAny(Text.ToList([Values]),List.Union({Text.ToList(#"English Characters"), Text.ToList(Text.Upper(#"English Characters"))})), type logical)
答案 1 :(得分:0)
我将查看Range,find()命令,了解如何在Excel中搜索字符。我也可以将其与VBA Strings and ASCII结合使用,后者是Excel可以识别的所有ASCII字符