snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
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]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
hednoi19
Member
Posts: 25 Joined: Sat Sep 24, 2016 3:58 pm
#1
Post
by hednoi19 » Wed Nov 23, 2016 10:52 am
สอบถามเรื่องการใช้ IF 2 เงื่อนไข
**สิ่งที่ต้องการ ในช่อง Production plan (-3 วัน) จากวันที่ในช่อง plan (PD) แต่ถ้าหากไม่มีข้อมูลในช่อง PD ให้ดึงข้อมูลจากช่อง PM มาแทน (โดยเงื่อนไข -3 วัน) เช่นกันครับ
ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
apinyathamma
Member
Posts: 1 Joined: Wed Nov 23, 2016 1:14 pm
#2
Post
by apinyathamma » Wed Nov 23, 2016 1:26 pm
อยากทราบสูตร พนักงานที่ได้เบี้ยขยัน สามารถใช้ If ได้หรือไม่ แล้วจะทำอย่างไร รบกวนหน่อยนะคะ ใครทราบบ้าง
parakorn
Gold
Posts: 1223 Joined: Thu Mar 14, 2013 9:41 am
Location: Central Chaengwattana[Tops]
Excel Ver: 365
Contact:
#3
Post
by parakorn » Wed Nov 23, 2016 1:58 pm
hednoi19 wrote: สอบถามเรื่องการใช้ IF 2 เงื่อนไข
**สิ่งที่ต้องการ ในช่อง Production plan (-3 วัน) จากวันที่ในช่อง plan (PD) แต่ถ้าหากไม่มีข้อมูลในช่อง PD ให้ดึงข้อมูลจากช่อง PM มาแทน (โดยเงื่อนไข -3 วัน) เช่นกันครับ
ขอบคุณครับ
A2 พิมพ์ =IF(C2="",B2-3,C2-3) Copy ลากลงครับ
parakorn
Gold
Posts: 1223 Joined: Thu Mar 14, 2013 9:41 am
Location: Central Chaengwattana[Tops]
Excel Ver: 365
Contact:
#4
Post
by parakorn » Wed Nov 23, 2016 2:03 pm
apinyathamma wrote: อยากทราบสูตร พนักงานที่ได้เบี้ยขยัน สามารถใช้ If ได้หรือไม่ แล้วจะทำอย่างไร รบกวนหน่อยนะคะ ใครทราบบ้าง
ติดปัญหาหรือสงสัย ให้ตั้งกระทู้สอบถามให้ชัดเจนครับ ปัญหา
สามารถใช้สูตรแก้ไขได้ ขึ้นอยู่กับผู้ใช้ครับ ว่าจะใช้สูตรอะไร
ไม่มีอะไรตายตัวครับ
hednoi19
Member
Posts: 25 Joined: Sat Sep 24, 2016 3:58 pm
#5
Post
by hednoi19 » Wed Nov 23, 2016 3:14 pm
parakorn wrote: hednoi19 wrote: สอบถามเรื่องการใช้ IF 2 เงื่อนไข
**สิ่งที่ต้องการ ในช่อง Production plan (-3 วัน) จากวันที่ในช่อง plan (PD) แต่ถ้าหากไม่มีข้อมูลในช่อง PD ให้ดึงข้อมูลจากช่อง PM มาแทน (โดยเงื่อนไข -3 วัน) เช่นกันครับ
ขอบคุณครับ
A2 พิมพ์ =IF(C2="",B2-3,C2-3) Copy ลากลงครับ
ขอบคุณมากครับ แล้วถ้าเพิ่มเติมอีกหนึ่งเงื่อนไน ถ้าในกรณีตรงกับวันอาทิตย์ให้เลื่อนเป็นอีกวัน สามารถทำได้ไหมครับ.. ?
parakorn
Gold
Posts: 1223 Joined: Thu Mar 14, 2013 9:41 am
Location: Central Chaengwattana[Tops]
Excel Ver: 365
Contact:
#6
Post
by parakorn » Wed Nov 23, 2016 3:58 pm
hednoi19 wrote: parakorn wrote: hednoi19 wrote: สอบถามเรื่องการใช้ IF 2 เงื่อนไข
**สิ่งที่ต้องการ ในช่อง Production plan (-3 วัน) จากวันที่ในช่อง plan (PD) แต่ถ้าหากไม่มีข้อมูลในช่อง PD ให้ดึงข้อมูลจากช่อง PM มาแทน (โดยเงื่อนไข -3 วัน) เช่นกันครับ
ขอบคุณครับ
A2 พิมพ์ =IF(C2="",B2-3,C2-3) Copy ลากลงครับ
ขอบคุณมากครับ แล้วถ้าเพิ่มเติมอีกหนึ่งเงื่อนไน ถ้าในกรณีตรงกับวันอาทิตย์ให้เลื่อนเป็นอีกวัน สามารถทำได้ไหมครับ.. ?
ยกตัวอย่างคำตอบที่ต้องการมาหน่อยครับ
Serverchita
Bronze
Posts: 296 Joined: Wed Nov 18, 2015 1:28 pm
Excel Ver: 365
#7
Post
by Serverchita » Wed Nov 23, 2016 5:16 pm
สูตรที่ A2 ครับ
=IF(C2="",IF(WEEKDAY(B2)=1,B2-4,B2-3),IF(WEEKDAY(C2)=1,C2-4,C2-3))
hednoi19
Member
Posts: 25 Joined: Sat Sep 24, 2016 3:58 pm
#8
Post
by hednoi19 » Thu Nov 24, 2016 8:40 am
Serverchita wrote: สูตรที่ A2 ครับ
=IF(C2="",IF(WEEKDAY(B2)=1,B2-4,B2-3),IF(WEEKDAY(C2)=1,C2-4,C2-3))
ขอยคุณพี่มากครับ ได้ตามที่ต้องการเลย
hednoi19
Member
Posts: 25 Joined: Sat Sep 24, 2016 3:58 pm
#9
Post
by hednoi19 » Thu Nov 24, 2016 8:57 am
Serverchita wrote: สูตรที่ A2 ครับ
=IF(C2="",IF(WEEKDAY(B2)=1,B2-4,B2-3),IF(WEEKDAY(C2)=1,C2-4,C2-3))
พี่ครับเพิ่มเติม** ถ้านับเฉพาะวันอาทิตย์เป็นวันหยุด แก้ไขสูตรแบบไหนครับ ทำงานจันทร์ - เสาร์ครับ
Serverchita
Bronze
Posts: 296 Joined: Wed Nov 18, 2015 1:28 pm
Excel Ver: 365
#10
Post
by Serverchita » Thu Nov 24, 2016 11:11 am
hednoi19 wrote: Serverchita wrote: สูตรที่ A2 ครับ
=IF(C2="",IF(WEEKDAY(B2)=1,B2-4,B2-3),IF(WEEKDAY(C2)=1,C2-4,C2-3))
พี่ครับเพิ่มเติม** ถ้านับเฉพาะวันอาทิตย์เป็นวันหยุด แก้ไขสูตรแบบไหนครับ ทำงานจันทร์ - เสาร์ครับ
ไม่เข้าใจคำถามครับ อธิบายแบบละเอียดด้วยครับ เผื่อท่านอื่นมาตอบให้ครับ
hednoi19
Member
Posts: 25 Joined: Sat Sep 24, 2016 3:58 pm
#11
Post
by hednoi19 » Thu Nov 24, 2016 1:40 pm
Serverchita wrote: hednoi19 wrote: Serverchita wrote: สูตรที่ A2 ครับ
=IF(C2="",IF(WEEKDAY(B2)=1,B2-4,B2-3),IF(WEEKDAY(C2)=1,C2-4,C2-3))
พี่ครับเพิ่มเติม** ถ้านับเฉพาะวันอาทิตย์เป็นวันหยุด แก้ไขสูตรแบบไหนครับ ทำงานจันทร์ - เสาร์ครับ
ไม่เข้าใจคำถามครับ อธิบายแบบละเอียดด้วยครับ เผื่อท่านอื่นมาตอบให้ครับ
ขออนุญาตแก้ไขคำถามครับ จากเดิมนับวันหยุดแค่วันอาทิตย์ **เพิ่มเติมคือไม่นับวันเสาร์-วันอาทิตย์ครับ จะแก้ไขสูตรได้อย่างไรบ้างครับ
ตัวอย่างเช่น วันจันทร์ที่ 21/11/59 ไม่รวม เสาร์-อาทิตย์ (-4 วัน) เท่ากับวันพุธที่ 16/11/59 ประมาณนี้ครับพี่
DhitiBank
Gold
Posts: 1676 Joined: Mon Oct 15, 2012 12:07 am
#12
Post
by DhitiBank » Thu Nov 24, 2016 4:38 pm
ลองแบบนี้ครับ
A2
=IF(B2="","",IF(C2="",B2-SUMPRODUCT((WEEKDAY(ROW(INDIRECT((B2-3)&":"&B2)))=1)+(WEEKDAY(ROW(INDIRECT((B2-3)&":"&B2)))=7)),C2-SUMPRODUCT((WEEKDAY(ROW(INDIRECT((C2-3)&":"&C2)))=1)+(WEEKDAY(ROW(INDIRECT((C2-3)&":"&C2)))=7)))-3)
Enter >> คัดลอกลงล่างครับ
parakorn
Gold
Posts: 1223 Joined: Thu Mar 14, 2013 9:41 am
Location: Central Chaengwattana[Tops]
Excel Ver: 365
Contact:
#13
Post
by parakorn » Thu Nov 24, 2016 4:41 pm
ลองแบบนี้ดูครับ
A2 พิมพ์
=IF(C2="",IF(WEEKDAY(B2)=7,B2-4,IF(OR(WEEKDAY(B2)=1,WEEKDAY(B2)=2,WEEKDAY(B2)=3,WEEKDAY(B2)=4),B2-5,B2-3)),IF(WEEKDAY(C2)=7,C2-4,IF(OR(WEEKDAY(C2)=1,WEEKDAY(C2)=2,WEEKDAY(C2)=3,WEEKDAY(C2)=4),C2-5,C2-3)))
hednoi19
Member
Posts: 25 Joined: Sat Sep 24, 2016 3:58 pm
#14
Post
by hednoi19 » Thu Nov 24, 2016 6:35 pm
DhitiBank wrote: ลองแบบนี้ครับ
A2
=IF(B2="","",IF(C2="",B2-SUMPRODUCT((WEEKDAY(ROW(INDIRECT((B2-3)&":"&B2)))=1)+(WEEKDAY(ROW(INDIRECT((B2-3)&":"&B2)))=7)),C2-SUMPRODUCT((WEEKDAY(ROW(INDIRECT((C2-3)&":"&C2)))=1)+(WEEKDAY(ROW(INDIRECT((C2-3)&":"&C2)))=7)))-3)
Enter >> คัดลอกลงล่างครับ
มันขึ้นเป็นวันเสาร์แทนครับ ไม่ทราบว่าต้องแก้ไขตรงไหน วันเสาร์-อาทิตย์ ต้องเป็น 0 ครับ
ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
hednoi19
Member
Posts: 25 Joined: Sat Sep 24, 2016 3:58 pm
#15
Post
by hednoi19 » Thu Nov 24, 2016 6:53 pm
parakorn wrote: ลองแบบนี้ดูครับ
A2 พิมพ์
=IF(C2="",IF(WEEKDAY(B2)=7,B2-4,IF(OR(WEEKDAY(B2)=1,WEEKDAY(B2)=2,WEEKDAY(B2)=3,WEEKDAY(B2)=4),B2-5,B2-3)),IF(WEEKDAY(C2)=7,C2-4,IF(OR(WEEKDAY(C2)=1,WEEKDAY(C2)=2,WEEKDAY(C2)=3,WEEKDAY(C2)=4),C2-5,C2-3)))
ได้ตามที่ต้องการเลยครับ ขอบคุณมากครับ
**หากพอมีเวลา ช่วยมาขยายความสูตรนี้ทีครับ**
ขอบคุณมากครับ
parakorn
Gold
Posts: 1223 Joined: Thu Mar 14, 2013 9:41 am
Location: Central Chaengwattana[Tops]
Excel Ver: 365
Contact:
#16
Post
by parakorn » Fri Nov 25, 2016 9:11 am
ใช้ If แบ่งออกเป็น 2เงื่อนไขใหญ่ๆ ดังนี้ครับ
ถ้า C2 เป็นช่องว่าง > กรณีเป็นจริงให้ดึงข้อมูลกลุ่มแรก > กรณีเป็นเท็จให้ดึงข้อมูลกลุ่มหลัง
กลุ่มแรกคือ
IF(WEEKDAY(B2)=7,B2-4,IF(OR(WEEKDAY(B2)=1,WEEKDAY(B2)=2,WEEKDAY(B2)=3,WEEKDAY(B2)=4),B2-5,B2-3))
แปลได้ดังนี้ครับ
ถ้า WEEKDAY(B2) = วันเสาร์ ให้แสดงวันที่ จาก B2 แล้วย้อนไป 4 วัน
ถ้า WEEKDAY(B2) = วันอาทิตย์ , วันจันทร์ , วันอังคาร หรือวันพุธ ให้แสดงวันที่ จาก B2 แล้วย้อนไป 5 วัน
ที่เหลือ ให้แสดงวันที่ จาก B2 แล้วย้อนไป 3 วัน
กลุ่มที่สอง ก็เช่นเดียวกันครับ แต่เปลี่ยนจาก B2 เป็น C2
DhitiBank
Gold
Posts: 1676 Joined: Mon Oct 15, 2012 12:07 am
#17
Post
by DhitiBank » Fri Nov 25, 2016 12:10 pm
hednoi19 wrote:
มันขึ้นเป็นวันเสาร์แทนครับ ไม่ทราบว่าต้องแก้ไขตรงไหน วันเสาร์-อาทิตย์ ต้องเป็น 0 ครับ
ขอบคุณครับ
ขออภัยครับ ผมเข้าใจผิด
=IF(B2="","",IF(C2="",B2,C2)-LOOKUP(WEEKDAY(IF(C2="",B2,C2)),{1,5,7},{5,3,4}))
hednoi19
Member
Posts: 25 Joined: Sat Sep 24, 2016 3:58 pm
#18
Post
by hednoi19 » Wed Nov 30, 2016 9:58 am
DhitiBank wrote: hednoi19 wrote:
มันขึ้นเป็นวันเสาร์แทนครับ ไม่ทราบว่าต้องแก้ไขตรงไหน วันเสาร์-อาทิตย์ ต้องเป็น 0 ครับ
ขอบคุณครับ
ขออภัยครับ ผมเข้าใจผิด
=IF(B2="","",IF(C2="",B2,C2)-LOOKUP(WEEKDAY(IF(C2="",B2,C2)),{1,5,7},{5,3,4}))
ได้คำตอบตามที่ต้องการเลยครับ **หากมีแก้ไขทำนับวันเสาร์ด้วยต้องแก้ไขอย่างไรครับ มองดูยังไม่ค่อยเข้าใจสูตรครับ
ขอบคุณพี่มากครับ
DhitiBank
Gold
Posts: 1676 Joined: Mon Oct 15, 2012 12:07 am
#19
Post
by DhitiBank » Wed Nov 30, 2016 10:00 pm
hednoi19 wrote: หากมีแก้ไขทำนับวันเสาร์ด้วยต้องแก้ไขอย่างไรครับ มองดูยังไม่ค่อยเข้าใจสูตรครับ
LOOKUP([b]WEEKDAY(IF(C2="",B2,C2))[/b],[color=#FF0000]{1,5,7}[/color],[color=#0000FF]{5,3,4}[/color])
แก้ไขในชุดข้อมูลที่ระบายสีแดงกับน้ำเงินก็ได้ครับ
สีแดง คือ วันในสัปดาห์ โดยเลข 1 คือวันอาทิตย์ ไล่ไปจนถึงเลข 7 คือวันเสาร์
สีน้ำเงิน คือ วันที่ต้องการให้หักครับ จะกี่วันก็ใส่ตามที่ต้องการ โดยใส่ให้ลำดับสอดคล้องกับข้อมูลสีแดง
ถ้าให้เข้าใจง่ายๆ ก็ใส่ทั้ง 7 วันเลยก็ได้ครับ เช่น
[color=#FF0000]{1,2,3,4,5,6,7}[/color],[color=#0000FF]{11,12,13,14,15,16,17}[/color]
จากข้างบนนี้ก็หมายความว่า หากพบว่าเป็นวันอาทิตย์ ก็ให้ลบด้วย 11 หากเป็นวันเสาร์ก็ให้ลบด้วย 17 เป็นต้นครับ