Page 1 of 1

สอบถามการใช้เงื่อนไข If กับวันที่ครับ

Posted: Sat Mar 10, 2018 10:07 pm
by kampanart
คือ ผมใช้ IF เพื่อเลือกวันที่ครับ สมมุติมีอยู่ 6 วัน พุธ, พฤ, ศุกร์, เสาร์, อาทิตย์, จันทร์

ตัวข้อมูลของผมจะลบ 1 วัน ซึ่งถ้าอยู่วัน พฤ ผมจะให้ผมพุธ = Y ส่วนที่เหลือ = N แต่ถ้าผมอยู่วันจันทร์ผมจะให้ แค่ศุกร์กับเสาร์ = Y ที่เหลือ N ครับซึ่งต้องใช้ IF อย่างไงครับ

Re: สอบถามการใช้เงื่อนไข If กับวันที่ครับ

Posted: Sat Mar 10, 2018 10:58 pm
by snasui
:D ตัวอย่างสูตรที่ A3 ครับ

=IF(AND(WEEKDAY($A$6,2)=1,OR(WEEKDAY(A1,2)=5,WEEKDAY(A1,2)=6)),"Y",IF(AND(WEEKDAY($A$6,2)<>1,WEEKDAY(A1,2)=WEEKDAY($A$6-1,2)),"Y","N"))

Enter > Copy ไปด้านขวา

Re: สอบถามการใช้เงื่อนไข If กับวันที่ครับ

Posted: Sun Mar 11, 2018 8:48 am
by kampanart
อาจารย์ครับผมสอบถามเพิ่มเติมครับ สมมุติวันจันทร์ที่ 12 ให้ Y แค่ศุกร์ 9 กับ เสาร์ที่10 ครับไม่ Y ศุกร์ที่16 กับเสา17 (จะไม่ Y มากกว่าวันที่ตัวเองอยู่)

Re: สอบถามการใช้เงื่อนไข If กับวันที่ครับ

Posted: Sun Mar 11, 2018 8:57 am
by snasui
:D ตัวอย่างการปรับสูตรครับ

=IF(AND(A1<$A$6,WEEKDAY($A$6,2)=1,OR(WEEKDAY(A1,2)=5,WEEKDAY(A1,2)=6)),"Y",IF(AND(WEEKDAY($A$6,2)<>1,WEEKDAY(A1,2)=WEEKDAY($A$6-1,2)),"Y","N"))

Re: สอบถามการใช้เงื่อนไข If กับวันที่ครับ

Posted: Sun Mar 11, 2018 10:07 am
by kampanart
อาจารย์ครับติดอีกนิดเดียวครับ คือเวลาอยู่วันอังคารจะไป Y ที่วันจันทร์แค่วันก่อนหน้าวันอังคาร์ ณ ปัจจุบันอย่างเดี่ยวแต่นี่ไป Y ทุกจันทร์เลยอะครับ

Re: สอบถามการใช้เงื่อนไข If กับวันที่ครับ

Posted: Sun Mar 11, 2018 10:18 am
by snasui
:D ตัวอย่างการปรับสูตรครับ

=IF(AND(A1<$A$6,WEEKDAY($A$6,2)=1,OR(WEEKDAY(A1,2)=5,WEEKDAY(A1,2)=6)),"Y",IF(AND(A1<$A$6,WEEKDAY($A$6,2)<>1,WEEKDAY(A1,2)=WEEKDAY($A$6-1,2)),"Y","N"))

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

Re: สอบถามการใช้เงื่อนไข If กับวันที่ครับ

Posted: Sun Mar 11, 2018 10:54 am
by kampanart
สงสัยครับว่าทำไม พออยุ่จันทร์ที่ 19 มันไป Y ที่ ศุกร์2,9 กับ เสาร์3,10 ครับ

Re: สอบถามการใช้เงื่อนไข If กับวันที่ครับ

Posted: Sun Mar 11, 2018 11:09 am
by snasui
:D เพราะมันเข้าเงื่อนไขใดเงื่อนไขหนึ่งตามสูตรนั้นครับ ถ้าไม่เข้าเงื่อนไขก็จะไม่แสดง "Y" ครับ

ลองอธิบายเงื่อนไขที่เป็นไปได้ทั้่งหมดมาใหม่ จะได้เขียนสูตรให้ครอบคลุมทีเดียว การเป็น Y และ เป็น N ต้องเข้าเงื่อนใดบ้าง กี่เงื่อนไข พิจารณาล่วงหน้าไปกี่วัน ย้อนหลังไปกี่วัน ฯลฯ ครับ

Re: สอบถามการใช้เงื่อนไข If กับวันที่ครับ

Posted: Sun Mar 11, 2018 12:32 pm
by kampanart
เงื่อนไงเป็น แบบนี่อะครับ

1.สมมุติเป็นวันอังคารที่ 13/03/2018 จะให้ตัว Y แสดงบนก่อนหน้า 1 วัน (DAY 1) อาทิเช่น วันอังคารที่ 13/03/2018 ให้ Y แสดงที่ จันทร์12/3/2018 เท่านั้น (1-11 กับ 13-31 จะเป็น N ครับ Y ที่ 12 วันเดี่ยวครับ)
2.ถ้าเป็นวันจันทร์ที่ 13/03/2018 จะให้ Y แสดงบน วันศุกร์ 9/03/2018 กับเสาร์ 10/03/2018 เท่านั้น ส่วนที่เหลือ N ทั้งหมดรับ ส่วนถ้าเป็นจันทร์ที่ 19 จะให้ Y ที่ศุกร์ 17 กับเสาร์ 18 เท่านั้น ที่เหลือ Nหมด ศุกร์ 9 กับเสาร์ 10 ที่ผ่านมาก็ N ครับ

