下面是一位網友的問題:
“……最前面的單元格是大類,后面一個是大類里面的小類,再后面是小類里面的分類。我選個大類,依次往后選,最后是分類……”
也就是說,要在Excel中創建級聯列表。
這里,介紹一種簡單的方法,需要定義名稱、使用數據有效性、以及使用INDIRECT函數。
假設需要創建級聯列表的數據如下所示:
當選擇第一級中的“圖書”時,第二級中會出現“計算機、文學、教材”三個項目,當選擇第二級中的“計算機”項時,第三級中會出現“匯編語言、C程序設計、VBA手冊”三個項目。
我們先把這些數據輸入到Excel工作表中,并定義相應的名稱,如下所示。
將單元格區域A1:A2定義為“分類”;將單元格區域B1:B3定義為“圖書”,C1:C3定義為“文具”;將單元格區域D1:D3定義為“計算機”,E1:E3定義為“文學”,F1:F3定義為“教材”;將單元格區域G1:G2定義為“辦公用紙”,H1:H3定義為“桌面用品”,I1:I3定義為“書寫工具”。
至此,示例中的數據定義完畢。可以發現一個規律,即第二級的名稱就是第一級的文字內容,第三級的名稱就是第二級的文字內容。
接下來,設置數據有效性(在Excel 2010中改為“數據驗證”)。
選中要設置數據有效性的單元格,本例中為單元格L1,選擇設置條件為“序列”,在“來源”中輸入“=分類”。(還記得嗎?“分類”就是我們定義的單元格區域A1:A2的名稱)。這是第一級項目的單元格。
選中要顯示第二級項目的單元格,本例中是單元格O1,設置“來源”為公式“=INDIRECT(L1)”。
選中要顯示第三級項目的單元格,本例中是單元格R1,設置“來源”為公式“=INDIRECT(O1)”。
“數據驗證”對話框中設置的結果如下所示。
大功告成!如下所示:
選擇單元格L1中的項目,單元格O1中出現相應的子項目;選擇單元格O1中的項目后,單元格R1中出現相應的第三級項目。
注意,當改變單元格L1或單元格O1中的選擇后,需要再次重選單元格O1和單元格R1中的項目。Excel不會因為上一級單元格內容的改變而相應自動更改下一級單元格中的內容,只有靠用戶自已來改變。