不少人問過如何利用DAX進行模糊查找,其實挺簡單,熟悉一個函數就可以了,它就是SEARCH。
SEARCH函數的功能與Excel中的類似,就是查找字符所處的位置,用法很簡單,在DAX中的語法如下:
查找文本位置這個原始功能使用場景不多,更常用的是結合FILTER函數進行模糊匹配,假如有下面這個數據,
如何從這些長尾關鍵詞的搜索數據中,找到包含“數據分析”的搜索量有多少?
就可以利用SEARCH函數來解決。
直接寫一個度量值:
這個度量值的邏輯是逐行迭代數據表中的長尾詞,把包含“數據分析”的行篩選出來,然后匯總計算出搜索量累計。
如果想同時包含兩個關鍵字的搜索量,還可以利用通配符來完成,SEARCH函數支持通配符,可以在第一個參數中使用通配符。
通配符的含義與Excel中一樣,問號(?)表示任意單個字符的匹配;星號(*)表示匹配任何個字符。如果要查找實際的問號或星號,可以在字符前鍵入轉義符波浪號(〜)。
比如想計算包含“上海”和“數據分析”的搜索量,度量值可以這樣寫:
當然,它不僅僅只能搜索一個關鍵詞,如果有個關鍵詞列表,比如下面這個:
要想得到每個關鍵詞的搜索量,度量值這樣寫就可以了:
然后利用關鍵詞字段和上面這個度量值制作矩陣,結果如下:
是不是挺簡單。
注意SEARCH函數與FIND函數的區別,這兩個函數非常相似,FIND不支持通配符,並且區分大小寫,如果你需要嚴格區分大小寫進行匹配查找,請使用FIND函數,其他情況都可以使用SEARCH函數,SEARCH的應用范圍更廣。