excel省市區三級分類級聯


前言:同事正好需要一個這樣的地址類型給用戶使用下載模板,改好地址再導入,這樣就不會出現地址不匹配問題。所以就自己也整理了一套,以備不時之需。

效果展示

圖一:省級

圖二:市級

圖三:區級

圖四:各鄉鎮

當更換一級菜單時二、三、四級會提示更新級聯選項,否則提示錯誤。依次類推,二級改變時,三、四級提示錯誤

 

首先,要實現上面效果,需要二大部:

第一部:准備做級聯的數據源;(主要就是看你的數據來源,是通過數據庫還是其它)

 

第二部:excel函數及規則應用;(主要使用OFFSET, MATCH, CONTIF),即可實現上面效果。

 在使用上面excel函數之前,首先要熟悉一下幾個函數的作用,如果已經知道可忽律

OFFSET(reference,rows,cols,height,width)
Reference 作為偏移量參照系的引用區域。Reference 必須為對單元格或相連單元格區域的引用;否則,函數 OFFSET 返回錯誤值#VALUE!。
Rows相對於偏移量參照系的左上角單元格,上(下)偏移的行數。如果使用 5 作為參數 Rows,則說明目標引用區域的左上角單元格比 reference 低 5 行。行數可為正數(代表在起始引用的下方)或負數(代表在起始引用的上方)。
Cols 相對於偏移量參照系的左上角單元格,左(右)偏移的列數。如果使用 5 作為參數 Cols,則說明目標引用區域的左上角的單元格比 reference 靠右 5 列。列數可為正數(代表在起始引用的右邊)或負數(代表在起始引用的左邊)。
Height高度,即所要返回的引用區域的行數。Height 必須為正數。不可為負
Width寬度,即所要返回的引用區域的列數。Width 必須為正數。不可為負
offset 在匯編中可以獲得操作數的偏移地址。用法:

MATCH(lookup_value, lookup_array, match_type)
lookup_value:需要在數據表(lookup_array)中查找的值。可以為數值(數字、文本或邏輯值)或對數字、文本或邏輯值的單元格引用。可以包含通配符、星號 (*) 和問號 (?)。星號可以匹配任何字符序列;問號可以匹配單個字符。
lookup_array:可能包含有所要查找數值的連續的單元格區域,區域必須是某一行或某一列,即必須為一維數據,引用的查找區域是一維數組。
match_type:表示查詢的指定方式,用數字-1、0或者1表示,match_type省略相當於match_type為0的情況。
為1時,查找小於或等於lookup_value的最大數值在lookup_array中的位置,lookup_array必須按升序排列:否則,當遇到比lookup_value更大的值時,即時終止查找並返回此值之前小於或等於lookup_value的最大數值的位置。
為0時,查找等於lookup_value的第一個數值,lookup_array按任意順序排列:
為-1時,查找大於或等於lookup_value的最小數值在lookup_array中的位置,lookup_array必須按降序排列。利用MATCH函數查找功能時,當查找條件存在時,MATCH函數結果為具體位置(數值),否則顯示#N/A錯誤。
注:當所查找對象在指定區域未發現匹配對象時將報錯!
建議使用match方法同時使用 On Error Resume Next;或者 On Error goto 100 語句。

HLOOKUP(lookup_value,table_array,row_index_num,range_lookup)(HLOOKUP函數是Excel等電子表格中的橫向查找函數,它與LOOKUP函數和VLOOKUP函數屬於一類函數,HLOOKUP是按行查找的,VLOOKUP是按列查找的。)
Lookup_value為需要在數據表第一行中進行查找的數值。Lookup_value 可以為數值、引用或文本字符串。
Table_array為需要在其中查找數據的數據表。使用對區域或區域名稱的引用。
Row_index_num為table_array 中待返回的匹配值的行序號。Row_index_num 為 1 時,返回 table_array 第一行的數值,row_index_num 為 2 時,返回 table_array 第二行的數值,以此類推。如果 row_index_num 小於 1,函數 HLOOKUP 返回錯誤值#VALUE!;如果 row_index_num 大於 table_array 的行數,函數 HLOOKUP 返回錯誤值 #REF!。
Range_lookup為一邏輯值,指明函數 HLOOKUP 查找時是精確匹配,還是近似匹配。如果為TURE或者1,則返回近似匹配值。也就是說,如果找不到精確匹配值,則返回小於 lookup_value 的最大數值。
如果 range_lookup 為 FALSE或0,函數 HLOOKUP 將查找精確匹配值,如果找不到,則返回錯誤值#N/A。如果range_lookup 省略,則默認為近似匹配。
表格或數值數組 (數組:用於建立可生成多個結果或可對在行和列中排列的一組參數進行運算的單個公式。數組區域共用一個公式;數組常量是用作參數的一組常量。)的首行查找指定的數值,並在表格或數組中指定行的同一列中返回一個數值。當比較值位於數據表的首行,並且要查找下面給定行中的數據時,請使用函數 HLOOKUP。當比較值位於要查找的數據左邊的一列時,請使用函數 VLOOKUP。 HLOOKUP 中的 H 代表“行”。

通過上述相關知識點,我們來操作實現省一級菜單

省一級

 excel--公式--定義名稱(或CTRL+F3)

 

由第一部分我們可以看到,A列為省份,所以,我們的引用位置使用A列,確定。

之后則使用,我們選擇A2單元格使用一級菜單(數據--數據有效性)

到這里,我們一級菜單制作完成。

市二級

 類似第一步省一級,先制作函數后使用:

 

 區三級

各鄉鎮四級

 

完成上述操作。那么級聯已經完成。

 

下面是當上一級改變時,后續級聯地址提示錯誤

然后再點擊【格式】

確認,完成。這樣就二級就應用了一級改變二級提示錯誤,后面依次類推。

 

祝順利完成

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM