之前寫了一篇博客程序員如何巧用Excel提高工作效率,講解了程序員在日常工作中如何利用Excel來提高工作效率,沒想到收到很好的反饋,點贊量,評論量以及閱讀量一度飆升為我的博客中Top 1,看來大家平時幫業務修改數據的場景很多啊,哈哈。
好了,言歸正傳,本篇博客我們主要講解下Excel中VLOOKUP函數的使用,相比於上一篇中的內容,個人覺得這個相對高級一些。
1.使用背景
為什么會使用到這個函數呢,背景是這樣的,有兩個系統,我們假設叫A系統,B系統,這兩個系統都存儲了供應商的信息並且和平相處很長時間,忽然有一天上班,就看到業務同學發的釘釘消息:
業務:在不,我發現你們A系統存儲的供應商名稱不對啊
我:舉個例子
業務:有個供應商A系統叫[聯營]蘇州食行生鮮電子商務有限公司,但是B系統叫蘇州食行生鮮電子商務有限公司,類似的還有很多,基本上A系統都加上了[聯營]這個前綴或者[聯營]這個后綴
我:那你的需求是?
業務:我需要A系統里的供應商名稱全部修改為和B系統一致,以B系統為准,並且現在A系統我需要供應商的聯系人信息,這個數據B系統是有的,你也幫我一並初始化過來
我:好吧,你說了算……
2.使用方法
按照上述的使用背景,業務提供了如下的Excel,這個Excel分3個Sheet,分別是:A系統供應商數據,B系統供應商數據,B系統供應商聯系人數據,具體的數據如下所示:
我們的最終目的是拼接一個Update語句來更新A系統的供應商數據,然后批量生成,這樣就可以批量更新A系統的供應商數據了。
基於此目的,我們拆分步驟如下:
- 把第2個Sheet和第3個Sheet中的數據匹配到第一個Sheet中,匹配條件是列:B系統供應商編碼
- 在第一個Sheet中拼接Update語句(拼接方法可參考之前的博客程序員如何巧用Excel提高工作效率)
- 批量生成Update語句
第一步我們就需要用到VLOOKUP函數了,以下為匹配方法:
此時我們已經將需要的數據都匹配到了第一個Sheet中:
接下來我們需要的是拼接Update語句,方法如下:
最終批量生成的語句如下,完美完成:
UPDATE supplier_seller
SET supplier_seller_name = '蘇州食行生鮮電子商務有限公司',
contact_name='張洪良',
contact_email='zhanghongliang@163.com',
contact_mobile='13758494357'
WHERE disabled = 0
AND supplier_seller_code = 'A000001';
UPDATE supplier_seller
SET supplier_seller_name = '北京每日優鮮電子商務有限公司',
contact_name='曾斌',
contact_email='zengbin@163.com',
contact_mobile='15601637452'
WHERE disabled = 0
AND supplier_seller_code = 'A000002';
3.常見問題
在這個過程中,可能會出現以下情況,明明數據存在,匹配完成卻顯示#N/A(注意:數據不存在也會顯示#N/A):
出現的原因可能有以下兩種:
1.匹配的兩列的單元格格式不同,比如第一個Sheet中的單元格格式是常規,第二個Sheet里的單元格格式是文本,解決方案就是將兩列的單元格格式修改為一樣:
2.匹配列不在第一列,如我們調整下第2個Sheet中兩列的位置
因此建議將匹配列放在第一列,避免出現問題排查浪費時間。
原創不易,如果覺得文章能學到東西的話,歡迎點個贊、評個論、關個注,這是我堅持寫作的最大動力。
如果有興趣,歡迎添加我的微信:zwwhnly,等你來聊技術、職場、工作等話題(PS:我是一名奮斗在上海的程序員)。