2

我正在尝试创建一个列,该列查看另一个名为软件名称的列,如果该列包含某个单词,则新列将说明它是什么。例如,在软件列中找到 chrome,在新列中会显示 Google,然后如果软件列包含 firefox,则新列将包含 mozilla。我试过使用包含和搜索功能,但我一直都出现#ERROR。有人有解决办法吗??

伪代码

=IF(CONTAINS([softwareName],"Chrome"),"Google", IF(CONTAINS([softwareName],"Firefox"),"Mozilla","Unknown"))
4

1 回答 1

2

这应该有效:

=IF(IFERROR(SEARCH("Chrome",[SoftwareName]),-1) <> -1, "Google",IF(IFERROR(SEARCH("Firefox",[SoftwareName]),-1)<>-1,"Mozilla", "Unknown"))

如果 DAX 中的 Search 函数找不到您提供的字符串,它实际上会返回错误。否则,它返回可以找到字符串的起始位置。有关更多详细信息,请参阅DAX 参考。所以我用 iferror 来捕捉找不到字符串时返回的错误。如果它没有找到该字符串(因此 Search 返回一个错误),它会返回 -1,这在此上下文中不可能是有效的开始位置。如果搜索“Chrome”不是 -1,则找到“Chrome”,因此值为“Google”。否则,它会转到下一个 if 语句。

于 2013-08-06T23:08:15.347 回答