snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
Forum rules
ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
lemony
Member
Posts: 7 Joined: Thu Mar 24, 2011 12:47 pm
#1
Post
by lemony » Fri Aug 02, 2013 3:41 pm
จากกระทู้
http://www.snasui.com/viewtopic.php?f=3&t=4959
A B C
วัน/เดือน/ปี ผลิตภัณฑ์ ราคา
3/5/2555 A 1500
1/2/2555 C 2000
7/7/2556 A 3000
3/5/2556 B 2000
7/7/2556 A 3000
อยากกรองข้อมูล ตามช่วงเวลา เช่น เริ่ม
ปี 2555 เดือน ก.พ. สิ้นสุด
ปี 2556 เดือน ก.ค. เป็นต้น
โดยเตรียมแบบฟอร์มไว้แล้ว ตามไฟล์แนบนะคะ
รบกวนผู้รู้ชี้แนะด้วยค่ะ พยายามปรับแต่งของเดิมแล้วไม่ได้สักที
You do not have the required permissions to view the files attached to this post.
bank9597
Guru
Posts: 3868 Joined: Wed Aug 17, 2011 11:49 am
#2
Post
by bank9597 » Fri Aug 02, 2013 4:26 pm
ลองตามนี้ครับ
ที่ C31 คีย์ =IF($E$13<$C$13,0, SUMPRODUCT(--($C$3:$C$7=B31),--($B$3:$B$7>=DATE($C$28,MONTH(1&$D$28),1)),--($B$3:$B$7<=DATE($F$28,MONTH(1&$G$28),DAY(DATE(YEAR($F$28),MONTH(1&$G$28)+1,0)))),($D$3:$D$7)))
คัดลอกลงมา
You do not have the required permissions to view the files attached to this post.
Forum Rules
อย่าใช้ภาษาแชทในการตอบ-ถาม
ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
lemony
Member
Posts: 7 Joined: Thu Mar 24, 2011 12:47 pm
#3
Post
by lemony » Fri Aug 02, 2013 4:44 pm
ขอบคุณ คุณ bank9597 มากนะคะ
รบกวนอธิบายสูตรนี้หน่อยนะคะ ตรงไฮ"ลท์สีแดง ไม่ค่อยเข้าใจค่ะว่าทำไมใช้ 1 แล้ว &
แล้ว+1 คืออะไรคะ
DATE($C$28,MONTH(1&$D$28 ),1 )
DAY(DATE(YEAR($F$28),MONTH(1&$G$28)+1,0 )
bank9597
Guru
Posts: 3868 Joined: Wed Aug 17, 2011 11:49 am
#4
Post
by bank9597 » Fri Aug 02, 2013 5:15 pm
lemony wrote: ขอบคุณ คุณ bank9597 มากนะคะ
รบกวนอธิบายสูตรนี้หน่อยนะคะ ตรงไฮ"ลท์สีแดง ไม่ค่อยเข้าใจค่ะว่าทำไมใช้ 1 แล้ว &
แล้ว+1 คืออะไรคะ
DATE($C$28,MONTH(1&$D$28 ),1 )
DAY(DATE(YEAR($F$28),MONTH(1&$G$28)+1,0 )
1&MONTH คือการแปลงชื่อเดือนในรูปแบบตัวอักษร ให้กลายมาเป็นตัวเลขครับ ซึ่งจะสามารถนำมาใช้ในสูตรได้
ส่วนการอธิบายเชิงลึก เดี๋ยวรอท่านอื่นมาช่วยอธิบายอีกครั้งนึงครับ ผมไม่อยากอธิบายเกรงว่าอาจจะผิดได้ครับ
Forum Rules
อย่าใช้ภาษาแชทในการตอบ-ถาม
ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
snasui
Site Admin
Posts: 31256 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#5
Post
by snasui » Mon Aug 05, 2013 7:44 am
lemony wrote: DATE($C$28,MONTH(1&$D$28),1)
DAY(DATE(YEAR($F$28),MONTH(1&$G$28)+1,0)
จาก MONTH(1&$D$28) เป็นการนำวันที่ 1 มาเชื่อมกับเดือนใน $D$28 จะได้เป็น วันเดือนปี ซึ่งค่าปีโปรแกรมจะสร้างให้อัตโนมัติเป็น
ปีปัจจุบัน
จาก DAY(DATE(YEAR($F$28),MONTH(1&$G$28)
+1 ,
0 ) เป็นการนำ 1 ไปบวกกับเดือนที่ได้เพื่อให้เป็นเดือนถัดไป และกำหนดส่วนของวันเป็น 0 เพื่อให้เป็น
วันที่ 0 ของเดือนถัดไป การกำหนดเช่นนี้เป็นการใช้แบบประยุกต์เพื่อให้โปรแกรมแสดงผลลัพธ์เป็นวันที่สุดท้ายของ
เดือนก่อน อ่านเพิ่มเติมที่นี่ครับ
viewtopic.php?f=3&t=5132
lemony
Member
Posts: 7 Joined: Thu Mar 24, 2011 12:47 pm
#6
Post
by lemony » Tue Aug 06, 2013 8:21 am
ขอบคุณมากเลยนะคะ