Page 1 of 1
เพิ่มคำสั่ง OR ใน IF และ and ขอคำแนะนำ
Posted: Sat Sep 10, 2016 6:54 pm
by Phonchet
สวัสดีครับ
ผมขอรบกวนขอคำแนะนำหน่อยครับ
จากไฟล์ที่แนบนะครับ ผมอยากใช้คำสั่ง OR เข้าไปด้วย เผื่อว่าสูตรที่เขียนจะสั้นลงกว่านี้ (column I)
สามารถใช้คำสั่ง OR ในหัวข้อสีได้ไหมครับ ซึ่งผมมองว่าถ้าใช้คำสั่ง OR ได้ จะลดทางเลือกจาก 6 เหลือ 3
ขอบคุณครับ
Re: เพิ่มคำสั่ง OR ใน IF และ and ขอคำแนะนำ
Posted: Sat Sep 10, 2016 7:06 pm
by snasui
ไม่ควรใช้ If กับงานที่มีเงื่อนไขจำนวนมากครับ
สำหรับงานลักษณะเช่นนี้ควรมีตารางเงื่อนไขไว้ต่างหากตามด้านล่าง
ConditionTbl.png
จากนั้นเซลล์ I12 คีย์สูตร
=SUMIFS($D$3:$D$8,$A$3:$A$8,F12,$B$3:$B$8,G12,$C$3:$C$8,H12)
Enter > Copy ลงด้านล่าง
Re: เพิ่มคำสั่ง OR ใน IF และ and ขอคำแนะนำ
Posted: Sat Sep 10, 2016 7:29 pm
by Phonchet
อาจารย์ครับ ผมไม่ทราบว่าเข้าใจตรงกันกับอาจารย์หรือไม่ ถ้าไม่ตรงกัน ผมขอถือว่าผมอธิบายไม่ชัดเจนครับ ขอโทษครับ
ใน column F ถึง H ที่เป็นตาราง จะสามารถเลือกข้อความได้ ซึ่งเมื่อสเปคเปลี่ยนไป โปรแกรม (column I) ก็จะแสดงออกมาว่า สปคนี้ใช้โปรแกรมไหน
ซึ่งในส่วนที่ผมสงสัยคือเราสามารถเพิ่มคำสั่ง OR เข้าไปในสูตรได้หรือไม่ เพราะตอนนี้ผมใช้สูตร
=IF(F12="","",IF(AND(F12="4x4",G12="black",H12="REG"),"1",IF(AND(F12="4x4",G12="black",H12="EXT"),"2",IF(AND(F12="4x4",G12="black",H12="crew"),"3",IF(AND(F12="4x4",G12="white",H12="REG"),"1",IF(AND(F12="4x4",G12="white",H12="EXT"),"2",IF(AND(F12="4x4",G12="white",H12="crew"),"3","!!!")))))))
ผมมองว่าถ้าสามารถ ใช้ OR ในส่วนของ color ("black or white") จะทำให้สูตรสั้นลง
มีความจะเป็นไปได้ไหมครับ
ขอบคุณครับ
Re: เพิ่มคำสั่ง OR ใน IF และ and ขอคำแนะนำ
Posted: Sat Sep 10, 2016 7:33 pm
by snasui
ผมเข้าใจในสิ่งที่ถามมา ไม่ทราบว่าได้ลองทำตามที่ผมตอบไปแล้วหรือไม่
การซ้อนฟังก์ชั่นสามารถซ้อนได้ถึง 64 ชั้นหรือความยาวสูตรที่ 8,192 อักขระแล้วแต่ว่าอย่างใดจะถึงก่อน ที่ถามมานั้นทำได้แน่นอน 100% แต่ไม่แนะนำเพราะไม่ได้ทำให้ทำงานได้เร็ว แก้ไขได้ยากลำบากและไม่ยืดหยุ่น หากทำตามที่ผมแนะนำไปแล้วติดปัญหาค่อยนำมาถามกันต่อครับ
ตัวอย่างการปรับสูตร If ใน J12
=IF(AND(F12="4x4",OR(G12="white",G12="Black"),H12="REG"),1,IF(AND(F12="4x4",OR(G12="white",G12="Black"),H12="EXT"),2,IF(AND(F12="4x4",OR(G12="white",G12="Black"),H12="CREW"),3,"")))
Enter > Copy ลงด้านล่าง แล้วเทียบกับสูตรที่ผมเขียนไปในโพสต์ก่อนหน้าครับ
Re: เพิ่มคำสั่ง OR ใน IF และ and ขอคำแนะนำ
Posted: Sat Sep 10, 2016 8:14 pm
by Phonchet
ขอบคุณมากครับอาจารย์ ผมทำตามแบบที่อาจารย์แนะนำ สูตรสั้นกว่ากันเยอะเลยครับ
อยากรบกวนถามอีกอย่างครับ ในกรณีที่เรายังไม่ได้คีย์ข้อมูล ผมอยากให้ colomn I ว่างนะครับ
รบกวนขอคำแนะนำหน่อยครับ
ขอบคุณครับ
Re: เพิ่มคำสั่ง OR ใน IF และ and ขอคำแนะนำ
Posted: Sat Sep 10, 2016 8:35 pm
by snasui
สามารถปรับสูตรที่ I12 เป็นด้านล่างครับ
=IF(COUNTIF($F12:$H12,"")=0,SUMIFS($D$3:$D$8,$A$3:$A$8,F12,$B$3:$B$8,G12,$C$3:$C$8,H12),"")
Enter > Copy ลงด้านล่าง
Re: เพิ่มคำสั่ง OR ใน IF และ and ขอคำแนะนำ
Posted: Sat Sep 10, 2016 9:30 pm
by Phonchet
ขอบคุณมากครับอาจารย์
แต่ผมยังงงๆกับวิธีการอยู่ครับ
รบกวนอาจารย์ช่วยอธิบายให้กระจ่างหน่อยได้ไหมเพื่อเป็นแนวทางในการประยุกต์ใช้ในโอกาศอื่นๆครับ
ขอบคุณครับ
Re: เพิ่มคำสั่ง OR ใน IF และ and ขอคำแนะนำ
Posted: Sat Sep 10, 2016 9:38 pm
by snasui
วิธีการจะขึ้นอยู่กับงานเป็นหลักครับ
สำหรับงานนี้หลัก ๆ ตามด้านล่างครับ
- มีตารางเงื่อนไขให้ครบทุกเงื่อนไข
- นำข้อมูลมาแสดงด้วยฟังก์ชั่น Sumifs เป็นการรวมข้อมูลแบบหลายเงื่อนไข สามารถศึกษาได้ที่นี่ครับ Sumifs
ส่วนฟังก์ชั่น Countif(Range,"") เป็นการตรวจสอบว่ามีค่าว่างในช่วง Range อยู่กี่เซลล์ เป็นลักษณะการใช้ Countif แบบประยุกต์ ศึกษาการใช้งานพื้นฐานได้ที่นี่ครับ
Countif
Re: เพิ่มคำสั่ง OR ใน IF และ and ขอคำแนะนำ
Posted: Sat Sep 10, 2016 9:54 pm
by Phonchet
=IF(COUNTIF($F12:$H12,"")=0,
=0 นี่คือนับเซลล์ F12 ถึง H12 และกำหนดให้ห้ามมีเซลล์ว่างใช่ไหมครับ ผมเข้าใจถูกไหม
และอีกอย่างครับ ล็อกเซลล์ครับ ($) ต้องมาไล่พิมพ์ใส่ทีละตัวใช่ไหมครับ
ขอบคุณครับ
Re: เพิ่มคำสั่ง OR ใน IF และ and ขอคำแนะนำ
Posted: Sat Sep 10, 2016 9:57 pm
by snasui
Phonchet wrote:=IF(COUNTIF($F12:$H12,"")=0,
=0 นี่คือนับเซลล์ F12 ถึง H12 และกำหนดให้ห้ามมีเซลล์ว่างใช่ไหมครับ ผมเข้าใจถูกไหม
เข้าใจถูกแล้วครับ
Phonchet wrote:และอีกอย่างครับ ล็อกเซลล์ครับ ($) ต้องมาไล่พิมพ์ใส่ทีละตัวใช่ไหมครับ
การ Lock เซลล์เราจะไม่พิมพ์เองครับ ในขณะเขียนสุตรให้คลุมเลือกเซลล์หรือช่วงเซลล์ในสูตรแล้วกดแป้น F4 โปรแกรมจะ Lock เซลล์ให้ ลองกดซ้ำ ๆ ได้ตามต้องการเพื่อสังเกตการ Lock ครับ
Re: เพิ่มคำสั่ง OR ใน IF และ and ขอคำแนะนำ
Posted: Sat Sep 10, 2016 10:20 pm
by Phonchet
snasui wrote:Phonchet wrote:=IF(COUNTIF($F12:$H12,"")=0,
=0 นี่คือนับเซลล์ F12 ถึง H12 และกำหนดให้ห้ามมีเซลล์ว่างใช่ไหมครับ ผมเข้าใจถูกไหม
เข้าใจถูกแล้วครับ
Phonchet wrote:และอีกอย่างครับ ล็อกเซลล์ครับ ($) ต้องมาไล่พิมพ์ใส่ทีละตัวใช่ไหมครับ
การ Lock เซลล์เราจะไม่พิมพ์เองครับ ในขณะเขียนสุตรให้คลุมเลือกเซลล์หรือช่วงเซลล์ในสูตรแล้วกดแป้น F4 โปรแกรมจะ Lock เซลล์ให้ ลองกดซ้ำ ๆ ได้ตามต้องการเพื่อสังเกตการ Lock ครับ
ขอบคุณมากๆครับอาจารย์ ได้ความรู้เพิ่มขึ้นเยอะเลย
Re: เพิ่มคำสั่ง OR ใน IF และ and ขอคำแนะนำ
Posted: Wed Sep 14, 2016 7:55 pm
by Phonchet
snasui wrote: สามารถปรับสูตรที่ I12 เป็นด้านล่างครับ
=IF(COUNTIF($F12:$H12,"")=0,SUMIFS($D$3:$D$8,$A$3:$A$8,F12,$B$3:$B$8,G12,$C$3:$C$8,H12),"")
Enter > Copy ลงด้านล่าง
สวัสดีครับอาจารย์
ผมได้นำสูตรที่อาจารย์แนะนำไปประยุกต์ใช้แล้ว
แต่ติดปัญหาตรงที่ถ้าข้อมูลที่ให้แสดงเป็นตัวอักษรหรือขึ้นต้นด้วย 0 ไม่สามารถใช้งานได้
อาจารย์พอจะมีคำแนะนำหรือช่วยชี้ทางให้หน่อยได้ไหมครับ
ขอบคุณครับ
Re: เพิ่มคำสั่ง OR ใน IF และ and ขอคำแนะนำ
Posted: Wed Sep 14, 2016 8:08 pm
by snasui
ใช้ Lookup แทน Sumifs ได้ครับ ยกตัวอย่างเช่น
=IF(COUNTIF($F12:$H12,"")=0,Lookup(2,1/(($A$3:$A$8=F12)*($B$3:$B$8=G12)*($C$3:$C$8,H12)),$D$3:$D$8),"")
ควรแนบไฟล์ตัวอย่างประกอบคำถามเสมอจะได้ตอบได้ตรงประเด็นครับ
Re: เพิ่มคำสั่ง OR ใน IF และ and ขอคำแนะนำ
Posted: Wed Sep 14, 2016 9:43 pm
by Phonchet
snasui wrote: ใช้ Lookup แทน Sumifs ได้ครับ ยกตัวอย่างเช่น
=IF(COUNTIF($F12:$H12,"")=0,Lookup(2,1/(($A$3:$A$8=F12)*($B$3:$B$8=G12)*($C$3:$C$8,H12)),$D$3:$D$8),"")
ควรแนบไฟล์ตัวอย่างประกอบคำถามเสมอจะได้ตอบได้ตรงประเด็นครับ
รับทราบครับอาจารย์
ผมลองนำสูตรที่อาจารย์แนะนำมาเขียน แต่ไม่ได้ค่าที่ต้องการครับ
รบกวนอาจารย์ช่วยแนะนำและอธิบายสูตรด้วยนะครับ ผมลองศึกษาLookup แล้ว เจอแต่เป็นแบบตัวแปรเดียวครับ
Re: เพิ่มคำสั่ง OR ใน IF และ and ขอคำแนะนำ
Posted: Fri Sep 16, 2016 6:10 am
by snasui
แก้ไขสูตรที่ I12 เป็นด้านล่างครับ
=IF(COUNTIF($F12:$H12,"")=0,LOOKUP(2,1/(($A$3:$A$8=F12)*($B$3:$B$8=G12)*($C$3:$C$8=H12)),$D$3:$D$8),"")