搜索不同的单词DAX公式

时间:2013-08-05 13:38:35

标签: powerpivot dax

我正在尝试创建一个列,该列查看另一个名为软件名称的列,如果此列包含某个单词,则新列将说明它是什么。所以例如在软件专栏中找到chrome,在新专栏中会说Google,然后如果软件列包含firefox,则新列将包含mozilla。香港专业教育学院尝试使用包含和搜索功能,我一直带着#ERROR。 任何人都有解决方案??

伪代码

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

1 个答案:

答案 0 :(得分:2)

这应该有效:

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

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