Page 1 of 1

ช่วยทีครับ ต้องการแปลงข้อมูลตามคอลัม ออกเป็นแถว ตามรหัส IDซ้

Posted: Wed Dec 08, 2010 2:16 pm
by ViperX06
ตรงคอลัม Code ครับ ต้องการให้ Code มาเรียงเป็นแถวตามวันและ ID2
ID1 ID2 DATE Code
2631356 4361000 14/ต.ค./2009 X6984
2631356 4417322 18/พ.ย./2009 X5140
2631356 4417322 18/พ.ย./2009 X6984
2631356 4513827 19/ม.ค./2010 X5140
2508053 4646242 08/เม.ย./2010 X525
2508053 4702612 14/พ.ค./2010 X7505
2508053 4702612 14/พ.ค./2010 X525
2791042 5029841 18/พ.ย./2010 X7087
2791042 5054429 02/ธ.ค./2010 X7087
2507173 4680703 30/เม.ย./2010 X7501
2507173 4691094 07/พ.ค./2010 X6984
2507173 4691094 07/พ.ค./2010 X6684
2507173 4899842 06/ก.ย./2010 X571
2507173 4899842 06/ก.ย./2010 X7501
2507173 4899842 06/ก.ย./2010 X6984

เป็น

ID1 ID2 DATE Code1 Code2 Code3
2631356 4361000 14/ต.ค./2009 X6984
2631356 4417322 18/พ.ย./2009 X5140 X6984
2631356 4513827 19/ม.ค./2010 X5140
2508053 4646242 08/เม.ย./2010 X525
2508053 4702612 14/พ.ค./2010 X7505 X525
2791042 5029841 18/พ.ย./2010 X7087
2791042 5054429 02/ธ.ค./2010 X7087
2507173 4680703 30/เม.ย./2010 X7501
2507173 4691094 07/พ.ค./2010 X6984 X6684
2507173 4899842 06/ก.ย./2010 X571 X7501 X6984

จะทำอย่างไรครับ
ถ้านำเข้า Access หรือ MySQL จะมีคำสั่งอะไรช่วยได้ครับ
หรือว่าใช้ Excel ดีที่สุด ข้อมูลแบบนี้มีเยอะมาก นั่งทำทีละอันตาลายมาก ขอบคุณครับ

Re: ช่วยทีครับ ต้องการแปลงข้อมูลตามคอลัม ออกเป็นแถว ตามรหัส

Posted: Wed Dec 08, 2010 3:04 pm
by snasui
:D สามารถใช้สูตรแบบ Array มาช่วยได้ครับ แต่กรณีข้อมูลจำนวนมากอาจส่งผลให้คำนวณช้าลง

จากไฟล์ที่แนบมาสามารถทำตามลำดับดังนี้ครับ

1. ที่เซลล์ E2 คีย์สูตรเพื่อสร้าง Index เอาไว้ใช้อ้างอิง

=A2&B2&C2

Enter > Copy ลงด้านล่าง

2. ที่ G1 คีย์สูตรเพื่อนับว่าค่าตามข้อ 1 ที่ไม่ซ้ำมีกี่รายการ

=SUMPRODUCT(1/COUNTIF(E2:E16,E2:E16))

Enter

3. ที่ G4 คีย์สูตรเพื่อ List ID1, ID2, Date

=IF(ROWS(G$4:G4)>$G$1,"",INDEX(A$2:A$16,SMALL(IF(MATCH($E$2:$E$16,$E$2:$E$16,0)=ROW($E$2:$E$16)-ROW($E$2)+1,ROW($E$2:$E$16)-ROW($E$2)+1),ROWS(G$4:G4))))

Ctrl+Shift+Enter > Copy ไปทางขวาและลงด้านล่างถึง I13

4. ที่ J4 คีย์สูตรเพื่อ List Code

=LOOKUP(CHAR(255),CHOOSE({1,2},"",INDEX($D$2:$D$16,SMALL(IF($G4=$A$2:$A$16,IF($H4=$B$2:$B$16,IF($I4=$C$2:$C$16,ROW($A$2:$A$16)-ROW($A$2)+1))),COLUMNS($J4:J4)))))

Ctrl+Shift+Enter > Copy ไปทางขวาและลงด้านล่างถึง L13

Note: สูตรตามข้อ 3 และ 4 นั้นเป็นสูตรแบบ Array จะกดแป้นให้รับสูตรด้วย Enter อย่างเดียวไม่ได้ครับ การสร้าง ปรับปรุง แก้ไขสูตรข้างต้น จะต้องกดแป้นให้รับสูตรด้วย Ctrl+Shift+Enter เสมอ หากกดแป้นถูกต้องจะเห็นเครื่องหมายปีกกาคร่อมสูตร เครื่องหมายปีกกานีจะคีย์เข้าไปเองไม่ได้ครับ

Re: ช่วยทีครับ ต้องการแปลงข้อมูลตามคอลัม ออกเป็นแถว ตามรหัส

Posted: Wed Dec 08, 2010 9:32 pm
by ViperX06
ขอบคุณครับ