Page 1 of 1
เรียงข้อมูลใหม่แบบ (Transpose)
Posted: Wed Apr 10, 2019 4:26 pm
by Polly
สวัสดีค่ะอาจารย์ทุกท่าน
มีสูตรที่จะช่วยให้ข้อมูลเรียงไปทางขวา โดยมีเงื่อนไขแบบนี้ไหมคะ
ข้อมูลพื้นฐาน Member type (00=พนักงาน, 1X=คู่สมรส, 2X=บุตร)
- รายการที่มี Member Type ที่เป็น 00 อย่างเดียวไม่ต้องนำมา
- ครอบครัวเดียวกันจะมี Member No เลขเดียวกัน โดยต้องการให้ข้อมูลจะเรียงตามลำดับไปทางด้านขวา วางที่ชีท Transpose ลำดับดังนี้ พนักงาน คู่สมรส และบุตร
ขอบคุณค่ะ
Re: เรียงข้อมูลใหม่แบบ (Transpose)
Posted: Wed Apr 10, 2019 6:20 pm
by snasui

ดูแล้วไม่เข้าใจครับ
ช่วยอธิบายเพิ่มเติมในชีต Transpose นำข้อมูลจากคอลัมน์ไหน เซลล์ไหน ของชีต Original Database มาแสดง พิจารณาอย่างไรจึงนำมาแสดงเช่นนั้น จะได้สะดวกต่อการทำความเข้าใจครับ
Re: เรียงข้อมูลใหม่แบบ (Transpose)
Posted: Thu Apr 11, 2019 9:45 am
by Polly
เรียน อาจารย์
หนูเพิ่มเติมรายละเอียดมาอธิบายใหม่ในไฟล์แนบค่ะ รบกวนอีกครั้งค่ะ
Re: เรียงข้อมูลใหม่แบบ (Transpose)
Posted: Thu Apr 11, 2019 10:31 am
by snasui

