:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

การดึงข้อมูลในตารางข้อมูลมา แสดงรายงานตามเงื่อนไขที่กำหนด

ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
Student01
Member
Member
Posts: 70
Joined: Mon Mar 25, 2019 3:11 pm

การดึงข้อมูลในตารางข้อมูลมา แสดงรายงานตามเงื่อนไขที่กำหนด

#1

Post by Student01 »

ต้องการนำข้อมูลในตารางซ้ายมือมาแสดงในตารางขวามือ (ไฟล์ที่แนบมา)
โดยเราสามารถกำหนดวันเริ่มต้นและสิ้นสุด และเลือกการชำระได้
เช่น ถ้าต้องการดูการชำระเงินสด ก็ให้แสดงเฉพาะเงินสดในวันที่ต้องการ
หรือถ้าต้องการดูการชำระทุกอย่าง (เลือกทั้งหมด) ก็ให้แสดงทุกรายการในวันนั้นๆ
และรวมยอดด้วย (จำนวนบรรทัดแต่ละวันอาจจะไม่เท่ากัน)
You do not have the required permissions to view the files attached to this post.
Supachok
Gold
Gold
Posts: 1014
Joined: Wed Jun 18, 2014 11:11 am
Excel Ver: 2013

Re: การดึงข้อมูลในตารางข้อมูลมา แสดงรายงานตามเงื่อนไขที่กำหนด

#2

Post by Supachok »

J14

=IFERROR(INDEX(A$3:A$45,SMALL(IF(($K$9=$B$3:$B$45)+($K$10=$B$3:$B$45),ROW(A$1:A$43)),ROW(A1))),"")
Array formula {}

Copy right + down
User avatar
Bo_ry
Gold
Gold
Posts: 1245
Joined: Sun Aug 12, 2018 12:11 am
Excel Ver: MS 365
Contact:

Re: การดึงข้อมูลในตารางข้อมูลมา แสดงรายงานตามเงื่อนไขที่กำหนด

#3

Post by Bo_ry »

J14 ลากลง
=IFERROR(AGGREGATE(15,6,$A$3:$A$45/($B$3:$B$45>=$K$9)/($B$3:$B$45<=$K$10)/(SEARCH(IF($K$11="ทั้งหมด","*",$K$11),$E$3:$E$45)),ROWS(J$14:J14)),"")

K14:N14 ลากลง
=IFERROR(VLOOKUP($J14,$A:$E,COLUMNS($J14:K14),),"")
You do not have the required permissions to view the files attached to this post.
User avatar
puriwutpokin
Guru
Guru
Posts: 3801
Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365

Re: การดึงข้อมูลในตารางข้อมูลมา แสดงรายงานตามเงื่อนไขที่กำหนด

#4

Post by puriwutpokin »

:D อีกแบบปรับของคุณ Supachok
ที่ J14=IFERROR(INDEX(A$3:A$45,SMALL(IF(($B$3:$B$45>=$K$9)*($B$3:$B$45<=$K$10)*IF($K$11="ทั้งหมด",$E$3:$E$45=$E$3:$E$45,($E$3:$E$45=$K$11)),ROW(A$1:A$43)),ROW(A1))),"")
กด Ctrl+Shift+Enter คัดลอกไปทางขวาและลงล่างครับ
:shock: :roll: :D
Student01
Member
Member
Posts: 70
Joined: Mon Mar 25, 2019 3:11 pm

Re: การดึงข้อมูลในตารางข้อมูลมา แสดงรายงานตามเงื่อนไขที่กำหนด

#5

Post by Student01 »

ขอบพระคุณทั้ง 3 ท่านมากๆ เลยครับ ทำให้ได้ผลลัพธ์ตามต้องการ

แต่ของคุณ Supachok ผลลัพธ์ยังไม่ตรงนัก แต่คุณ puriwutpokin มาปรับให้ ก็ถือว่าสมบูรณ์ครับ
Student01
Member
Member
Posts: 70
Joined: Mon Mar 25, 2019 3:11 pm

Re: การดึงข้อมูลในตารางข้อมูลมา แสดงรายงานตามเงื่อนไขที่กำหนด

#6

Post by Student01 »

