批量模糊查询_模糊匹配,Power Query的这个功能太实用了,可惜Excel还没有
最近有幾個星友問到,如何進行數據的模糊匹配?本文就利用一個簡單的例子,來看看PowerBI是如何快速完成模糊匹配的。
模擬數據如下,有兩個表,分別是各省市2018和2019年的數據,
這是個很常見的場景,由于某種原因,兩個年度的省份名稱規則不一致,2019年全稱,而2018年是簡稱。
把兩年的數據合并到一起,本來用Excel的VLOOKUP函數就可以輕松做到的事情,因為省份名稱不一致而增加了不少難度。
這個問題用Excel公式或者M函數也能找到解決方案,這里分享個更簡單的方法,直接使用Power Query的模糊匹配功能。
將這兩個表格導入到PowerBI中,進入Power Query編輯器,點擊合并查詢,以省份為關聯列,如下圖所示。
聯結種類選擇為左外部,最重要的是在聯結種類下面,勾選“使用模糊匹配執行合并”。
點擊確定,并展開合并列,看看是什么效果。
竟然都是空值!
就是沒有匹配成功,是不是這個模糊合并功能不好用呢?
當然不是。
在上面勾選模糊匹配時,你應該能注意到,下面還有個模糊匹配選項,打開后發現還有這些參數可以設置:
這些參數都是可選的,但是為了匹配的效果,還應該了解這些參數的用法。
其中第一項相似性閾值,就是相似度達到多少時匹配,默認是0.8,但是上面的數據,相似度最高才0.67(比如"北京"和"北京市"),所以默認匹配時全部沒有匹配成功。
而"新疆"和"新疆維吾爾自治區"的相似度更低,只有0.25,所以為了都能匹配成功,我們把這個閾值調到0.25,然后看看匹配的效果。
正式期望的結果,是不是很簡單。
所以匹配之前,還要先了解你的原始數據,預估相似的比例,調整閾值,才能更好的完成模糊匹配。
第二個可選參數是最大匹配數,如果不填,會把所有匹配行找出來,如果另一個表不止有一行,可以根據需要,想匹配出來幾行就填寫數字幾。
最后一個參數是選擇轉換表。可以通過查詢中的另外一個表作為轉換表進行匹配,在轉換表中,可以提前定義好,不規范值和規范值的對應關系,相當于同義詞表,特定場景下非常有用。
關于模糊匹配就簡單介紹到這里,后面兩個參數的使用,有需要時可以自行測試效果。
最后要說的是,不要因為有模糊匹配功能,就可以對源數據不加約束,依然應該盡量規范你的數據源,能保持一致最好。
模糊匹配一方面是計算量特別大,另外既然是模糊查找,就很可能會有誤差,當數據量比較大時,這種數據誤差還很難被識別出來。
這里用到的功能,來自PowerBI Desktop中的PowerQuery模塊,Excel里面的PowerQuery暫時還沒有更新到這個功能。
所以,建議大家在合適的情況下,盡量養成用PowerBI Desktop進行數據處理的習慣,而不是Excel;PowerBI Desktop完全免費,功能齊全,為什么不用呢?
-精彩推薦-
采悟:PowerQuery技巧:批量合并Excel表的指定列?zhuanlan.zhihu.com采悟:二維表轉一維表,看這篇文章就夠了?zhuanlan.zhihu.com采悟:利用PowerQuery,人人都可以零代碼調用API獲取經緯度?zhuanlan.zhihu.comfrom 知乎 @采悟
總結
以上是生活随笔為你收集整理的批量模糊查询_模糊匹配,Power Query的这个功能太实用了,可惜Excel还没有的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: redis 哨兵_Redis哨兵配置
- 下一篇: 连续子数组的最大和python_连续子数