2016年7月11日 星期一

EXCEL 連動式下拉選單設計 TIPTOP

1. 如何準備機種與料號資料表
for ORACLE . 是用以下的指令來產生HTML  TABLE 的資料.方便COPY /PAST 到EXCEL.
1.1執行以下指令.
select '<tr><td>' || imaud01 || '</td><td>'|| pono|| '</td></tr>'  from
(
select imaud01,  listagg( ima01,'</td><td>')  WITHIN  GROUP (ORDER BY imaud01) "PONO"  from  ima_file where ( ( ima01 like '01%' and substr(ima01,12,1) <>'0' ) or ima01 like '0T%'  ) and ima06 between '11' and '14'
group by imaud01
)
1.2 並把編輯資料存成 XXXX.HTML 檔, 檔案開頭請加上
<html><body><table border="1">
檔尾請加上
</table></body></html>

2. 使用BROWSER 開啟 XXXX.HTML
3.在BROWSER 中使用全選/COPY 的方式將資料貼到EXCEL 工作表中.
4.在sheet2 中的A1 下, 選 資料>資料工具>資料驗證
儲存格內允許:清單
來源: =工作表1!$A:$A

5.建立機種名稱
5.1在sheet1 中全部(ctrl+A)
5.2 公式>從選取範圍建立
5.3 只勾選最左欄
 
6.1 excel 會自動建立好所有機種名稱
7. 再次建資料驗證
7.1 點選sheet2 B1 欄.
7.2 資料>資料工具>資料驗證
7.3 儲存格內允許:清單
7.4 來源: ==INDIRECT(SUBSTITUTE(A1,"-","_",1))
OK
這樣B1 的下拉就會因為A1不同而有所不同.
 
 
step 1,2,3 可以自己寫成WEB PAGE 後再由EXCEL 中的 資料>新查詢>其他來源.
還沒有空去TEST.
 
 
 
 
 

 
 

ORACLE 11 G 以上新功能. 把列中的欄文字, 加成一欄.

select rvv31 , listagg( rvv36,',')  WITHIN GROUP (ORDER BY rvv31) "PONO" , sum(rvv17) 六月庫入數量  from gwt.rvv_file, gwt.rvu_file where rvv01=rvu01  and rvuconf ='Y' and
 rvu03 >= to_date('2016/06/01','yyyy/MM/dd') and rvu03 < to_date('2016/07/01','yyyy/MM/dd')
 group by rvv31


機種料號清單.
select '<tr><td>' || imaud01 || '</td><td>'|| pono|| '</td></tr>'  from
(
select imaud01,  listagg( ima01,'</td><td>')  WITHIN  GROUP (ORDER BY imaud01) "PONO"  from  ima_file where ( ( ima01 like '01%' and substr(ima01,12,1) <>'0' ) or ima01 like '0T%'  ) and ima06 between '11' and '14'
group by imaud01
)
這東西所產生出來的資料可以加工後放到EXCEL 中. 並配合 indirect() 的東西來作.....