Bo_ry wrote: Fri May 03, 2019 6:46 pm J14 ลากลง
=IFERROR(AGGREGATE(15,6,$A$3:$A$45/($B$3:$B$45>=$K$9)/($B$3:$B$45<=$K$10)/(SEARCH(IF($K$11="ทั้งหมด","*",$K$11),$E$3:$E$45)),ROWS(J$14:J14)),"")

K14:N14 ลากลง
=IFERROR(VLOOKUP($J14,$A:$E,COLUMNS($J14:K14),),"")
ขอเพิ่มเติม :
ถ้า กรณีที่มีใบเสร็จเลขเดียวกัน แต่มีการชำระมากกว่า 1 ช่องทาง ก็ให้แสดงผลตามช่องทางการชำระ
ตามตัวอย่างไฟล์ที่แนบมานี้นะครับ
จะต้องแก้ไขสูตรอย่างไรครับ
You do not have the required permissions to view the files attached to this post.
Supachok
Gold
Gold
Posts: 1014
Joined: Wed Jun 18, 2014 11:11 am
Excel Ver: 2013

Re: การดึงข้อมูลในตารางข้อมูลมา แสดงรายงานตามเงื่อนไขที่กำหนด

#7

Post by Supachok »

puriwutpokin wrote: Fri May 03, 2019 9:54 pm :D อีกแบบปรับของคุณ Supachok
ที่ J14=IFERROR(INDEX(A$3:A$45,SMALL(IF(($B$3:$B$45>=$K$9)*($B$3:$B$45<=$K$10)*IF($K$11="ทั้งหมด",$E$3:$E$45=$E$3:$E$45,($E$3:$E$45=$K$11)),ROW(A$1:A$43)),ROW(A1))),"")
กด Ctrl+Shift+Enter คัดลอกไปทางขวาและลงล่างครับ
ปรับจากสูตรต่อยอดเดิม
1.insert column N รายการ
2.
=IFERROR(INDEX(A$3:A$45,SMALL(IF(($B$3:$B$45>=$L$9)*($B$3:$B$45<=$L$10)*IF($L$11="ทั้งหมด",$E$3:$E$45=$E$3:$E$45,($F$3:$F$45=$L$11)),ROW(A$1:A$43)),ROW(A1))),"")

3.O12
=SUBTOTAL(9,O14:O49)
Student01
Member
Member
Posts: 70
Joined: Mon Mar 25, 2019 3:11 pm

Re: การดึงข้อมูลในตารางข้อมูลมา แสดงรายงานตามเงื่อนไขที่กำหนด

#8

Post by Student01 »

คุณ Supachok ครับ
ที่คุณตอบมาในความเห็นที่ 7 น่าจะใช้ไฟล์เดิมใช่ไหมครับ

ผมขอส่งไฟล์ใหม่ที่ผมแก้ไขเงื่อนไขเข้าไปเพิ่มครับ
ไฟล์ใหม่ ผมแนบมานี้นะครับ หรือไฟล์ที่แนบมาในความเห็นที่ 6 ครับ

:
ต้องการนำข้อมูลในตารางซ้ายมือมาแสดงในตารางขวามือ
โดยเราสามารถกำหนดวันเริ่มต้นและสิ้นสุด และเลือกการชำระได้
เช่น ถ้าต้องการดูการชำระเงินสด ก็ให้แสดงเฉพาะเงินสดในวันที่ต้องการ
หรือถ้าต้องการดูการชำระทุกอย่าง (เลือกทั้งหมด) ก็ให้แสดงทุกรายการในวันนั้นๆ
(จำนวนบรรทัดแต่ละวันคงไม่เท่ากัน)
กรณีที่มีใบเสร็จเลขเดียวกัน แต่มีการชำระมากกว่า 1 ช่องทาง ก็ให้แสดงผลตามช่องทางการชำระด้วย
You do not have the required permissions to view the files attached to this post.
Student01
Member
Member
Posts: 70
Joined: Mon Mar 25, 2019 3:11 pm

Re: การดึงข้อมูลในตารางข้อมูลมา แสดงรายงานตามเงื่อนไขที่กำหนด

#9

Post by Student01 »

ผมได้ลองทำตาม และใส่สูตร ตามคำแนะนำของ Bo_ry มาแล้ว
แต่เมื่อผมเพิ่มเงื่อนไขเข้าไป และมีการแทรกคอลัมน์ "รายการ" ในตารางข้อมูล
ทำให้ผลลัพท์ ยังได้ไม่ตรงที่ต้องการนะครับ
จึงขอคำแนะนำหรือแก้ไขให้ด้วยนะครับ


