小夥伴們好啊,今天咱們分享一個有趣的題目,一起看看大衆情人VLOOKUP的精彩表現。
先看下圖,A列是行政區代碼,B列是對應的行政區名稱。
需要根據A~B列的信息,在C列和D列分别填充對應省名以及市區名稱:
思考五分鐘,看看能不能找出規律……
……
好了,咱們來看看A列不同級别行政區劃代碼的分布規律:
省級:
每個省份代碼的後四位是0000,例如廣東省代碼為440000
市級:
每個省份下屬的城市,開頭兩位與所在省份代碼相同,後兩位是0。
例如廣州市代碼為440100,韶關市代碼為440200
區縣級:
每個城市下屬的區縣,開頭四位與所在城市代碼相同。
例如荔灣區代碼為440103,越秀區代碼為440104。
規律找出來了,你能想到使用什麼公式嗎?
先來看獲取省份名稱的公式:
C2輸入以下公式,向下複制。
=IF(MOD(A2,10000),VLOOKUP(A2-RIGHT(A2,4),A:B,2,0),"")
接下來咱們簡單說說公式的意思,先看RIGHT(A2,4)部分,作用是從A2行政區代碼中提取出最後四位。
然後使用A2減去後四位,目的得到後四位是0的省級行政區代碼。
再來看VLOOKUP(A2-RIGHT(A2,4),A:B,2,0)部分。
用相減後得到的省級行政區劃代碼作為VLOOKUP函數的查詢參數,以A~B作為查詢區域,返回第2列中的省級名稱。
最外層的IF和MOD是什麼意思呢?
MOD(A2,10000),計算A2除以10000後的餘數,440000除以10000,商是44,餘數是0,說明A2後四位都是0,也就是屬于省級代碼。
當A2屬于省級代碼時,IF函數返回空文本,否則就返回VLOOKUP函數的運算結果。
提示:IF函數的第1參數等于0時,相當于是邏輯值FALSE,IF函數返回第三參數的結果。如果IF函數的第1參數是不等于0的任意數值時,相當于是TRUE,IF函數返回第二參數的結果。所以公式中沒有使用MOD(A2,10000)>0這樣的表示方式,而是直接将大于0給省略掉了。
再來看獲取市級名稱的公式:
D2輸入以下公式,向下複制。
=IF(MOD(A2,100),VLOOKUP(A2-RIGHT(A2,2),A:B,2,0),"")
這個公式和提取省份名稱的公式非常相似。
先使用RIGHT函數提取出A2右側兩位數字,然後使用A2減去右側兩位數字,得到後兩位是0的市級行政區劃代碼。
接下來使用VLOOKUP函數,以相減後得到的市級區劃代碼,在A~B列中查詢,并返回第二列對應的市級名稱。
而最外層的IF和MOD部分,先使用MOD函數計算A2除以100後的餘數,如果區劃代碼後兩位都是0,則餘數不為0,說明A列是市級以下的區劃代碼,IF函數返回VLOOKUP函數的計算結果,否則返回空文本。
好了,今天的内容就是這些吧,祝大家一天好心情!
圖文制作:趙中山
編輯整理:祝洪忠
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!