Page 1 of 1

แนะนำสูตรจัดเรียงข้อมูลใหม่

Posted: Sat Feb 16, 2019 9:40 pm
by Torisan2015
เรียนอาจารย์ และเพื่อนสมาชิกทุกท่าน
รบกวนแนะนำสูตรที่ใช้จัดเรียงข้อมูลใหม่หน่อยครับ
โดยดึงข้อมูลจากชีท "ฐานข้อมูล" มาจัดเรียงใหม่ในรูปแบบตามชีท "ดึงข้อมูลครับ
พร้อมทั้งได้แนบไฟล์และคำตอบมาด้วยครับ

Re: แนะนำสูตรจัดเรียงข้อมูลใหม่

Posted: Sat Feb 16, 2019 11:18 pm
by Bo_ry
ฺB4
=IF(C4,INDEX(ฐานข้อมูล!$E$5:$E$74,LOOKUP(9^9,$A$4:$A4),),"")

C4
=IF(COUNTIF(E4:M4,">0"),MOD(ROW()+1,4),)

D4
=IFERROR(LOOKUP(MATCH(9^9,E4:M4),{4;5;9},{"ค่าน้ำประปาประจำเดือน";"ค่าน้ำค้างชำระเดือน";"ค่าส่วนกลางจากเดือน"}),"")

E4 ลากขวา

Code: Select all

=IF((MOD(ROW(),4)=0)*(COLUMN()<9),INDEX(ฐานข้อมูล!$D$5:$S$74,LOOKUP(9^9,$A$4:$A4),MATCH(E$3,ฐานข้อมูล!$D$4:$S$4,)),
IF((MOD(ROW(),4)=1),IF((COLUMN()>8)*(COLUMN()<11)*OR(COUNTA(INDEX(ฐานข้อมูล!$H$5:$S$74,LOOKUP(9^9,$A$4:$A4),))={8,12}),INDEX(ฐานข้อมูล!$D$5:$S$74,LOOKUP(9^9,$A$4:$A4),MATCH(E$3,ฐานข้อมูล!$D$4:$S$4,)),
IF((COLUMN()>10)*(COUNTA(INDEX(ฐานข้อมูล!$H$5:$S$74,LOOKUP(9^9,$A$4:$A4),))=10),INDEX(ฐานข้อมูล!$D$5:$S$74,LOOKUP(9^9,$A$4:$A4),MATCH(E$3,ฐานข้อมูล!$D$4:$S$4,)),"")),
IF((MOD(ROW(),4)=2)*(COLUMN()>10)*(COUNTA(INDEX(ฐานข้อมูล!$H$5:$S$74,LOOKUP(9^9,$A$4:$A4),))=12),INDEX(ฐานข้อมูล!$D$5:$S$74,LOOKUP(9^9,$A$4:$A4),MATCH(E$3,ฐานข้อมูล!$D$4:$S$4,)),"")))
Custom Format # สำหรับซ่อน 0
B4:M4 ลากลง

Re: แนะนำสูตรจัดเรียงข้อมูลใหม่

Posted: Sun Feb 17, 2019 12:12 am
by Torisan2015
ทดลองใส่งานจริง แต่ข้อมูลบางช่องยังไม่เป็นไปตามที่ต้องการครับ ควรปรับสูตร แก้ไข หรือผมใส่อะไรผิดไหมครับ

Re: แนะนำสูตรจัดเรียงข้อมูลใหม่

Posted: Sun Feb 17, 2019 10:15 am
by Torisan2015
ทดลองใส่งานจริง แต่ข้อมูลบางช่องยังไม่เป็นไปตามที่ต้องการครับ ควรปรับสูตร แก้ไข หรือผมใส่อะไรผิดไหมครับ
พร้อมทั้งมีคำอะิบาย และตัวอย่าง และได้แนบไฟล์มาด้วยครับ

Re: แนะนำสูตรจัดเรียงข้อมูลใหม่

Posted: Sun Feb 17, 2019 12:35 pm
by snasui
:D อีกแบบครับ

ชีตอางอิงชีตนี้
  1. ที่ W5 คีย์
    =(0<COUNT(H5:K5))+(0<COUNTIF(L5:M5,"?*"))+(0<COUNTIF(P5:T5,"?*"))
    Enter > Copy ลงด้านล่าง