ส่วนที่คุณ Supachok แนะนำ (ความเห็นที่ 7) ลองแทรกเซลล์ตามที่แนะนำแล้ว ก็ยังไม่ได้ครับ

จึงขอแนบไฟล์มาเพื่ออธิบายให้ทุกท่านได้เข้าใจชัดยิ่งขึ้นครับ
You do not have the required permissions to view the files attached to this post.
Supachok
Gold
Gold
Posts: 1014
Joined: Wed Jun 18, 2014 11:11 am
Excel Ver: 2013

Re: การดึงข้อมูลในตารางข้อมูลมา แสดงรายงานตามเงื่อนไขที่กำหนด

#10

Post by Supachok »

ตามแนบครับ แต่ไม่ได้รวมยอดตามโจทย์
คงที่ท่านอื่นมาช่วยรวมให้.
You do not have the required permissions to view the files attached to this post.
User avatar
puriwutpokin
Guru
Guru
Posts: 3801
Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365

Re: การดึงข้อมูลในตารางข้อมูลมา แสดงรายงานตามเงื่อนไขที่กำหนด

#11

Post by puriwutpokin »

ปรับเป็นตามคุณBo_ry
ที่ J14=IFERROR(INDEX($A$3:$F$45,AGGREGATE(15,6,(ROW($A$3:$A$45)-ROW($A$2))/($B$3:$B$45>=$K$9)/($B$3:$B$45<=$K$10)/(IF($K$11="ทั้งหมด",$F$3:$F$45=$F$3:$F$45,($F$3:$F$45=$K$11)))/(FREQUENCY(MATCH($A$3:$A$45&$F$3:$F$45,$A$3:$A$45&$F$3:$F$45,0),ROW($F$3:$F$45)-ROW($F$2))>0),ROWS(J$14:J14)),MATCH(J$13,$A$2:$F$2,0)),"") คัดลอกไปถึง L14 และคัดลอกไปที่ N14 ด้วย และคัดลอกลงครับ
ที่ M14=SUMIFS($E$3:$E$45,$A$3:$A$45,J14,$F$3:$F$45,N14) คัดลอกลงครับ
:shock: :roll: :D
User avatar
puriwutpokin
Guru
Guru
Posts: 3801
Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365

Re: การดึงข้อมูลในตารางข้อมูลมา แสดงรายงานตามเงื่อนไขที่กำหนด

#12

Post by puriwutpokin »

แก้ไขครับที่
๋J14=IFERROR(IF($K$11="ทั้งหมด",INDEX($A$3:$F$45,AGGREGATE(15,6,(ROW($A$3:$A$45)-ROW($A$2))/($B$3:$B$45>=$K$9)/($B$3:$B$45<=$K$10)/(FREQUENCY(MATCH($A$3:$A$45&$F$3:$F$45,$A$3:$A$45&$F$3:$F$45,0),ROW($F$3:$F$45)-ROW($F$2))>0),ROWS(J$14:J14)),MATCH(J$13,$A$2:$F$2,0)),INDEX($A$3:$F$45,AGGREGATE(15,6,(ROW($A$3:$A$45)-ROW($A$2))/($B$3:$B$45>=$K$9)/($B$3:$B$45<=$K$10)/($F$3:$F$45=$K$11),ROWS(J$14:J14)),MATCH(J$13,$A$2:$F$2,0))),"")
แล้วคัดลอกไปที่คอลัมน์ K,L,N และคัดลอกลงครับ
ที่ M14=IFERROR(1/(1/IF($K$11="ทั้งหมด",SUMIFS($E$3:$E$45,$A$3:$A$45,J14,$F$3:$F$45,N14),INDEX($E$3:$E$45,AGGREGATE(15,6,(ROW($E$3:$E$45)-ROW($E$2))/($B$3:$B$45>=$K$9)/($B$3:$B$45<=$K$10)/($F$3:$F$45=$K$11),ROWS(L$14:L14))))),"") คัดลอกลงครับ
Last edited by puriwutpokin on Tue May 07, 2019 7:59 pm, edited 1 time in total.
:shock: :roll: :D
Student01
Member
Member
Posts: 70
Joined: Mon Mar 25, 2019 3:11 pm

