我正在尝试创建一个列,该列查看另一个名为软件名称的列,如果该列包含某个单词,新列将说明它是什么。例如,在软件列中找到 chrome,在新列中将显示 Google,然后如果软件列包含 Firefox,则新列将显示 mozilla。我尝试过使用包含和搜索功能,但总是出现#ERROR。 大家有解决办法吗??
伪代码
=IF(CONTAINS([softwareName],"Chrome"),"Google", IF(CONTAINS([softwareName],"Firefox"),"Mozilla","Unknown"))
最佳答案
这应该有效:
=IF(IFERROR(SEARCH("Chrome",[SoftwareName]),-1) <> -1, "Google",IF(IFERROR(SEARCH("Firefox",[SoftwareName]),-1)<>-1,"Mozilla", "Unknown"))
如果 DAX 中的搜索函数找不到您提供的字符串,它实际上会返回错误。否则它返回可以找到字符串的起始位置。请参阅DAX reference更多细节。所以我使用 iferror 来捕获找不到字符串时返回的错误。如果找不到该字符串(因此搜索返回错误),则会返回 -1,这不可能是此上下文中的有效起始位置。如果“Chrome”的搜索不是 -1,则找到“Chrome”,因此值为“Google”。否则,它将继续执行下一个 if 语句。
关于powerpivot - 搜索不同单词 DAX 公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18059607/