2013-08-05 45 views
2

我想創建一個列,該列查看名爲軟件名稱的另一列,如果此列包含某個單詞,新列將說明它是什麼。所以例如在軟件列中找到chrome,在新列中這將表示Google,然後如果軟件列包含firefox,則新列將包含mozilla。我曾嘗試使用包含和搜索功能,並且我一直用#ERROR出來。 任何人都有解決方案?搜索不同的單詞DAX公式

僞代碼

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

回答

2

這應該工作:

=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語句。