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
:D ดูแล้วไม่เข้าใจครับ

ช่วยอธิบายเพิ่มเติมในชีต 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
:D ตัวอย่างสูตรตามด้านล่างครับ
  1. ที่ 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 ลงด้านล่าง
  2. ที่ 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 ลงด้านล่าง
  3. ที่ 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 ลงด้านล่าง
  4. ที่ 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 ลงด้านล่าง
  5. ที่ 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 ลงด้านล่าง
  6. ที่ 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 ลงด้านล่าง
  7. ที่ 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 ลงด้านล่าง
  8. ที่ 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 ลงด้านล่าง
  9. ที่ 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 ลงด้านล่าง
  10. ที่ R5 คีย์
    =IF(Q5="","",LOOKUP(2,1/('Original Database'!$G$2:$G$30&"-20"=Q5),'Original Database'!$Z$2:$Z$30))
    Enter > Copy ลงด้านล่าง
  11. ที่ S5 คีย์
    =IF(Q5="","",LOOKUP(2,1/('Original Database'!$G$2:$G$30&"-20"=Q5),'Original Database'!$H$2:$H$30))
    Enter > Copy ลงด้านล่าง
  12. ที่ 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 ลงด้านล่าง
  13. ที่ U5 คีย์
    =IF(T5="","",LOOKUP(2,1/('Original Database'!$G$2:$G$30&"-21"=T5),'Original Database'!$Z$2:$Z$30))
    Enter > Copy ลงด้านล่าง
  14. ที่ 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 ด้านล่าง
  1. กรณีคีย์สูตรเอง เมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น
    Ctrl และ Shift พร้อมกันค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array
  2. กรณี Copy สูตรไปวางให้กดแป้น F2 เพื่อทำการ Edit Cell นั้นก่อน
    จากนั้นกดแป้น Ctrl และ Shift พร้อมกันค้างไว้แล้วตามด้วย Enter เพื่อสร้างเป็นสูตร Array
  3. หากกดแป้นถูกต้องสูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น {=YourFormulas(...)}
    ปีกกานี้ไม่สามารถคีย์เข้าไปเอง จะต้องมาด้วยการกดแป้น Ctrl+Shift+Enter เท่านั้น
    ถ้ายังไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง
  4. การแก้ไขเปลี่ยนแปลงสูตร Array จะต้องกดแป้นให้รับสูตรด้วย Ctrl+Shift+Enter ทุกครั้ง

Re: เรียงข้อมูลใหม่แบบ (Transpose)

Posted: Thu Apr 11, 2019 11:10 am
by Polly
ทำได้ตามต้องการเลยค่ะ อาจารย์สุดยอดค่ะ ขอบคุณมากค่ะ :thup: :cp: