作者mibaobao (mibao)
看板Office
標題[問題] 下拉式選單出錯
時間Sat May 5 02:14:25 2018
軟體:EXCEL
版本:2013
因為公司的資料量筆數太繁雜,想做個下拉式選單,但是不管怎麼調整,
第二層篩選都無法成功,因此想請教版上是否有人能解惑。
另外資料重複太多,想在下拉選單時不要出現重複的資料
(我查網路上都是以陣列公式解決,但因為公司資料筆數太多,
以陣列公式處理檔案速度會變得很慢)
相關資料截圖如網址,希望有高手能幫忙解答,感激不盡
https://imgur.com/a/98gohXD 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 12.145.26.203
※ 文章網址: https://www.ptt.cc/bbs/Office/M.1525457671.A.75D.html
→ enjhang: 你現在的需求應該是要以19656 建立第二層選單名稱 05/05 09:57
→ mibaobao: 回樓上,所以我在B欄建立的資料驗證是=indirect(a2),但 05/05 13:07
→ mibaobao: 還是無法出現下拉清單 05/05 13:07
→ soyoso: 因為自訂名稱內並無符合a2(直接以數字做為自訂名稱應也會 05/05 13:34
→ soyoso: 出現錯誤)。所提供的影片應是希望做成這樣 05/05 13:35
→ soyoso: 另外原文所提供的連結內customer對應到id方面是唯一值嗎? 05/05 13:37
→ soyoso: 如果是的話是否也可以函數vlookup來參照回傳 05/05 13:37
→ mibaobao: 回樓上,我在原本活頁簿的名稱定義是以欄位名稱,如cust 05/05 15:36
→ mibaobao: omer id等定義的,非已數字命名,那在選單分頁的b2依舊 05/05 15:36
→ mibaobao: 要依你建議的設定嗎?等等回家試試看~ 05/05 15:36
→ mibaobao: Customer是唯一值沒錯,昨天有想過用vlookup代替,但是 05/05 15:37
→ mibaobao: 其他橘底欄位還是要設定成選單.. 05/05 15:37
→ soyoso: 是非數字命名,但自訂名稱內並無19656(該名稱,且以命名名 05/05 16:18
→ soyoso: 稱的語法不正確) 05/05 16:19
→ soyoso: 可看影片內0:35處的建議設定 05/05 16:21
→ soyoso: 另外如有排序的話,也可以offset配match、countif來抓取 05/05 16:26
→ mibaobao: 回S大,我大致懂你說的無19656的意思了,但我的情況跟影 05/05 19:51
→ mibaobao: 片中的不太一樣,若我是要選取ID,並藉此篩選出該ID相對 05/05 19:53
→ mibaobao: 應的T/N,且ID無排序(因為隨時都有可能往下新增其他ID 05/05 19:54
→ mibaobao: 我剛剛使用s大的方式試著建,但是在T/N欄不會依照A欄產 05/05 19:56
→ mibaobao: 生的ID而更改... 05/05 19:56
→ soyoso: 如同原文連結有排序的話,應是可以 05/05 20:04
→ soyoso: 如是無排序且陣式公式效率不佳的話,也可以將資料轉換一下 05/05 20:22
→ soyoso: 值並存在於自訂名稱內;或於自訂名稱內以offset動態取得該 05/05 20:24
→ soyoso: 欄和計數該欄資料列數 05/05 20:25
→ mibaobao: 回S大,依據你提供的截圖,轉換ID值存在自訂名稱內,那 05/06 09:36
→ mibaobao: 我其他欄位若也要做資料驗證,是不是全部都要轉換? 05/06 09:37
→ soyoso: 所提供的連結需轉換 05/06 10:05
→ mibaobao: 大致上了解了,細節我再研究一下,謝謝兩位的幫忙! 05/06 10:27
→ soyoso: 也可用巨集,worksheet_change觸發事件 05/06 10:33
→ soyoso: 限縮觸發事件儲存格(欄)方面,range.column、range.row或 05/06 10:34
→ soyoso: intersect;迴圈於range.find內,連接&t/n等欄位的字串 05/06 10:34
→ soyoso: 新增清單上則在range.validation的formula1內 05/06 10:34
→ soyoso: 另外可加上判斷a欄如已存在id(曾選取過)的話, 05/06 10:34
→ soyoso: 則複製至指定儲存格range.copy,可不用再次迴圈的動作 05/06 10:35
→ soyoso: 判斷上則以工作表函數countif、match或range.find 05/06 10:35