Re: การดึงข้อมูลในตารางข้อมูลมา แสดงรายงานตามเงื่อนไขที่กำหนด

#13

Post by Student01 »

puriwutpokin wrote: Tue May 07, 2019 7:51 pm แก้ไขครับที่
๋J14=IFERROR(IF($K$11="ทั้งหมด",INDEX($A$3:$F$45,AGGREGATE(15,6,(ROW($A$3:$A$45)-ROW($A$2))/($B$3:$B$45>=$K$9)/($B$3:$B$45<=$K$10)/(FREQUENCY(MATCH($A$3:$A$45&$F$3:$F$45,$A$3:$A$45&$F$3:$F$45,0),ROW($F$3:$F$45)-ROW($F$2))>0),ROWS(J$14:J14)),MATCH(J$13,$A$2:$F$2,0)),INDEX($A$3:$F$45,AGGREGATE(15,6,(ROW($A$3:$A$45)-ROW($A$2))/($B$3:$B$45>=$K$9)/($B$3:$B$45<=$K$10)/($F$3:$F$45=$K$11),ROWS(J$14:J14)),MATCH(J$13,$A$2:$F$2,0))),"")
แล้วคัดลอกไปที่คอลัมน์ K,L,N และคัดลอกลงครับ
ที่ M14=IFERROR(1/(1/IF($K$11="ทั้งหมด",SUMIFS($E$3:$E$45,$A$3:$A$45,J14,$F$3:$F$45,N14),VLOOKUP($J14,$A:$F,5,))),"") คัดลอกลงครับ
ได้แล้วครับ ขอบคุณครับ
:thup: :thup: :thup:
User avatar
Bo_ry
Gold
Gold
Posts: 1245
Joined: Sun Aug 12, 2018 12:11 am
Excel Ver: MS 365
Contact:

Re: การดึงข้อมูลในตารางข้อมูลมา แสดงรายงานตามเงื่อนไขที่กำหนด

#14

Post by Bo_ry »

อีกแบบ J14
=IFERROR(IF(J$13="จำนวนเงิน",SUMIFS($E:$E,$A:$A,$J14,$B:$B,$K14,$C:$C,$L14,$F:$F,$N14),INDEX($A$3:$F$99,SMALL(IF(FREQUENCY(IF(($B$3:$B$99>=$K$9)*($B$3:$B$99<=$K$10)*IF($K$11="ทั้งหมด",1,$F$3:$F$99=$K$11),MATCH($A$3:$A$99&$F$3:$F$99,INDEX($A$3:$A$99&$F$3:$F$99,),)),ROW($F$1:$F$99)),ROW($F$1:$F$99)),ROWS(J$14:J14)),MATCH(J$13,$A$2:$F$2,))),"")

กด Ctrl+Shift+Enter ลากไป N14 ลากลง
You do not have the required permissions to view the files attached to this post.
Student01
Member
Member
Posts: 70
Joined: Mon Mar 25, 2019 3:11 pm

Re: การดึงข้อมูลในตารางข้อมูลมา แสดงรายงานตามเงื่อนไขที่กำหนด

#15

Post by Student01 »

Bo_ry wrote: Tue May 07, 2019 8:59 pm อีกแบบ J14
=IFERROR(IF(J$13="จำนวนเงิน",SUMIFS($E:$E,$A:$A,$J14,$B:$B,$K14,$C:$C,$L14,$F:$F,$N14),INDEX($A$3:$F$99,SMALL(IF(FREQUENCY(IF(($B$3:$B$99>=$K$9)*($B$3:$B$99<=$K$10)*IF($K$11="ทั้งหมด",1,$F$3:$F$99=$K$11),MATCH($A$3:$A$99&$F$3:$F$99,INDEX($A$3:$A$99&$F$3:$F$99,),)),ROW($F$1:$F$99)),ROW($F$1:$F$99)),ROWS(J$14:J14)),MATCH(J$13,$A$2:$F$2,))),"")

กด Ctrl+Shift+Enter ลากไป N14 ลากลง
ใช้ได้เลยครับ
แต่ถ้า ไม่เป็นสูตร array ต้องแก้ไขอย่างไรครับ
และเซลล์ที่เหลือบรรทัดถัดไปที่ไม่มีข้อมูล ให้แสดงผลเป็นช่องว่าง (ไม่แสดงเป็นเลข 0)
Last edited by Student01 on Tue May 07, 2019 9:58 pm, edited 1 time in total.
Student01
Member
Member
Posts: 70
Joined: Mon Mar 25, 2019 3:11 pm

