Page 1 of 1

คำสั่ง IF

Posted: Thu May 29, 2014 12:39 pm
by impim
if.xlsx
7.59>=A9>=7.46 และ 7.46<=A9<=7.59
ความหมายไม่เหมือนกันเหรอ ทำไมพอใช้ อันหลังมัน FALSE เมื่อ A9=7.46

สิ่งที่ต้องการคือ (เวลาเข้างานตอนเช้า)
1.ถ้า ก่อน 7.46 =0
2.ถ้า ตั้งแต่ 7.46- 7.59 = A19-7.45
3.ถ้า เวลา 8.00 ดังนั้น A9 = 8.00 คำตอบที่ถูกคือ 0.15
4.ถ้า A9 มากกว่า 8.00 คำตอบที่ถูกคือ [(A19-8.00)*3]+0.15

=IF(7.46>A9,0,IF(7.59>=A9>=7.46,A9-7.45,IF(A9=8,0.15,IF(A9>8,((A9-8)*3)+0.15))))

ถ้าใช้สูตรนี้ เวลาตั้งแต่ 8.00 จะได้คำตอบเป็น0.55 ซึ่งไม่ถูกต้อง

1. ถ้าเข้างาน 8.00 คำตอบต้องเป็น 0.15
แต่ได้คำตอบเป็น 0.55
2. ถ้าเข้างาน 8.01 คำตอบต้องเป็น (0.01*3)+0.15 ซึ่งต้องเท่ากับ 0.18
แต่ได้คำตอบเป็น 0.56

ซึ่งถ้าดูจากคำตอบ แสดงว่า 8.00 ยังไม่พ้นช่วง
7.59>=A9>=7.46,A9-7.45

ต้องทำอย่างไร

Re: คำสั่ง IF

Posted: Thu May 29, 2014 12:44 pm
by bank9597
:D ขอไฟล์ตัวอย่างได้ไหมครับ

Re: คำสั่ง IF

Posted: Thu May 29, 2014 3:07 pm
by impim
เพิ่งแนบในคำถาม ไม่แน่ใจว่าได้รับหรือเปล่าค่ะ

Re: คำสั่ง IF

Posted: Thu May 29, 2014 3:20 pm
by bank9597
:D ลองดูครับ

ที่ B12 คีย์ =IF(7.46>A12,0,IF(AND(7.59>=A12,A12>=7.46),A12-7.45,IF(A12=8,0.15,IF(A12>8,((A12-8)*3)+0.15)))) คัดลอกลงมา

Re: คำสั่ง IF

Posted: Thu May 29, 2014 3:56 pm
by impim
ขอบคุณมากค่ะ
ต้องเขียนแบบนี้หรือค่ะ

