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