Re: สอบถามการใช้เงื่อนไข If กับวันที่ครับ

Posted: Sun Mar 11, 2018 2:43 pm
by snasui
:D ช่วยอธิบายเพิ่มเติมมาอีก 2 กรณีตามด้านล่างมาอีกรอบครับ
  • กรณี A6 เป็นวันเสาร์ที่ 17/03/2018 จะแสดงผลอย่างไร
  • กรณี A6 เป็นวันอาทิตย์ที่ 18/03/2018 จะแสดงผลอย่างไร

Re: สอบถามการใช้เงื่อนไข If กับวันที่ครับ

Posted: Sun Mar 11, 2018 4:17 pm
by kampanart
กรณี A6 เป็นวันเสาร์ที่ 17/03/2018 จะแสดงผลอย่างไร
= วันเสาร์ที่ 17/03/2018 วันตัวเองจะเป็น = N จะไปแสดง U บนวันก่อนหน้าคือวันศุกร์แค่วันเดียวครับ ทีเหลือ N หมด

กรณี A6 เป็นวันอาทิตย์ที่ 18/03/2018 จะแสดงผลอย่างไร

= กรณีเดียวกับเคสข้างบนครับ

Re: สอบถามการใช้เงื่อนไข If กับวันที่ครับ

Posted: Sun Mar 11, 2018 4:26 pm
by snasui
kampanart wrote: Sun Mar 11, 2018 4:17 pm กรณี A6 เป็นวันอาทิตย์ที่ 18/03/2018 จะแสดงผลอย่างไร

= กรณีเดียวกับเคสข้างบนครับ
:D กรณีเดียวกับเคสข้างบนคือวันเสาร์ก่อนหน้า 1 ลำดับเป็น Y และนอกจากนั้นเป็น N ใช่หรือไม่ครับ :?:

Re: สอบถามการใช้เงื่อนไข If กับวันที่ครับ

Posted: Sun Mar 11, 2018 4:50 pm
by kampanart
ถูกต้องครับ เป็นวันอาทิตย์ที่ 18/03/2018 จะแสดงผล Y ที่วันเสาร์ที่17/03/2018 ส่วนที่เหลือ เป็น N หมดครับ

Re: สอบถามการใช้เงื่อนไข If กับวันที่ครับ

Posted: Sun Mar 11, 2018 5:01 pm
by snasui
kampanart wrote: Sun Mar 11, 2018 4:50 pm ถูกต้องครับ เป็นวันอาทิตย์ที่ 18/03/2018 จะแสดงผล Y ที่วันเสาร์ที่17/03/2018 ส่วนที่เหลือ เป็น N หมดครับ
:D ตัวอย่างการปรับสูตรที่ A3 ครับ

=IF(A1>=$A$6,"N",IF(AND($A$6-A1<7,ISNUMBER(FIND(WEEKDAY($A$6,2),"16")),WEEKDAY(A1,2)=5),"Y",IF(AND(ISERR(FIND(WEEKDAY($A$6,2),"16")),A1=$A$6-1),"Y","N")))

Enter > Copy ไปทางขวา

Re: สอบถามการใช้เงื่อนไข If กับวันที่ครับ

Posted: Sun Mar 11, 2018 5:09 pm
by kampanart
ช่วยอธิบาย Code หน่อยได้ไหมครับ คือตรงผมก็ยังงง ครับ Codeอยู่อะ พออาจารย์แก้มาให้มันถูกต้องครับ แต่ ขาดวันเสาร์ ไม่ Y ครับ ถ้าวันปัจจุบันเป็นวันจันทร์ มัน Yแค่ศุกร์

Re: สอบถามการใช้เงื่อนไข If กับวันที่ครับ

Posted: Sun Mar 11, 2018 5:34 pm
by snasui
:lol: ผมสรุปเงือนไขใหม่ดังนี้
  1. กรณี A6 เป็นวันจันทร์ ให้ค่าใน A1:AY1 ที่เป็นวันศุกร์และเสาร์ ก่อนหน้า 1 ลำดับเป็น Y นอกนั้นเป็น N
  2. กรณี A6 เป็นวันอื่นที่ไม่ใช่ตามข้อ 1 ให้ค่าใน A1:AY1 ที่เป็นวันก่อนหน้า A6 1 ลำดับเป็น Y นอกนั้นเป็น N
หากผมเข้าใจถูกต้องสูตรใน A3 ปรับเป็นด้านล่างครับ

=IF(A1>=$A$6,"N",IF(AND($A$6-A1<7,ISNUMBER(FIND(WEEKDAY($A$6,2),"16")),OR(WEEKDAY(A1,2)=5,WEEKDAY(A1,2)=6)),"Y",IF(AND(ISERR(FIND(WEEKDAY($A$6,2),"16")),A1=$A$6-1),"Y","N")))

Re: สอบถามการใช้เงื่อนไข If กับวันที่ครับ

Posted: Sun Mar 11, 2018 7:16 pm
by kampanart
ถูกต้องครับอาจารย์ ขอบคุณมากๆครับ