: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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
poipoi
Member
Member
Posts: 164
Joined: Fri May 18, 2012 11:23 am
Contact:

:: การหาผลต่างของวันแบบมีหลายเงื่อนไข ::

#1

Post by poipoi »

จากไฟล์ที่แนบไปครับ ผมได้พยายามลองหาผลต่างของวันที่ต่างๆเหล่านี้ โดยใช้เงื่อนไขต่างๆแต่ก็ไม่ไหวครับไม่สามารถทำได้เลย

ผมจึงอยากจะมาขอคำปรึกษากูรูที่นี่ครับว่า;
ผมต้องการหาว่าใน
column A (1) จะมากกว่า column B(3) ได้ไม่เกิน 1 วัน
column C (5) ควรที่จะไม่น้อยกว่า column B(3)
column D (10) ควรที่จะไม่น้อยกว่า column C(5)
column E (12) ควรที่จะไม่น้อยกว่า column (D10)
column F (13) ควรที่จะมากกว่าทุกๆ column หรือ เท่ากับ Column E(12) แต่ทุกๆ column ไม่ควรเกิน column F(13)นี้ครับ

หากตรงตามเงื่อนไขทั้งหมดอยากให้โชว์ Pass หาก ไม่ผ่านโชว์ Not Pass

รบกวนกูรูทุกท่านแนะนำด้วยครับ

ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31255
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: :: การหาผลต่างของวันแบบมีหลายเงื่อนไข ::

#2

Post by snasui »

:D สูตรน่าจะเป็นตามด้านล่างครับ

=IF(AND(A2-B2=1,C2>=B2,D2<C2,E2>=D2,SUMPRODUCT(--(A2:E2>F2))=0),"Pass","Not Pass")
poipoi
Member
Member
Posts: 164
Joined: Fri May 18, 2012 11:23 am
Contact:

Re: :: การหาผลต่างของวันแบบมีหลายเงื่อนไข ::

#3

Post by poipoi »

จากสูตรผมลองปรับนิดหน่อยได้ตามต้องการดังนี้ครับ

=IF(AND(A64-B64<=1,C64>=B64,D64>=C64,E64>=D64,F64>=E64,SUMPRODUCT(--(A64:E64>F64))=0),"Pass","Not Pass")

แต่มีปัญหาอยู่ 2 ปัญหาว่า

1. วันที่ในช่องนั้นๆถ้าเป็นช่องว่าง สูตรจะถูกตัดเป็น Not Pass ทันที ซึ่งในกรณีช่องว่างผมต้องการให้มันข้ามไปไม่ต้องนับต้องทำอย่างไรครับ
2. ฟอแมตของวันที่มี 2 แบบครับคือ dd/mm/yyyy กับ mm/dd/yyyy จะมีทางไหนบ้างครับที่จะปรับทั้งหมดให้เป็น mm/dd/yyyy บ้างครับ

ขอบคุณครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31255
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: :: การหาผลต่างของวันแบบมีหลายเงื่อนไข ::

#4

Post by snasui »

poipoi wrote:1. วันที่ในช่องนั้นๆถ้าเป็นช่องว่าง สูตรจะถูกตัดเป็น Not Pass ทันที ซึ่งในกรณีช่องว่างผมต้องการให้มันข้ามไปไม่ต้องนับต้องทำอย่างไรครับ
ลองเขียนมาเป็นข้อความบรรยายเงื่อนไขทั้งหมดมาว่าเป็นอย่างไร จะได้ทราบถึงคำว่า ข้ามค่านั้นไม่ต้องนับ มีลักษณะเป็นอย่างไร
poipoi wrote:2. ฟอแมตของวันที่มี 2 แบบครับคือ dd/mm/yyyy กับ mm/dd/yyyy จะมีทางไหนบ้างครับที่จะปรับทั้งหมดให้เป็น mm/dd/yyyy บ้างครับ
จะทราบได้อย่างไรครับว่าเซลล์นั้น ๆ เป็นรูปแบบใด :?:
poipoi
Member
Member
Posts: 164
Joined: Fri May 18, 2012 11:23 am
Contact:

Re: :: การหาผลต่างของวันแบบมีหลายเงื่อนไข ::

#5

Post by poipoi »

จากตรงนี้;

column A (1) จะมากกว่า column B(3) ได้ไม่เกิน 1 วัน
column C (5) ควรที่จะไม่น้อยกว่า column B(3)
column D (10) ควรที่จะไม่น้อยกว่า column C(5)
column E (12) ควรที่จะไม่น้อยกว่า column (D10)
column F (13) ควรที่จะมากกว่าทุกๆ column หรือ เท่ากับ Column E(12) แต่ทุกๆ column ไม่ควรเกิน column F(13)นี้ครับ

และจากไฟล์ที่แนบไปจะเห็นได้ว่า มีบาง cell มีค่าเป็น cell เปล่าๆไม่มีค่าอะไรครับ พอทำการใส่สูตรเข้าไปมันก็จะไม่สามารถหาค่าที่แท้จิงใน row นั้นๆไม่ได้

ผมจึงอยากที่จะให้ข้ามช่องว่างไป+เงื่อนไขเดิมจากข้างบนครับ

อย่างเช่น column C = 24/04/2013, column D = (Blank cell), column E = 30/04/2013

พอใส่สูตรเข้าไปเช่น IF(AND(D>=C,E>=D),"Pass","Not Pass") จากสูตรตัวอย่างจะเห็นว่า ถ้า Column D เป็นช่องว่างมันก็จะมีค่าเท่ากับศูนย์ไปโดยปริยาย

ดังนั้นสูตรมันก็จะโชว์ Not Pass ไปโดยปริยายเช่นกันครับ จากตรงนี้ผมอยากจะหาวิธีที่ทำให้มันข้ามช่องว่างนั้นไปโดยที่ยังคงเงื่อนไขเดิมครับ

