Board logo

標題: 多層下拉式清單問題 [打印本頁]

作者: 074063    時間: 2015-7-25 15:40     標題: 多層下拉式清單問題

請問多層下拉式清單定義資料一些問題..

如附件:
資料範圍$A:$B                               
篩選不重複分類並列清單於$E:$E                                       
篩選品名符合分類條件(F1:I1)並列清單於$F:$I                                       
於$A:$B資料範圍內新增/刪除資料時,$E:$I能隨即更新資料                                       

以上請教, 或是有更好的方法....
作者: ML089    時間: 2015-7-26 20:44

本帖最後由 ML089 於 2015-7-26 20:45 編輯

定義名稱               
分類        =OFFSET(!$A$2,,,COUNTA(!$A:$A)-1)       
品名        =OFFSET(!$B$2,,,COUNTA(!$A:$A)-1)       
               
E2 {=INDEX(A:A,SMALL(IF(MATCH(分類,A:A,)=ROW(分類),ROW(分類),4^8),ROW(A1)))&""}               
下拉複製公式               
               
F2 {=INDEX($B:$B,SMALL(IF(分類=F$1,ROW(分類),4^8),ROW(A1)))&""}               
右拉下拉複製公式       

{...} 公式需用 CTRL+SHIFT+ENTER 三鍵輸入
作者: 074063    時間: 2015-7-26 23:28

回復 2# ML089

感謝ML089大大解答, 定義名稱時會出現錯誤如圖...請問是什麼原因


    [attach]21501[/attach]
作者: ML089    時間: 2015-7-26 23:40

回復 3# 074063

你的EXCEL版本?

定義名稱               
分類        =OFFSET($A$2,,,COUNTA($A:$A)-1)        
品名        =OFFSET($B$2,,,COUNTA($A:$A)-1)
作者: ML089    時間: 2015-7-26 23:43

回復 5# 074063

=IFERROR(..... , "")
作者: 074063    時間: 2015-7-26 23:44

回復 4# ML089



     Excel版本是2007, 錯誤訊息已解決,=OFFSET(!$A$2,,,COUNTA(!$AA)-1,)  在-1後加上逗號就好了
 但有個問題.... E2 {=INDEX(A:A,SMALL(IF(MATCH(分類,A:A,)=ROW(分類),ROW(分類),4^8),ROW(A1)))&""}  下拉複製公式
 會有#NUM字串, 如何不顯示呢
作者: 074063    時間: 2015-7-26 23:46

回復 5# ML089


    感恩大大指導:D
作者: ML089    時間: 2015-7-27 07:37

回復 6# 074063


     Excel版本是2007, 錯誤訊息已解決,=OFFSET(!$A$2,,,COUNTA(!$AA)-1,)  在-1後加上逗號就好了

我也是用 2007版,不會有此問題,一般 OFFSET後面兩個參數應該是不用輸入,加上逗號後面的值不是變成 0 ,0欄應該是不對?
有些疑惑

不管怎樣能用就好。
作者: 074063    時間: 2015-7-27 08:03

回復 8# ML089


    E2 {=INDEX(A:A,SMALL(IF(MATCH(分類,A:A,)=ROW(分類),ROW(分類),4^8),ROW(A1)))&""}

    請問上述陣列涵數藍色標示處是什麼意思呢
作者: ML089    時間: 2015-7-27 09:29

回復 9# 074063


    E2 {=INDEX(A:A,SMALL(IF(MATCH(分類,A:A,)=ROW(分類),ROW(分類),4^8),ROW(A1)))&""}

ROW(分類) : 資料的列號

4^8 : EXCEL 2003版最後一列

ROW(A1) : 等於 1,往下拉時會改為 ROW(A2) = 2
作者: 074063    時間: 2015-7-28 00:01

