Board logo

標題: [發問] 動態兩層下拉式選單 [打印本頁]

作者: bridetobe    時間: 2014-8-8 10:39     標題: 動態兩層下拉式選單

[attach]18865[/attach]

想請問雙層動態下拉式選單的一些問題
利用品名清單的資料建立"廠商名"還有各個廠商的商品
然後在採購明細中
E欄使用動態的驗證
希望以後能在品名清單中持續增加廠商 (不管是增加在前面或後面都可以)
可是F欄卻無法使用
品名清單中廠商的商品也希望可以持續增加
F欄包含很多空白資料
找了很多資料了 但是好像都行不通

請問是範圍地方輸入錯誤嗎?還是有甚麼定義名稱的部份錯誤呢?
作者: p212    時間: 2014-8-8 11:38

本帖最後由 p212 於 2014-8-8 11:47 編輯

回復 1# bridetobe
1、定義名稱「廠商名」之參照到建議修改成
=OFFSET(品名清單!$A$1,,,,COUNTA(品名清單!$1:$1))
2、另新定義名稱「Rng」,參照到輸入
=品名清單!$A$1:$Z$26
3、滑鼠點按「採購明細」工作表之儲存格F2,驗證資料來源輸入
=OFFSET(品名清單!$A$2,,MATCH($E2,廠商名,)-1,COUNTA(INDEX(Rng,0,MATCH($E2,廠商名,)))-1)
以儲存格F2為模板向下複製即可
4、名稱管理員中,除定義名稱「廠商名」與「Rng」外,其餘建議可刪除。
請參考!
作者: bridetobe    時間: 2014-8-8 12:01

回復 2# p212

謝謝
想請問第三點
F2 資料驗證輸入=OFFSET(品名清單!$A$2,,MATCH($E2,廠商名,)-1,COUNTA(INDEX(Rng,0,MATCH($E2,廠商名,)))-1)
EXCEL顯示 您不能在資料驗證的準則中參照到其他工作表或活頁簿

這樣該如何解決
作者: p212    時間: 2014-8-8 12:40

本帖最後由 p212 於 2014-8-8 12:43 編輯

回復 3# bridetobe
Sorry!没注意到資料驗證跨工作表!
1、定義名稱「Start」,參照到輸入
=品名清單!$A$2
2、F2 資料驗證輸入=OFFSET(Start,,MATCH($E2,廠商名,)-1,COUNTA(INDEX(Rng,0,MATCH($E2,廠商名,)))-1)
請參考!
作者: bridetobe    時間: 2014-8-8 14:55

回復 4# p212


嗯...F欄部分沒辦法依照E欄的廠商對應出廠商有的產品
  EX E欄選豪品 應該要跑出下拉式選單只有乳膠手套528
      但是沒有 卻跑出飲用水和清機費
[attach]18868[/attach]

真抱歉問題很多><
作者: p212    時間: 2014-8-8 15:19

本帖最後由 p212 於 2014-8-8 15:23 編輯

回復 5# bridetobe
1、請複製原檔案(另起檔名),清空F欄資料,再依照上述作法整理定義名稱與設定儲存格F2之資料驗證(其動態清單功能應該没問題)。
2、以採購明細工作表之儲存格F2(空白格)為模板,向下拖移複製套用清單格式。
3、若不想重新輸入F欄資料,則複製原檔案的F欄資料,以「貼上值」的方式填入資料即可。
請參考!
作者: bridetobe    時間: 2014-8-8 15:40

本帖最後由 bridetobe 於 2014-8-8 15:41 編輯

回復 6# p212


謝謝 上面的問題都解決了
但是就是我在新增廠商時
再B欄以及AB欄各新增一個廠商和一個產品
[attach]18870[/attach]
在回到下拉式選單
123可以找出品名456
777卻找不出品名888
[attach]18869[/attach]
作者: p212    時間: 2014-8-8 16:08

回復 7# bridetobe
請調整定義名稱「Rng」的「參照到」範圍
例如=品名清單!$A$1:$Z$26
調整為=品名清單!$A$1:$AB$26
請參考!
作者: Hsieh    時間: 2014-8-8 16:11

本帖最後由 Hsieh 於 2014-8-8 16:12 編輯

回復 7# bridetobe
把資料庫轉置作對照表的作法並不是好方法
再說那麼多定義名稱會累死人(每增廠商就要增加名稱)
將品項清單資料以A欄作排序
把第3個工作表捨棄,建立以下4個名稱
a=OFFSET(品項清單!$A$2,,,COUNTA(品項清單!$A:$A)-1,)
s=COUNTA(a)
x=OFFSET(品項清單!$B$1,MATCH(採購明細!$E2,品項清單!$A:$A,0)-1,,COUNTIF(品項清單!$A:$A,採購明細!$E2),)
廠商名=OFFSET(品項清單!$H$2,,,65536-COUNTBLANK(品項清單!$H:$H)-1,)
直接在品項清單工作表H2輸入陣列公式
=IF(ROW(採購明細!A1)>SUM(1/COUNTIF(a,a)),"",INDEX(a,SMALL(IF(COUNTIF(OFFSET(INDEX(a,1,1),,,ROW(INDIRECT("A1:A"&s)),),a)=1,ROW(INDIRECT("A1:A"&s)),""),ROW(採購明細!A1))))
下拉至出現空白
採購明細E欄驗證
=廠商名
採購明細F欄驗證
=x
   [attach]18871[/attach]
作者: bridetobe    時間: 2014-8-15 21:12

回復 8# p212


  了解了!非常謝謝!
作者: bridetobe    時間: 2014-8-15 21:13

回復 9# Hsieh


  一開始也認為這樣較不彈性,但一時要使用還沒有想到較好的方法
謝謝版大提供這個方法
我會再試試看




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