ข้อ 2;

ในไฟล์ที่แนบไปมันโชว์เป็น 24/04/2013 กับ 04/24/2013 ครับ ผมเลยอยากจะให้มันกลายเป็นแบบ 04/24/2013 ทั้งหมดครับ

ซึ่งผมลองเช็คดูแล้วมันมีแค่ฟอแมตแค่ 2 ตัวนี้ครับ

ขอบคุณครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31255
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: :: การหาผลต่างของวันแบบมีหลายเงื่อนไข ::

#6

Post by snasui »

:shock: ผมเข้าใจที่คุณต้องการทั้งสองข้อครับ

คุณควรเขียนเงื่อนไขมาเป็นคำพูดว่าเงื่อนไขเป็นแบบใด จากที่เขียนมา
poipoi wrote:อย่างเช่น column C = 24/04/2013, column D = (Blank cell), column E = 30/04/2013

พอใส่สูตรเข้าไปเช่น IF(AND(D>=C,E>=D),"Pass","Not Pass") จากสูตรตัวอย่างจะเห็นว่า ถ้า Column D เป็นช่องว่างมันก็จะมีค่าเท่ากับศูนย์ไปโดยปริยาย

ดังนั้นสูตรมันก็จะโชว์ Not Pass ไปโดยปริยายเช่นกันครับ จากตรงนี้ผมอยากจะหาวิธีที่ทำให้มันข้ามช่องว่างนั้นไปโดยที่ยังคงเงื่อนไขเดิมครับ
คำว่าข้ามคือ ข้ามอย่างไร เงื่อนไขในสูตรเป็นอย่างไรถึงจะเรียกว่าข้ามครับ
poipoi wrote:ข้อ 2;

ในไฟล์ที่แนบไปมันโชว์เป็น 24/04/2013 กับ 04/24/2013 ครับ ผมเลยอยากจะให้มันกลายเป็นแบบ 04/24/2013 ทั้งหมดครับ

ซึ่งผมลองเช็คดูแล้วมันมีแค่ฟอแมตแค่ 2 ตัวนี้ครับ
วัน เดือน ปี ขึ้นอยู่กับการกำหนด Regional and Language ว่าเป็นอย่างไร

หากข้อมูลเป็นอย่างนี้ เช่น วันที่ 2 เดือน 1 กับวันที่ 1 เดือน 2 เราจะทราบได้อย่างไรว่าค่าใดผิดและต้องเปลี่ยนเป็นค่าใด

กล่าวคือ
2/1/2013
1/2/2013

จะทราบได้อย่างไรว่าค่าใดเดือนขึ้นก่อนตามด้วยวัน หรือ วันขึ้นก่อนตามด้วยเดือน :?:
poipoi
Member
Member
Posts: 164
Joined: Fri May 18, 2012 11:23 am
Contact:

Re: :: การหาผลต่างของวันแบบมีหลายเงื่อนไข ::

#7

Post by poipoi »

จากข้อ 1. ข้ามในที่นี้อ้างอิงจาก :> column C = 24/04/2013, column D = (Blank cell), column E = 30/04/2013

ถ้า column D ไปหาค่ากับ column C แล้วค่าที่ได้ออกมาจะเป็น Not Pass แน่ๆ ผมจึงอยากจะให้เวลาเซล์ใดๆที่มีค่าเป็นช่องว่างเวลาไปหาค่ากับเซลก่อนหน้าแล้วผลจะไม่ออกมาเป็น Not Pass ครับ

ส่วนในกรณีของฟอแมตวันที่ จากที่อาจารย์แย้งเอาไว้ผมก็ลืมข้อนี้ไปครับ แล้วไฟล์ที่ได้นั้นมันถูกดึงออกมาจากระับบที่เขาต่างคนต่างคีย์เข้าไปกันไม่สามารถบังคับฟอแมตได้ครับ

ขอบคุณครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31255
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: :: การหาผลต่างของวันแบบมีหลายเงื่อนไข ::

#8

Post by snasui »

poipoi wrote:ถ้า column D ไปหาค่ากับ column C แล้วค่าที่ได้ออกมาจะเป็น Not Pass แน่ๆ ผมจึงอยากจะให้เวลาเซล์ใดๆที่มีค่าเป็นช่องว่างเวลาไปหาค่ากับเซลก่อนหน้าแล้วผลจะไม่ออกมาเป็น Not Pass ครับ
:D ไม่เป็น Not Pass แล้วเป็นค่าใดครับ หากบอกไม่ได้ก็เขียนสูตรไม่ได้ครับ

หากบอกว่าไม่ต้องพิจารณาเงือนไขนั้น ให้พิจารณาเงื่อนไขที่เหลือต่อไป เช่นนี้จึงจะมีความเป็นไปได้ แต่ถ้ามีความซับซ้อนขนาดนั้นคงต้องหันไปใช้ VBA ซึ่งต้องเขียนมาก่อนครับ
poipoi
Member
Member
Posts: 164
Joined: Fri May 18, 2012 11:23 am
Contact:

Re: :: การหาผลต่างของวันแบบมีหลายเงื่อนไข ::

#9

Post by poipoi »

เรียนอาจารย์ครับ

ขอบคุณมากครับสำหรับความเอาใจใส่ต่อลูกเวปครับ :D

ผมได้แก้ปัญหาโดยการไม่ไปคิดว่าที่เกิดปัญหาแทนแล้วครับแล้วก็เป้นผลที่น่าพอใจ ขอบคุณมากครับ

ต่อไปผมมีปัญหาข้อต่อไปจะถามอาจารย์และกูรู ผมจะขอต้องไปกระทู้ต่อไปครับ
Post Reply