回復 10# ML089

 定義名稱                
 分類        =OFFSET(!$A$2,,,COUNTA(!$A:$A)-1)        
 品名        =OFFSET(!$B$2,,,COUNTA(!$A:$A)-1)     

 E2{=IFERROR(INDEX(A:A,SMALL(IF(MATCH(分類,A:A,)=ROW(分類),ROW(分類),4^8),ROW(A1)))&"","")}
 F2 {=IFERROR(INDEX($B:$B,SMALL(IF(分類=F$1,ROW(分類),4^8),ROW(A1)))&"","")} 
 下拉複製公式 

 以上有個問題
 $E:$E資料範圍 另定義一個名稱 "分類一" =OFFSET(!$E$2,,,COUNTA(!$E:$E))
    在J1資料驗證→清單 =分類一
    結果J1下拉式清單沒辦法排除空白值
    請問J1清單是否能只顯示出$E:$E有資料範圍
作者: c_c_lai    時間: 2015-7-28 07:21

回復 6# 074063
請試著將:
E2{=INDEX(A:A,SMALL(IF(MATCH(分類,A:A,)=ROW(分類),ROW(分類),4^8),ROW(A1)))&""}
E2{=IFERROR(INDEX(A:A,SMALL(IF(MATCH(分類,A:A,)=ROW(分類),ROW(分類),4^8),ROW(A1)))&"","")}
F2 {=IFERROR(INDEX($B:$B,SMALL(IF(分類=F$1,ROW(分類),4^8),ROW(A1)))&"","")}
等等修改為:
E2={INDEX(A:A,SMALL(IF(MATCH(分類,A:A,)=ROW(分類),ROW(分類),4^8),ROW(A1)))&""}
E2={IFERROR(INDEX(A:A,SMALL(IF(MATCH(分類,A:A,)=ROW(分類),ROW(分類),4^8),ROW(A1)))&"","")}
F2={IFERROR(INDEX($B:$B,SMALL(IF(分類=F$1,ROW(分類),4^8),ROW(A1)))&"","")}
然後再看看結果如何?
作者: 074063    時間: 2015-7-28 08:11

本帖最後由 074063 於 2015-7-28 08:12 編輯

回復 12# c_c_lai


    c_c_lai 大大, 看了一下涵數好像都一樣, 只是把{括弧移至=等號右側, 結果涵數錯誤
作者: ML089    時間: 2015-7-28 10:08

回復 11# 074063

$E:$E資料範圍 另定義一個名稱 "分類一" =OFFSET(!$E$2,,,COUNTA(!$E:$E))
    在J1資料驗證→清單 =分類一
    結果J1下拉式清單沒辦法排除空白值

回覆
$E$1 若有表頭時,請修改如下
名稱 "分類一" =OFFSET(!$E$2,,,COUNTA(!$E:$E)-1)
作者: 074063    時間: 2015-7-28 12:36

回復  074063

$EE資料範圍 另定義一個名稱 "分類一" =OFFSET(!$E$2,,,COUNTA(!$EE))
    在J1資料 ...
ML089 發表於 2015-7-28 10:08



名稱: 分類一    =OFFSET(!$E$2,,,COUNTA(!$E:$E)-1) 試了下拉清單還是有空白值

分類一 $E:$E 資料來自 E2{=IFERROR(INDEX(A:A,SMALL(IF(MATCH(分類,A:A,)=ROW(分類),ROW(分類),4^8),ROW(A1)))&"","")}
作者: ML089    時間: 2015-7-28 15:57

回復 15# 074063

名稱: 分類一    =OFFSET(!$E$2,,,COUNTA(!$E:$E)-1) 試了下拉清單還是有空白值

分類一 $E:$E 資料來自 E2{=IFERROR(INDEX(A:A,SMALL(IF(MATCH(分類,A:A,)=ROW(分類),ROW(分類),4^8),ROW(A1)))&"","")}


儲存格內有公式對COUNTA函數都認為有東西,所以有公式的儲存格不能使用COUNTA直接計數


COUNTA(!$E:$E)-1 改為 COUNTIF($E:$E,">=A") 看看可不可以
作者: 074063    時間: 2015-7-28 16:41

回復 16# ML089


    可以了,  謝謝你:)

    想問一下,">=A"是何意思
作者: ML089    時間: 2015-7-28 17:08

回復 17# 074063



想問一下,">=A"是何意思

就是字首大於等於 A的字碼


一般字碼排列是 .... 數字 0 1 2 .....大寫 A B C .....小寫 a b c .....中文字




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)