ตัวอย่างสูตรตามด้านล่างครับ
- ที่ G5 คีย์
=IFERROR(INDEX('Original Database'!$G$2:$G$30&"-00",SMALL(IF(COUNTIF('Original Database'!$G$2:$G$30,'Original Database'!$G$2:$G$30)>1,IF('Original Database'!$I$2:$I$30="00",ROW('Original Database'!$G$2:$G$30)-ROW('Original Database'!$G$2)+1)),ROWS(G$5:G5))),"")
Ctrl+Shift+Enter > Copy ลงด้านล่าง
- ที่ H5 คีย์
=IFERROR(INDEX('Original Database'!$H$2:$H$30,SMALL(IF(COUNTIF('Original Database'!$G$2:$G$30,'Original Database'!$G$2:$G$30)>1,IF('Original Database'!$I$2:$I$30="00",ROW('Original Database'!$G$2:$G$30)-ROW('Original Database'!$G$2)+1)),ROWS(H$5:H5))),"")
Ctrl+Shift+Enter > Copy ลงด้านล่าง
- ที่ I5 คีย์
=IFERROR(INDEX('Original Database'!$Z$2:$Z$30,SMALL(IF(COUNTIF('Original Database'!$G$2:$G$30,'Original Database'!$G$2:$G$30)>1,IF('Original Database'!$I$2:$I$30="00",ROW('Original Database'!$G$2:$G$30)-ROW('Original Database'!$G$2)+1)),ROWS(I$5:I5))),"")
Ctrl+Shift+Enter > Copy ลงด้านล่าง
- ที่ K5 คีย์
=SUMPRODUCT(--(LEFT(G5,6)='Original Database'!$G$2:$G$30),--("10"='Original Database'!$I$2:$I$30),'Original Database'!$BG$2:$BG$30)
Enter > Copy ลงด้านล่าง
- ที่ L5 คีย์
=SUMPRODUCT(--(LEFT(G5,6)='Original Database'!$G$2:$G$30),--("20"='Original Database'!$I$2:$I$30),'Original Database'!$BG$2:$BG$30)
Enter > Copy ลงด้านล่าง
- ที่ N5 คีย์
=IF(COUNTIFS('Original Database'!$G$2:$G$30,LEFT(G5,6),'Original Database'!$I$2:$I$30,"10")>0,LEFT(G5,6)&"-10","")
Enter > Copy ลงด้านล่าง
- ที่ O5 คีย์
=IF(N5<>"",LOOKUP(2,1/('Original Database'!$G$2:$G$30&"-"&'Original Database'!$I$2:$I$30=N5),'Original Database'!$Z$2:$Z$30),"")
Enter > Copy ลงด้านล่าง
- ที่ P5 คีย์
=IF(N5="","",LOOKUP(2,1/('Original Database'!$G$2:$G$30&"-"&'Original Database'!$I$2:$I$30=N5),'Original Database'!$H$2:$H$30))
Enter > Copy ลงด้านล่าง
- ที่ Q5 คีย์
=IF(SUMPRODUCT(--('Original Database'!$G$2:$G$30&"-"&'Original Database'!$I$2:$I$30=LEFT(G5,6)&"-20"))>0,LEFT(G5,6)&"-20","")
Enter > Copy ลงด้านล่าง
- ที่ R5 คีย์
=IF(Q5="","",LOOKUP(2,1/('Original Database'!$G$2:$G$30&"-20"=Q5),'Original Database'!$Z$2:$Z$30))
Enter > Copy ลงด้านล่าง
- ที่ S5 คีย์
=IF(Q5="","",LOOKUP(2,1/('Original Database'!$G$2:$G$30&"-20"=Q5),'Original Database'!$H$2:$H$30))
Enter > Copy ลงด้านล่าง
- ที่ T5 คีย์
=IF(SUMPRODUCT(--('Original Database'!$G$2:$G$30&"-"&'Original Database'!$I$2:$I$30=LEFT(G5,6)&"-21"))>0,LEFT(G5,6)&"-21","")
Enter > Copy ลงด้านล่าง
- ที่ U5 คีย์
=IF(T5="","",LOOKUP(2,1/('Original Database'!$G$2:$G$30&"-21"=T5),'Original Database'!$Z$2:$Z$30))
Enter > Copy ลงด้านล่าง
- ที่ V5 คีย์
=IF(T5="","",LOOKUP(2,1/('Original Database'!$G$2:$G$30&"-21"=T5),'Original Database'!$H$2:$H$30))
Enter > Copy ลงด้านล่าง
!
| Note: Ctrl+Shift+Enter
เป็นการสร้างสูตร Array โดยสามารถเลือกดำเนินการตามข้อ 1 หรือ 2 ด้านล่าง
- กรณีคีย์สูตรเอง เมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น
Ctrl และ Shift พร้อมกันค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array
- กรณี Copy สูตรไปวางให้กดแป้น F2 เพื่อทำการ Edit Cell นั้นก่อน
จากนั้นกดแป้น Ctrl และ Shift พร้อมกันค้างไว้แล้วตามด้วย Enter เพื่อสร้างเป็นสูตร Array
- หากกดแป้นถูกต้องสูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น {=YourFormulas(...)}
ปีกกานี้ไม่สามารถคีย์เข้าไปเอง จะต้องมาด้วยการกดแป้น Ctrl+Shift+Enter เท่านั้น
ถ้ายังไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง
- การแก้ไขเปลี่ยนแปลงสูตร Array จะต้องกดแป้นให้รับสูตรด้วย Ctrl+Shift+Enter ทุกครั้ง
|
Re: เรียงข้อมูลใหม่แบบ (Transpose)
Posted: Thu Apr 11, 2019 11:10 am
by Polly
ทำได้ตามต้องการเลยค่ะ อาจารย์สุดยอดค่ะ ขอบคุณมากค่ะ