Sheet1
  1. ที่ A4 คีย์
    =IFERROR(IF(MOD(ROWS(A$4:A4)-1,4)+1=1,INDEX(อางอิงชีทนี้!$A$5:$A$74,INT((ROWS(A$4:A4)-1)/4)+1),""),"")
    Enter > Copy ลงด้านล่าง
  2. ที่ B4 คีย์
    =IF(ROWS(B$4:B4)-MATCH(9.99999999999999E+307,A$4:A4)+1>INDEX(อางอิงชีทนี้!$W$5:$W$74,LOOKUP(9.99999999999999E+307,A$4:A4)),"",INDEX(อางอิงชีทนี้!$E$5:$E$74,LOOKUP(9.99999999999999E+307,A$4:A4)))
    Enter > Copy ลงด้านล่าง
  3. ที่ C4 คีย์
    =IF(B4<>"",COUNTIF(B$4:B4,B4),"")
    Enter > Copy ลงด้านล่าง
  4. ที่ D4 คีย์
    =IF(C4="","",LOOKUP(C4,{1;2;3},{"ค่าน้ำประปาประจำเดือน";"ค่าน้ำค้างชำระเดือน";"ค่าส่วนกลางจากเดือน"}))
    Enter > Copy ลงด้านล่าง
  5. ที่ E4 คีย์
    =IF(N($C4),IFERROR(INDEX(CHOOSE($C4,อางอิงชีทนี้!$H$5:$K$74,อางอิงชีทนี้!$L$5:$M$74,อางอิงชีทนี้!$P$5:$S$74),LOOKUP(9.99999999999999E+307,$A$4:$A4),MATCH(E$3,CHOOSE($C4,อางอิงชีทนี้!$H$4:$K$4,อางอิงชีทนี้!$L$4:$M$4,อางอิงชีทนี้!$P$4:$S$4),0)),""),"")
    Enter > Copy ไปด้านขวา > Copy ลงด้านล่าง

Re: แนะนำสูตรจัดเรียงข้อมูลใหม่

Posted: Sun Feb 17, 2019 12:39 pm
by Bo_ry
E4

Code: Select all

=IF((MOD(ROW(),4)=0)*(COLUMN()<9),INDEX(อางอิงชีทนี้!$D$5:$S$74,LOOKUP(9^9,$A$4:$A4),MATCH(E$3,อางอิงชีทนี้!$D$4:$S$4,)),
IF((MOD(ROW(),4)=1),IF((COLUMN()>8)*(COLUMN()<11)*OR(COUNTIFS(INDEX(อางอิงชีทนี้!$L$5:$S$74,LOOKUP(9^9,$A$4:$A4),),">0")={3,5}),INDEX(อางอิงชีทนี้!$D$5:$S$74,LOOKUP(9^9,$A$4:$A4),MATCH(E$3,อางอิงชีทนี้!$D$4:$S$4,)),
IF((COLUMN()>10)*(COUNTIFS(INDEX(อางอิงชีทนี้!$L$5:$S$74,LOOKUP(9^9,$A$4:$A4),),">0")=4),INDEX(อางอิงชีทนี้!$D$5:$S$74,LOOKUP(9^9,$A$4:$A4),MATCH(E$3,อางอิงชีทนี้!$D$4:$S$4,)),"")),
IF((MOD(ROW(),4)=2)*(COLUMN()>10)*(COUNTIFS(INDEX(อางอิงชีทนี้!$L$5:$S$74,LOOKUP(9^9,$A$4:$A4),),">0")=5),INDEX(อางอิงชีทนี้!$D$5:$S$74,LOOKUP(9^9,$A$4:$A4),MATCH(E$3,อางอิงชีทนี้!$D$4:$S$4,)),"")))

Re: แนะนำสูตรจัดเรียงข้อมูลใหม่

Posted: Sun Feb 17, 2019 8:17 pm
by Torisan2015
ก่อนอื่นต้องขอขอบคูณท่าง 2 ท่านนะครับเป็นไปตามเงื่อนไขเลยครับ
และผมสามารถนำไปปรับใช้กับงานได้หลายอย่างเลยครับ ขอบคุณมากๆเลยครับ