รบกวนถามหน่อยค่ะ
if(7.59>=A1>=7.46, กับ
if(7.46<=A1<=7.59,
ไม่เหมือนกันหรือค่ะ

แล้ว
(AND(7.59>=A12,A12>=7.46
ใช้ในกรณีไหนค่ะ

ขอบคุณอีกครั้งค่ะ

Re: คำสั่ง IF

Posted: Thu May 29, 2014 4:03 pm
by bank9597
impim wrote:ขอบคุณมากค่ะ
ต้องเขียนแบบนี้หรือค่ะ

รบกวนถามหน่อยค่ะ
if(7.59>=A1>=7.46, กับ
if(7.46<=A1<=7.59,
ไม่เหมือนกันหรือค่ะ

แล้ว
(AND(7.59>=A12,A12>=7.46
ใช้ในกรณีไหนค่ะ

ขอบคุณอีกครั้งค่ะ
:D

if(7.59>=A1>=7.46 ไม่สามารถใช้ได้ครับ เพราะมันเป็น 2 เงื่อน แต่สูตรจะมองเห็นแค่เงื่อนไขเดียว คือ if(7.59>=A1 คุณต้องใช้ if อีกตัวเข้ามา เช่น if(7.59>=A1if(A1>=7.46,1,0)) เป็น

ส่วน (AND(7.59>=A12,A12>=7.46 จะมีสูตร AND เข้ามาช่วย คือ ช่วยให้สามารถระบุเงื่อนไขได้มากกว่า 1 เงื่อนไขครับ จะใช้ก็ต่อเมื่อเราต้องการใช้เงื่อนไขที่มากกว่า 1 ข้อครับ

Re: คำสั่ง IF

Posted: Thu May 29, 2014 4:08 pm
by impim
ขอบคุณมากค่ะ

Re: คำสั่ง IF

Posted: Thu May 29, 2014 4:40 pm
by snasui
impim wrote:if(7.59>=A1>=7.46 ไม่สามารถใช้ได้ครับ เพราะมันเป็น 2 เงื่อน แต่สูตรจะมองเห็นแค่เงื่อนไขเดียว
:D มาช่วยเสริมครับ

สูตรจะมองเห็นทุกเงื่อนไขครับ แต่อาจจะไม่ตรงกับที่เราเข้าใจ

อธิบายย่อ ๆ

การคำนวณของ Excel จะคำนวณจากซ้ายไปขวาสำหรับเครื่องหมายการคำนวณที่มีศักดิ์เท่ากัน

สำหรับกรณีนี้ Excel จะแปลผลโดยหาผลลัพธ์ของ 7.59>=A1 ออกมาก่อน หากเป็นจริงผลลัพธ์คือ True หากเป็นเท็จผลลัพธ์คือ False จากนั้นนำ True หรือ False ที่ได้ไปเทียบกับตัวถัดไป จะได้เป็น

True>=7.46 หรือ False>=7.46

ทั้งสองกรณีผลลัพธ์จะได้ True อย่างเดียวเท่านั้น ไม่สามารถเป็น False ได้ ทั้งนี้เพราะ True และ False ถูกรับรู้เป็น Text ส่วน 7.46 เป็น Number ซึ่งในโปรแกรม Excel จะถือว่า Text มากว่า Number เสมอ ไม่ว่า Number นั้นจะมีค่ามากเท่าใดก็ตาม

สรุป 7.59>=A1>=7.46 เป็นการเขียนเงื่อนไขทีไม่ถูกต้อง ผลลัพธ์จะเป็น True เสมอไปครับ ตามความมุ่งหมายของสูตรนี้ต้องการให้เข้าเงื่อนไข 2 เงื่อนไขพร้อมกัน ดังนั้นจึงควรใช้ And เข้ามาช่วย เป็น And(7.59>=A1, A1>=7.46) แปลว่า 7.59>=A1 และ A1>=7.46

Re: คำสั่ง IF

Posted: Thu May 29, 2014 4:44 pm
by bank9597
:mrgreen: ขอบคุณอาจารย์มากน่ะครับ ให้ความกระจ่างมากๆเลย

Re: คำสั่ง IF

Posted: Fri May 30, 2014 11:27 am
by impim
คือตอนแรกก็ยังงง ว่า

7.59>=A9>=7.46 และ 7.46<=A9<=7.59
ทำไมจึงได้คำตอบไม่เหมือนกันค่ะ

แต่ตอนนี้เข้าใจแล้วค่ะ


ขอบคุณอาจารย์มากนะคะ

คำสั่ง IF

Posted: Wed Apr 27, 2016 1:54 pm
by impim
ต้องการเขียนสูตรว่า
ถ้า A1 น้อยกว่า 0 คำตอบที่ต้องการ คือ 0 และ
ถ้า A1 มากกว่ากว่า 0 แต่น้อยกว่า 300,000 คำตอบที่ต้องการ คือ AI และ
ถ้า A1 มากกว่า 300,000 คำตอบที่ต้องการ คือ 300,000

ปัญหาคือ เงื่อนไขที่ 2 ไม่ผ่านค่ะ

สูตรที่เขียนคือ
=IF(A1<0,0,IF(0<A1<300000,A1,IF(0<A1>=300000,300000)))
คำตอบที่ได้ = 300,000

สูตรที่เขียนคือ
=IF(A1<0,0,IF(0<A1<300000,A1,IF(and(A1>0,A1>=300000),300000)))
คำตอบที่ได้ = FALSE

รบกวนขอคำแนะนำหน่อยค่ะ

Re: คำสั่ง IF

Posted: Wed Apr 27, 2016 3:14 pm
by XDoll
:D ใช่แบบนี้ไหมครับ
=IF(A1<0,0,IF(A1<300000,A1,IF(A1>=300000,300000)))

Re: คำสั่ง IF

Posted: Wed Apr 27, 2016 9:41 pm
by primevalm
impim wrote:ต้องการเขียนสูตรว่า
ถ้า A1 น้อยกว่า 0 คำตอบที่ต้องการ คือ 0 และ
ถ้า A1 มากกว่ากว่า 0 แต่น้อยกว่า 300,000 คำตอบที่ต้องการ คือ AI และ
ถ้า A1 มากกว่า 300,000 คำตอบที่ต้องการ คือ 300,000

ปัญหาคือ เงื่อนไขที่ 2 ไม่ผ่านค่ะ

สูตรที่เขียนคือ
=IF(A1<0,0,IF(0<A1<300000,A1,IF(0<A1>=300000,300000)))
คำตอบที่ได้ = 300,000

สูตรที่เขียนคือ
=IF(A1<0,0,IF(0<A1<300000,A1,IF(and(A1>0,A1>=300000),300000)))
คำตอบที่ได้ = FALSE

รบกวนขอคำแนะนำหน่อยค่ะ
=MIN(300000,MAX(0,A1))

Re: คำสั่ง IF

Posted: Fri Apr 29, 2016 11:08 am
by impim
ขอบคุณนะคะ คุณ primevalm
จะลองเอาสูตรที่คุณบอกไปใช้ดูนะคะ..

ลองอ่านที่อาจารย์อธิบายไว้ แล้วแก้ใหม่เป็นแบบนี้ได้คำตอบแล้วค่ะ
=IF(A1<0,0,IF(and(0<A1<300000),A1,IF(and(A1>0,A1>=300000),300000)))

ขอบคุณอีกครั้งนะคะ

Re: คำสั่ง IF

Posted: Fri Apr 29, 2016 5:56 pm
by snasui
impim wrote:ขอบคุณนะคะ คุณ primevalm
จะลองเอาสูตรที่คุณบอกไปใช้ดูนะคะ..

ลองอ่านที่อาจารย์อธิบายไว้ แล้วแก้ใหม่เป็นแบบนี้ได้คำตอบแล้วค่ะ
=IF(A1<0,0,IF(and(0<A1<300000),A1,IF(and(A1>0,A1>=300000),300000)))

ขอบคุณอีกครั้งนะคะ
:D ส่วนที่ผมระบายสีไว้เขียนเช่นนั้นไม่ได้ครับ

ที่ถูกต้องควรเป็นด้านล่างครับ

And(0<A1,A1<300000)

Re: คำสั่ง IF

Posted: Mon Aug 15, 2016 1:51 pm
by impim
เรียน อ.snasui ค่ะ

จากสูตร
=IF(A1<0,0,IF(and(0<A1<300000),A1,IF(and(A1>0,A1>=300000),300000)))

รบกวนถามหน่อยค่ะว่าทำไมเขียนแบบนี้ไม่ได้ค่ะ
(and(0<A1<300000)

แต่ต้องเขียนแบบนี้
And(0<A1,A1<300000)

ไม่ทราบว่าเพราะอะไรคะ

ขอบคุณค่ะ

Re: คำสั่ง IF

Posted: Mon Aug 15, 2016 2:26 pm
by วังวู ช่ง
ลองศึกษาตามนี้ก่อนครับ
http://snasui.blogspot.com/2009/03/and-or.html

Re: คำสั่ง IF

Posted: Mon Aug 15, 2016 8:32 pm
by snasui
impim wrote:เรียน อ.snasui ค่ะ

จากสูตร
=IF(A1<0,0,IF(and(0<A1<300000),A1,IF(and(A1>0,A1>=300000),300000)))

รบกวนถามหน่อยค่ะว่าทำไมเขียนแบบนี้ไม่ได้ค่ะ
(and(0<A1<300000)

แต่ต้องเขียนแบบนี้
And(0<A1,A1<300000)

ไม่ทราบว่าเพราะอะไรคะ

ขอบคุณค่ะ
:D อ่านทบทวนที่โพสต์นี้ครับ viewtopic.php?f=3&t=6802&p=43358#p43361