Re: การดึงข้อมูลในตารางข้อมูลมา แสดงรายงานตามเงื่อนไขที่กำหนด

#16

Post by Student01 »

Student01 wrote: Tue May 07, 2019 7:58 pm
puriwutpokin wrote: Tue May 07, 2019 7:51 pm แก้ไขครับที่
๋J14=IFERROR(IF($K$11="ทั้งหมด",INDEX($A$3:$F$45,AGGREGATE(15,6,(ROW($A$3:$A$45)-ROW($A$2))/($B$3:$B$45>=$K$9)/($B$3:$B$45<=$K$10)/(FREQUENCY(MATCH($A$3:$A$45&$F$3:$F$45,$A$3:$A$45&$F$3:$F$45,0),ROW($F$3:$F$45)-ROW($F$2))>0),ROWS(J$14:J14)),MATCH(J$13,$A$2:$F$2,0)),INDEX($A$3:$F$45,AGGREGATE(15,6,(ROW($A$3:$A$45)-ROW($A$2))/($B$3:$B$45>=$K$9)/($B$3:$B$45<=$K$10)/($F$3:$F$45=$K$11),ROWS(J$14:J14)),MATCH(J$13,$A$2:$F$2,0))),"")
แล้วคัดลอกไปที่คอลัมน์ K,L,N และคัดลอกลงครับ
ที่ M14=IFERROR(1/(1/IF($K$11="ทั้งหมด",SUMIFS($E$3:$E$45,$A$3:$A$45,J14,$F$3:$F$45,N14),VLOOKUP($J14,$A:$F,5,))),"") คัดลอกลงครับ
ได้แล้วครับ ขอบคุณครับ
:thup: :thup: :thup:

สูตรนี้ ถ้าเป็นการเลือก ทั้งหมด จะแสดงผลลัพธ์ได้ถูก

แต่เมื่อเลือก เงินสด หรือ โอน หรือบัตรเครดิต แล้ว
ยอดที่มีมากกว่า 1 ยอด สูตรไม่นำมารวมกันครับ เป็นการแสดงแยกกันเหมือนในตารางข้อมูล
ซึ่งที่ต้องการคือ ถ้าเป็นเงินสดเหมือนกัน วันเดียวกัน และเลขใบเสร็จเดียวกัน ยอดจะต้องรวมกันครับ

รบกวนแก้ไขให้อีกหน่อยนะครับ (ผมแนบไฟล์มาให้ดูด้วยครับ)

ต้องขอโทษด้วยครับที่ตอนแรกบอกว่า ใช้ได้แล้วนะครับ
You do not have the required permissions to view the files attached to this post.
User avatar
puriwutpokin
Guru
Guru
Posts: 3801
Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365

Re: การดึงข้อมูลในตารางข้อมูลมา แสดงรายงานตามเงื่อนไขที่กำหนด

#17

Post by puriwutpokin »

ปรับเป็นที่
J14=IFERROR(IF(J$13="จำนวนเงิน",IFERROR(1/(1/SUMIFS($E$3:$E$45,$A$3:$A$45,$J14,$F$3:$F$45,$N14)),""),IF($K$11="ทั้งหมด",INDEX($A$3:$F$45,AGGREGATE(15,6,(ROW($A$3:$A$45)-ROW($A$2))/($B$3:$B$45>=$K$9)/($B$3:$B$45<=$K$10)/(FREQUENCY(MATCH($A$3:$A$45&$F$3:$F$45,$A$3:$A$45&$F$3:$F$45,0),ROW($F$3:$F$45)-ROW($F$2))>0),ROWS(J$14:J14)),MATCH(J$13,$A$2:$F$2,0)),INDEX($A$3:$F$45,AGGREGATE(15,6,(ROW($A$3:$A$45)-ROW($A$2))/($B$3:$B$45>=$K$9)/($B$3:$B$45<=$K$10)/($F$3:$F$45=$K$11),ROWS(J$14:J14)),MATCH(J$13,$A$2:$F$2,0)))),"") คัดลอกไปทางขวาและลงล่างครับ
:shock: :roll: :D
Student01
Member
Member
Posts: 70
Joined: Mon Mar 25, 2019 3:11 pm

