如何用VBA將EXCEL格式轉置為資料庫格式

[點擊下載]
各位大大
請益要如何用巨集,或是公式,有效率地做附檔資料的整理(格式希望是由 從=>變成)
(抱歉找不到地方夾EXCEL 只好先上傳print screen圖檔)

如何用VBA將EXCEL格式轉置為資料庫格式


通路/月份/價格/幣別TWD 蝦皮
貨號 品名 202101 202102 202103 202104 202105 202106 202107 202108 202109 202110 202111 202112
084476 紅色上衣L 2,000 2,000 2,000 1,800 1,800 1,800 1,800 1,800 1,800 2,000 2,000 2,000
106228 綠色上衣L 2,050 2,050 2,050 1,845 1,845 1,845 1,845 1,845 1,845 2,050 2,050 2,050
099420 黃色上衣L 2,100 2,100 2,100 1,890 1,890 1,890 1,890 1,890 1,890 2,100 2,100 2,100
071960 灰色上衣L 2,150 2,150 2,150 1,935 1,935 1,935 1,935 1,935 1,935 2,150 2,150 2,150
096864 咖啡色上衣L 2,200 2,200 2,200 1,980 1,980 1,980 1,980 1,980 1,980 2,200 2,200 2,200

如何用VBA將EXCEL格式轉置為資料庫格式

貨號 品名 價格 通路 月份 幣別
084476 紅色上衣L 2,000 蝦皮 202101 TWD
106228 綠色上衣L 2,050 蝦皮 202101 TWD
099420 黃色上衣L 2,100 蝦皮 202101 TWD
071960 灰色上衣L 2,150 蝦皮 202101 TWD
096864 咖啡色上衣L 2,200 蝦皮 202101 TWD
096866 粉色上衣L 2,250 蝦皮 202101 TWD
096699 白色上衣L 2,300 蝦皮 202101 TWD
102137 紫色上衣L 2,350 蝦皮 202101 TWD
101976 黑色上衣L 2,400 蝦皮 202101 TWD
101978 紅色上衣M 2,450 蝦皮 202101 TWD
101980 綠色上衣M 2,500 蝦皮 202101 TWD
121060 黃色上衣M 2,550 蝦皮 202101 TWD
121061 灰色上衣M 2,600 蝦皮 202101 TWD
101064 咖啡色上衣M 2,650 蝦皮 202101 TWD
101259 粉色上衣M 2,700 蝦皮 202101 TWD
101065 白色上衣M 2,750 蝦皮 202101 TWD
101086 紫色上衣M 2,800 蝦皮 202101 TWD
101087 黑色上衣M 2,850 蝦皮 202101 TWD
118015 紅色上衣S 1,950 蝦皮 202101 TWD
118371 綠色上衣S 1,950 蝦皮 202101 TWD
101089 黃色上衣S 1,950 蝦皮 202101 TWD
2021-07-01 21:54 發佈


B2
=IF((ROW()-1)>(ROWS(值!$A$4:$A$8)*COLUMNS(值!$C$3:$Z$3)),"",OFFSET(值!$A$3,IF(MOD(ROW()-1,ROWS(值!$A$4:$A$8))=0,ROWS(值!$A$4:$A$8),MOD(ROW()-1,ROWS(值!$A$4:$A$8))),0))

C2
=IFERROR(VLOOKUP(B2,值!$A$4:$B$8,2,0),"")

D2
=IFERROR(INDEX(值!$C$4:$Z$8,MATCH(B2,值!$A$4:$A$8,0),MATCH(F2,值!$C$3:$N$3,0)+QUOTIENT(ROW()-2,ROWS(值!$A$4:$A$8)*12)*12),"")

E2
=IFERROR(INDEX(值!$C$2:$Z$2,,QUOTIENT(ROW()-2,ROWS(值!$A$4:$A$8)*12)*12+1),"")

F2
=IF(B2="","",OFFSET(值!$B$3,,COUNTIF($B$2:B2,B2)))

G2
=IF(B2="","",SUBSTITUTE(值!$B$2,"幣別",""))
Der,misser1
hellokylie
hellokylie 樓主

可以了耶 太感謝了

2021-07-02 21:40
現在才知道分頁打錯字了.....
B2
=IF((ROW()-1)>(ROWS(從!$A$4:$A$30)*COLUMNS(從!$C$3:$AX$3)),"",OFFSET(從!$A$3,IF(MOD(ROW()-1,ROWS(從!$A$4:$A$30))=0,ROWS(從!$A$4:$A$30),MOD(ROW()-1,ROWS(從!$A$4:$A$30))),0))
C2
=IFERROR(VLOOKUP(B2,從!$A$4:$B$30,2,0),"")
D2
=IFERROR(INDEX(從!$C$4:$AX$30,MATCH(B2,從!$A$4:$A$30,0),MATCH(F2,從!$C$3:$N$3,0)+QUOTIENT(ROW()-2,ROWS(從!$A$4:$A$30)*12)*12),"")
E2
=IFERROR(INDEX(從!$C$2:$AX$2,,QUOTIENT(ROW()-2,ROWS(從!$A$4:$A$30)*12)*12+1),"")
F2
=IF(B2="","",OFFSET(從!$B$3,,COUNTIF($B$2:B2,B2)))
G2
=IF(B2="","",SUBSTITUTE(從!$B$2,"幣別",""))

不過紅字貨號是重複的喔
如果真的沒錯的話,那以上公式就不能用了,會出錯。
hellokylie
hellokylie 樓主

謝謝Paul! 太厲害了

2021-07-05 9:10
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?