
示例一:設計三個(gè)下拉框菜單,即大分類(lèi)(Category Name),子分類(lèi)(Sub Category Name)及產(chǎn)品名(Produt Name), 產(chǎn)品名下拉內容對應上層分類(lèi)菜單的選項。
1 基本思路:如何實(shí)現二級級聯(lián)下拉框,即子分類(lèi)與大分類(lèi)的聯(lián)動(dòng):
a. 使用數據有效性(Data Validation)實(shí)現下拉框。
b. 子分類(lèi)(Sub Category Name)(二級下拉框)有效性數據范圍運用Offset + Match + Countif/Countifs公式
關(guān)鍵步驟:
1)
在上述輔助表的基礎上,例如:大分類(lèi)“Category Name 02”中所有子分類(lèi)“Sub Category Name 04-06”的數據范圍如何???如果運用Offset公式的話(huà),下列2) - 4) 是主要考慮因素。
2)從哪個(gè)數據開(kāi)始
從輔助表“Category Name”表標題(tmpStart)開(kāi)始。
3)往下移動(dòng)幾個(gè)位置(Match公式)
=MATCH(CategoryName,tmpColumn,0)
公式大意是所選的大分類(lèi)(一級下拉框)在輔助表Category Name列(tmpColumn)中匹配的第一個(gè)位置,“Category Name 02”返回5
4)符合條件的數據有幾個(gè)(countif公式)
=COUNTIF(tmpColumn,CategoryName)
“Category Name 02”返回3
有了上述數據,對子分類(lèi)(二級下拉框)設置“序列”(List)數據有效性,并設如下公式。
=OFFSET(tmpStart,MATCH(CategoryName,tmpColumn,0)-1,1,COUNTIF(tmpColumn,CategoryName),1)
2 如果產(chǎn)品(三級下拉框)與上級分類(lèi)呈下表(表二)關(guān)系,且子分類(lèi)Sub Category Name(二級)對應唯一一個(gè)大分類(lèi)(一級),對產(chǎn)品(三級下拉框)設置序列有效性,并設下列公式,同基本思路。
表二:
=OFFSET(subCategoryStart,MATCH(subCategoryName,subCategoryColumn,0)-1,1,COUNTIF(subCategoryColumn,subCategoryName),1)
如果子分類(lèi)Sub Category(二級)對應上級大分類(lèi)存在重復,如表三所示,則產(chǎn)品(三級下拉框)的設計稍微會(huì )復雜些,具體請閱“示例二”部分。
表三:

3 產(chǎn)品(三級下拉框)設計的關(guān)鍵步驟:
依舊遵循示例一的思路(數據有效性 + Offset)設計產(chǎn)品(三級下拉框)。
1)從哪個(gè)數據開(kāi)始
2)往下移動(dòng)幾個(gè)位置(Match + Indirect公式),即在表三中符合所選大分類(lèi)(一級)與子分類(lèi)(二級)的第一個(gè)位置是什么。
a. 符合所選大分類(lèi)(一級)的第一個(gè)位置
= MATCH(CategoryName,categoryColumn,0)
例如:“Category Name 02”大分類(lèi),返回12
b.符合所選大分類(lèi)(一級)的數據范圍
Range = StartRow:EndRow
StartRow = MATCH(CategoryName,categoryColumn,0), 即1)的結果
EndRow = COUNTIF(categoryColumn,CategoryName) + startRow -1
Range ="E" & startRow &
例如:“Category Name 02”大分類(lèi)的數據范圍是E12:E25。
c.所選子分類(lèi)(二級)在所選大分類(lèi)(一級)數據范圍中的第一個(gè)位置
subStartRow = MATCH(subCategoryName,INDIRECT(Range),0)
例如:“Category Name 02”(一級)-->“M”(二級)返回5
d.向下偏移量
downRows = startRow -1+ subStartRow -1
例如:“Category Name 02”(一級)-->“M”(二級)返回15
3) 符合條件的數據有幾個(gè)(Countifs)
在表三中,既符合所選大分類(lèi)又符合所選子分類(lèi)的個(gè)數
Rows =COUNTIFS(categoryColumn,CategoryName,subcategorycolumn,subcategoryName)
4) 基于上述1-3,產(chǎn)品(三級下拉框)序列有效性設置下列公式。
=OFFSET(subCategoryStart,downRows,1,Rows,1)
基于上述兩個(gè)示例,我們還可考慮
4 如何設計級聯(lián)下拉框中的“ALL”?
5 若需復選選項,又如何設計?
對Offset, Indirect, countif/countifs的基本使用,請閱相關(guān)文章。
發(fā)現一個(gè)Excel技巧應用網(wǎng)址,內容挺全面,推薦,http://www.contextures.com/tiptech.html
聯(lián)系客服