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
:D ไม่ควรใช้ 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
:D ผมเข้าใจในสิ่งที่ถามมา ไม่ทราบว่าได้ลองทำตามที่ผมตอบไปแล้วหรือไม่

การซ้อนฟังก์ชั่นสามารถซ้อนได้ถึง 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
:D สามารถปรับสูตรที่ 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
:D วิธีการจะขึ้นอยู่กับงานเป็นหลักครับ

สำหรับงานนี้หลัก ๆ ตามด้านล่างครับ
  1. มีตารางเงื่อนไขให้ครบทุกเงื่อนไข
  2. นำข้อมูลมาแสดงด้วยฟังก์ชั่น Sumifs เป็นการรวมข้อมูลแบบหลายเงื่อนไข สามารถศึกษาได้ที่นี่ครับ :arrow: Sumifs
ส่วนฟังก์ชั่น Countif(Range,"") เป็นการตรวจสอบว่ามีค่าว่างในช่วง Range อยู่กี่เซลล์ เป็นลักษณะการใช้ Countif แบบประยุกต์ ศึกษาการใช้งานพื้นฐานได้ที่นี่ครับ :arrow: 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 และกำหนดให้ห้ามมีเซลล์ว่างใช่ไหมครับ ผมเข้าใจถูกไหม
:D เข้าใจถูกแล้วครับ
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 และกำหนดให้ห้ามมีเซลล์ว่างใช่ไหมครับ ผมเข้าใจถูกไหม
:D เข้าใจถูกแล้วครับ
Phonchet wrote:และอีกอย่างครับ ล็อกเซลล์ครับ ($) ต้องมาไล่พิมพ์ใส่ทีละตัวใช่ไหมครับ
การ Lock เซลล์เราจะไม่พิมพ์เองครับ ในขณะเขียนสุตรให้คลุมเลือกเซลล์หรือช่วงเซลล์ในสูตรแล้วกดแป้น F4 โปรแกรมจะ Lock เซลล์ให้ ลองกดซ้ำ ๆ ได้ตามต้องการเพื่อสังเกตการ Lock ครับ
ขอบคุณมากๆครับอาจารย์ ได้ความรู้เพิ่มขึ้นเยอะเลย :)

Re: เพิ่มคำสั่ง OR ใน IF และ and ขอคำแนะนำ

Posted: Wed Sep 14, 2016 7:55 pm
by Phonchet
snasui wrote::D สามารถปรับสูตรที่ 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
:D ใช้ 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::D ใช้ 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
:D แก้ไขสูตรที่ 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),"")