Excel的資料轉置問題

2012-11-22 8:17 pm
我有個Excel的資料
店名 產品負責人1負責人2負責人3
第一店A產品User01User02
第一店B產品User03User01
第二店C產品User05User07
第二店D產品User06User01User08
第二店E產品User02User04
....

資料會持續增長

現在因為想要將其匯入到資料庫,但是這種資料排列方式不方便匯入
所以想要在Excel中利用Function去處理成下面這種排列

店名 產品負責人
第一店A產品User01
第一店A產品User02
第一店B產品User03
第一店B產品User01
第二店C產品User05
第二店C產品User07
第二店D產品User06
第二店D產品User01
第二店D產品User08
第二店E產品User02
第二店E產品User04
.....

請問有方法可以達這樣的效果嗎?

PS.因為店、產品、負責人都可能會增加(負責人後來可能會變成4或5人等等)
所以有辦法可以讓excel自動排列嗎?
更新1:

請問cjw 我使用了你的方法,是可以運作的,但是若是我負責人增加到6人,就只會顯示4人,其他兩人會出現錯誤 請問C2部分要調整哪個參數??

回答 (3)

2012-11-30 9:53 pm
✔ 最佳答案
A2公式=INDEX(Sheet1!A:A,SMALL(IF(Sheet1!$C$2:$E$200<>"",ROW($2:$200),4^8),ROW(1:1)))&""
陣列公式輸入完後按住ctrl+shift再按enter鍵往右至B欄往下填滿。

2012-11-23 09:28:37 補充:
承上
C2公式=IF(A2="","",INDIRECT("Sheet1!"&ADDRESS(SMALL(IF(Sheet1!$C$2:$E$200<>"",ROW($2:$200),4^8),ROW(1:1)),

2012-11-23 09:28:49 補充:
承上
SMALL(IF(INDIRECT("Sheet1!"&ADDRESS(MATCH(B2,Sheet1!B:B,),3)&":"&ADDRESS(MATCH(B2,Sheet1!B:B,),6))<>"",COLUMN($C:$F),99),COUNTIF($B$2:B2,B2)))))
陣列公式

2012-11-23 09:29:19 補充:
承上
下載地址
http://www.FunP.Net/498871

2012-11-27 14:38:50 補充:
TO版大:
只要改變範圍即可,將所有有關Sheet1!$C$2:$E$200範圍加大改成Sheet1!$C$2:$G$200
版主試試看!

2012-11-27 14:52:46 補充:
承上
並將以下公式ADDRESS(MATCH(B2,Sheet1!B:B,),6))<>"",COLUMN($C:$F),99),中的6改7,$F改為G即可
<參考檔>
http://www.FunP.Net/311310

2012-11-30 13:53:25 補充:
A2公式=INDEX(Sheet1!A:A,SMALL(IF(Sheet1!$C$2:$E$200<>"",ROW($2:$200),4^8),ROW(1:1)))&""
陣列公式輸入完後按住ctrl+shift再按enter鍵往右至B欄往下填滿。

C2公式=IF(A2="","",INDIRECT("Sheet1!"&ADDRESS(SMALL(IF(Sheet1!$C$2:$E$200<>"",ROW($2:$200),4^8),ROW(1:1)), SMALL(IF(INDIRECT("Sheet1!"&ADDRESS(MATCH(B2,Sheet1!B:B,),3)&":"&ADDRESS(MATCH(B2,Sheet1!B:B,),6))<>"",COLUMN($C:$F),99),COUNTIF($B$2:B2,B2)))))
陣列公式

要改變範圍,請將所有有關Sheet1!$C$2:$E$200範圍加大改成Sheet1!$C$2:$J$200並將以下公式ADDRESS(MATCH(B2,Sheet1!B:B,),6))<>"",COLUMN($C:$F),99),中的6改10,$F改為$J即可
<參考檔>
http://www.FunP.Net/311310
2012-11-27 4:02 am
要從源頭做起,既然還會再增加新的資料,則要設計新的表格讓新的資料會依照新的格式出現才能一勞永逸。
2012-11-23 5:37 pm
日前有位大師利用如下:

INDIRECT(TEXT(SMALL((.........)*65536001+ROW(........)*1000+COLUMN(.........),ROW($A1)),"!R0!C000"),)&""

可以找出問題中的個別負責人. 再依此公式找出問題中的店名 及 產品.
以上僅供參考.


收錄日期: 2021-04-27 19:58:41
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20121122000015KK02224

檢視 Wayback Machine 備份