Re: การดึงข้อมูลในตารางข้อมูลมา แสดงรายงานตามเงื่อนไขที่กำหนด

#18

Post by Student01 »

puriwutpokin wrote: Tue May 07, 2019 10:17 pm ปรับเป็นที่
J14=IFERROR(IF(J$13="จำนวนเงิน",IFERROR(1/(1/SUMIFS($E$3:$E$45,$A$3:$A$45,$J14,$F$3:$F$45,$N14)),""),IF($K$11="ทั้งหมด",INDEX($A$3:$F$45,AGGREGATE(15,6,(ROW($A$3:$A$45)-ROW($A$2))/($B$3:$B$45>=$K$9)/($B$3:$B$45<=$K$10)/(FREQUENCY(MATCH($A$3:$A$45&$F$3:$F$45,$A$3:$A$45&$F$3:$F$45,0),ROW($F$3:$F$45)-ROW($F$2))>0),ROWS(J$14:J14)),MATCH(J$13,$A$2:$F$2,0)),INDEX($A$3:$F$45,AGGREGATE(15,6,(ROW($A$3:$A$45)-ROW($A$2))/($B$3:$B$45>=$K$9)/($B$3:$B$45<=$K$10)/($F$3:$F$45=$K$11),ROWS(J$14:J14)),MATCH(J$13,$A$2:$F$2,0)))),"") คัดลอกไปทางขวาและลงล่างครับ
ผลลัพธ์ ยังไม่ได้ครับ

เมื่อเลือก เงินสด
จะแสดงผลออกมา 153 บาท 3 ช่องเลยครับ
และเมื่อเลือกบัตรเครดิต ก็ออกมา 3 ช่องเหมือนกันครับ
User avatar
Bo_ry
Gold
Gold
Posts: 1245
Joined: Sun Aug 12, 2018 12:11 am
Excel Ver: MS 365
Contact:

Re: การดึงข้อมูลในตารางข้อมูลมา แสดงรายงานตามเงื่อนไขที่กำหนด

#19

Post by Bo_ry »

J14
=IFERROR(IF((J$13="จำนวนเงิน"),IFERROR(1/(1/SUMIFS($E:$E,$A:$A,$J14,$B:$B,$K14,$C:$C,$L14,$F:$F,$N14)),""),INDEX($A$3:$F$99,AGGREGATE(15,6,ROW($A$1:$A$99)/(FREQUENCY(($B$3:$B$99>=$K$9)*($B$3:$B$99<=$K$10)*ISNUMBER(SEARCH(IF($K$11="ทั้งหมด","*",$K$11),$F$3:$F$99))*MATCH($A$3:$A$99&$F$3:$F$99,INDEX($A$3:$A$99&$F$3:$F$99,),),ROW($A$1:$A$99)-1)>0)-1,ROWS(J$13:J14)),MATCH(J$13,$A$2:$F$2,))),"")

ไม่ต้องกด Ctrl+Shift+Error แต่ยังคำนวณแบบ array
You do not have the required permissions to view the files attached to this post.
User avatar
puriwutpokin
Guru
Guru
Posts: 3801
Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365

Re: การดึงข้อมูลในตารางข้อมูลมา แสดงรายงานตามเงื่อนไขที่กำหนด

#20

Post by puriwutpokin »

อีกตัวอย่างครับ :D
ที่J14=IFERROR(IF(J$13="จำนวนเงิน",IFERROR(1/(1/SUMIFS($E$3:$E$45,$A$3:$A$45,$J14,$F$3:$F$45,$N14,$B$3:$B$45,$K14)),""),INDEX($A$3:$F$45,AGGREGATE(15,6,(ROW($A$3:$A$45)-ROW($A$2))/($B$3:$B$45>=$K$9)/($B$3:$B$45<=$K$10)/IF($K$11="ทั้งหมด",$F$3:$F$45=$F$3:$F$45,INDEX($F$3:$F$45=$K$11,0))/(FREQUENCY(MATCH($A$3:$A$45&$F$3:$F$45,$A$3:$A$45&$F$3:$F$45,0),ROW($F$3:$F$45)-ROW($F$2))>0),ROWS(J$14:J14)),MATCH(J$13,$A$2:$F$2,0))),"") คัดลอกไปทางขวาและลงล่างครับ
:shock: :roll: :D
Post Reply