: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

การสรุปรายรับ และ รายจ่ายครับ

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
User avatar
snasui
Site Admin
Site Admin
Posts: 30741
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: การสรุปรายรับ และ รายจ่ายครับ

#21

Post by snasui »

DhitiBank wrote:ปล. ได้ความรู้เพิ่มมาจากกรณีนี้ว่า Weeknum ใช้แบบอาร์เรย์ไม่ได้
:D Weeknum สามารถใช้เป็น Array ได้ครับ ตัวอย่างสูตรการทำ Weeknum เป็น Array ตามด้านล่างครับ

=Sumproduct(Weeknum(Row(Indirect(a2&":"&Max(A:A))))
User avatar
DhitiBank
Gold
Gold
Posts: 1676
Joined: Mon Oct 15, 2012 12:07 am

Re: การสรุปรายรับ และ รายจ่ายครับ

#22

Post by DhitiBank »

ขอบคุณครับอาจารย์ จบใน 1 กระบวนท่า :thup:
User avatar
DhitiBank
Gold
Gold
Posts: 1676
Joined: Mon Oct 15, 2012 12:07 am

Re: การสรุปรายรับ และ รายจ่ายครับ

#23

Post by DhitiBank »

snasui wrote:
DhitiBank wrote:ปล. ได้ความรู้เพิ่มมาจากกรณีนี้ว่า Weeknum ใช้แบบอาร์เรย์ไม่ได้
:D Weeknum สามารถใช้เป็น Array ได้ครับ ตัวอย่างสูตรการทำ Weeknum เป็น Array ตามด้านล่างครับ

=Sumproduct(Weeknum(Row(Indirect(a2&":"&Max(A:A))))
อ๋อ ต้องใช้ผ่านตัวกลางแบบนี้เอง ขอบพระคุณครับ
วังวู ช่ง
Silver
Silver
Posts: 800
Joined: Thu May 31, 2012 2:27 pm
Location: Laos
Excel Ver: MS Excel for office 365 MSO
Contact:

Re: การสรุปรายรับ และ รายจ่ายครับ

#24

Post by วังวู ช่ง »

snasui wrote::D แถมอีกตัวอย่างสูตรครับ

ที่ C2 คีย์

=CHOOSE(COLUMNS($C2:C2),IF($A2>=DATE(YEAR(MAX($A$2:$A$262)),9,20),SUM($B$2:$B2)-SUM(C$1:C1),IF(WEEKDAY($A2)=6,SUM($B$2:$B2)-SUM(C$1:C1),"")),IF(MONTH($A2)<>MONTH($A3),SUM($B$2:$B2)-SUM(C$1:C1),""),IF($A2>=DATE(YEAR(MAX($A$2:$A$262)),9,20),SUM($B$2:$B2),""),IF(LOOKUP(MONTH($A2),{1,4,7,9})<>LOOKUP(MONTH($A3),{1,4,7,9}),SUM($B$2:$B2)-SUM(C$1:C1),""))

Enter > Copy ไปด้านขวาจนถึง F2 > Copy ลงด้านล่าง
:D :D ท่านอาจารย์ครับ แบบนี้เยี้ยมมากครับ ขอบคุณท่านมากๆครับ :thup: :thup: :cp: :cp:
วังวู ช่ง
Silver
Silver
Posts: 800
Joined: Thu May 31, 2012 2:27 pm
Location: Laos
Excel Ver: MS Excel for office 365 MSO
Contact:

Re: การสรุปรายรับ และ รายจ่ายครับ

#25

Post by วังวู ช่ง »

DhitiBank wrote: C2 คีย์
=IF(AND(MONTH(A2)=9,DAY(A2)>19),SUMPRODUCT(--(DAY(A$2:A2)>19),--(MONTH(A$2:A2)=9),B$2:B2),IF(TEXT(A2,"[$- ]ddd")<>"Fri","",SUMPRODUCT(--(F$2:F2=F2),--(MONTH(A$2:A2)=MONTH(A2)),B$2:B2)))
Enter --> คัดลอกลงล่างครับ
รบกวนอีกครับ เมื่อนำไปใช้จิงแล้ว มีปัญหาอยู่ว่า ในสัปดาห์หนึ่งอาจมีการเคลื่อนไหวมากที่สุดครับ จะมีปัญหาตรงที่การรวมสัปดาห์ไม่ตรงกับความต้องการครับ จะแก้ไขสูตรบนนี้อย่างไรครับ

ส่วนไตรมาสนั้นก็อเหมือนกันครับ
- ไตรมาส หนึ่ง แต่ 1 ตุลาคม - 31 ธันวาคม ของปีที่หนึ่ง
- ไตรมาส สอง แต่ 1 มกราคม - 31 มีนาคม ของปีที่สอง
- ไตรมาส สาม แต่ 1 เมษายน - 30 มิถุนายน ของปีที่สอง
- ไตรมาส สี่ แต่ 1 กรกฎาคม - 30 กันยายน ของปีที่สอง
ดังนั้น ช่วงนั้นต้องสรุปเป็นไตรมาสครับ
You do not have the required permissions to view the files attached to this post.
menem
Silver
Silver
Posts: 549
Joined: Mon Jan 26, 2015 11:02 am

Re: การสรุปรายรับ และ รายจ่ายครับ

#26

Post by menem »

ลองเขียนดูบ้างครับ
You do not have the required permissions to view the files attached to this post.
User avatar
DhitiBank
Gold
Gold
Posts: 1676
Joined: Mon Oct 15, 2012 12:07 am

Re: การสรุปรายรับ และ รายจ่ายครับ

#27

Post by DhitiBank »

ลองปรับสูตรที่ C2 เป็น

=CHOOSE(COLUMNS($C2:C2),IF($G3=$G2,"",SUMIF($G$2:$G2,$G2,$B$2:$B2)),IF(MONTH($A2)=MONTH($A3),"",SUMPRODUCT(--(TEXT($A$2:$A2,"mmyy")=TEXT($A2,"mmyy")),$B$2:$B2)),IF(MONTH($A2)=MONTH($A3),"",IF(OR($A3="",LOOKUP(MONTH($A2),{1,4,7,11},{1,2,3,4})<>LOOKUP(MONTH($A3),{1,4,7,11},{1,2,3,4})),SUM($B$2:$B2)-SUM($E$1:$E1))),IF(AND($A2<>"",OR($A3="",DATE(YEAR(MAX($A:$A)),9,25)<$A3)),SUM($B$2:$B2),""))

Enter -> คัดลอกไปถึง F2 แล้วลงล่างครับ

คอลัมน์ G Weeknum ยังเอาไว้อยู่นะครับ
User avatar
DhitiBank
Gold
Gold
Posts: 1676
Joined: Mon Oct 15, 2012 12:07 am

Re: การสรุปรายรับ และ รายจ่ายครับ

#28

Post by DhitiBank »

ขออภัยครับ ปรับสูตรนิดหน่อย พอดีย้อนไปอ่านหน้าแรกถึงจำเงื่อนไขต่างๆ ได้ครับ

C2
=CHOOSE(COLUMNS($C2:C2),IF(AND(MONTH($A2)=9,DAY($A2)>19),SUM($B$2:$B2)-SUMIF($A$2:$A2,"<="&DATE(YEAR(MAX($A:$A)),9,19),$B$2:$B2),IF(WEEKNUM($A2)<>WEEKNUM($A3),SUM($B$2:$B2)-SUM($C$1:$C1),"")),IF(OR(AND(DAY($A2)>19,MONTH($A2)=9),MONTH($A2)<>MONTH($A3)),SUMPRODUCT(--(TEXT($A$2:$A2,"mmyy")=TEXT($A2,"mmyy")),$B$2:$B2),""),IF(AND($A2<>"",OR($A3="",LOOKUP(MONTH($A2),{1,4,7,10})<>LOOKUP(MONTH($A3),{1,4,7,10}),AND(DAY($A2)>19,MONTH($A2)=9))),SUM($B$2:$B2)-SUMPRODUCT($B$2:$B2,--(LOOKUP(MONTH($A$2:$A2),{1,4,7,10})<>LOOKUP(MONTH($A2),{1,4,7,10}))),""),IF(AND($A2<>"",OR($A3="",DATE(YEAR(MAX($A:$A)),9,25)<$A3)),SUM($B$2:$B2),""))
Enter -> คัดลอกไปทางขวาและลงล่างครับ

จริงๆ แล้วสูตรไม่ยาว มันเป็นสูตรของแต่ละคอลัมน์ (สัปดาห์, เดือน, ไตรมาสต์, ปี) แค่เอามารวมกันในสูตร Choose เพื่อให้เลือกเวลาคัดลอกไปทางขวาครับ
You do not have the required permissions to view the files attached to this post.
Post Reply