: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

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

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
Phonchet
Member
Member
Posts: 17
Joined: Sat Aug 13, 2016 12:53 pm

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

#1

Post by Phonchet »

สวัสดีครับ
ผมขอรบกวนขอคำแนะนำหน่อยครับ

จากไฟล์ที่แนบนะครับ ผมอยากใช้คำสั่ง OR เข้าไปด้วย เผื่อว่าสูตรที่เขียนจะสั้นลงกว่านี้ (column I)
สามารถใช้คำสั่ง OR ในหัวข้อสีได้ไหมครับ ซึ่งผมมองว่าถ้าใช้คำสั่ง OR ได้ จะลดทางเลือกจาก 6 เหลือ 3

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

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

#2

Post 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 ลงด้านล่าง
You do not have the required permissions to view the files attached to this post.
Phonchet
Member
Member
Posts: 17
Joined: Sat Aug 13, 2016 12:53 pm

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

#3

Post 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") จะทำให้สูตรสั้นลง
มีความจะเป็นไปได้ไหมครับ

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

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

#4

Post 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 ลงด้านล่าง แล้วเทียบกับสูตรที่ผมเขียนไปในโพสต์ก่อนหน้าครับ
Phonchet
Member
Member
Posts: 17
Joined: Sat Aug 13, 2016 12:53 pm

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

#5

Post by Phonchet »

ขอบคุณมากครับอาจารย์ ผมทำตามแบบที่อาจารย์แนะนำ สูตรสั้นกว่ากันเยอะเลยครับ

อยากรบกวนถามอีกอย่างครับ ในกรณีที่เรายังไม่ได้คีย์ข้อมูล ผมอยากให้ colomn I ว่างนะครับ

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

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

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

#6

Post 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 ลงด้านล่าง
Phonchet
Member
Member
Posts: 17
Joined: Sat Aug 13, 2016 12:53 pm

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

#7

Post by Phonchet »

ขอบคุณมากครับอาจารย์
แต่ผมยังงงๆกับวิธีการอยู่ครับ
รบกวนอาจารย์ช่วยอธิบายให้กระจ่างหน่อยได้ไหมเพื่อเป็นแนวทางในการประยุกต์ใช้ในโอกาศอื่นๆครับ

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

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

#8

Post by snasui »

:D วิธีการจะขึ้นอยู่กับงานเป็นหลักครับ

สำหรับงานนี้หลัก ๆ ตามด้านล่างครับ
  1. มีตารางเงื่อนไขให้ครบทุกเงื่อนไข
  2. นำข้อมูลมาแสดงด้วยฟังก์ชั่น Sumifs เป็นการรวมข้อมูลแบบหลายเงื่อนไข สามารถศึกษาได้ที่นี่ครับ :arrow: Sumifs
ส่วนฟังก์ชั่น Countif(Range,"") เป็นการตรวจสอบว่ามีค่าว่างในช่วง Range อยู่กี่เซลล์ เป็นลักษณะการใช้ Countif แบบประยุกต์ ศึกษาการใช้งานพื้นฐานได้ที่นี่ครับ :arrow: Countif
Phonchet
Member
Member
Posts: 17
Joined: Sat Aug 13, 2016 12:53 pm

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

#9

Post by Phonchet »

=IF(COUNTIF($F12:$H12,"")=0,

=0 นี่คือนับเซลล์ F12 ถึง H12 และกำหนดให้ห้ามมีเซลล์ว่างใช่ไหมครับ ผมเข้าใจถูกไหม

และอีกอย่างครับ ล็อกเซลล์ครับ ($) ต้องมาไล่พิมพ์ใส่ทีละตัวใช่ไหมครับ

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

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

#10

Post by snasui »

Phonchet wrote:=IF(COUNTIF($F12:$H12,"")=0,

=0 นี่คือนับเซลล์ F12 ถึง H12 และกำหนดให้ห้ามมีเซลล์ว่างใช่ไหมครับ ผมเข้าใจถูกไหม
:D เข้าใจถูกแล้วครับ
Phonchet wrote:และอีกอย่างครับ ล็อกเซลล์ครับ ($) ต้องมาไล่พิมพ์ใส่ทีละตัวใช่ไหมครับ
การ Lock เซลล์เราจะไม่พิมพ์เองครับ ในขณะเขียนสุตรให้คลุมเลือกเซลล์หรือช่วงเซลล์ในสูตรแล้วกดแป้น F4 โปรแกรมจะ Lock เซลล์ให้ ลองกดซ้ำ ๆ ได้ตามต้องการเพื่อสังเกตการ Lock ครับ
Phonchet
Member
Member
Posts: 17
Joined: Sat Aug 13, 2016 12:53 pm

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

#11

Post by Phonchet »

snasui wrote:
Phonchet wrote:=IF(COUNTIF($F12:$H12,"")=0,

=0 นี่คือนับเซลล์ F12 ถึง H12 และกำหนดให้ห้ามมีเซลล์ว่างใช่ไหมครับ ผมเข้าใจถูกไหม
:D เข้าใจถูกแล้วครับ
Phonchet wrote:และอีกอย่างครับ ล็อกเซลล์ครับ ($) ต้องมาไล่พิมพ์ใส่ทีละตัวใช่ไหมครับ
การ Lock เซลล์เราจะไม่พิมพ์เองครับ ในขณะเขียนสุตรให้คลุมเลือกเซลล์หรือช่วงเซลล์ในสูตรแล้วกดแป้น F4 โปรแกรมจะ Lock เซลล์ให้ ลองกดซ้ำ ๆ ได้ตามต้องการเพื่อสังเกตการ Lock ครับ
ขอบคุณมากๆครับอาจารย์ ได้ความรู้เพิ่มขึ้นเยอะเลย :)
Phonchet
Member
Member
Posts: 17
Joined: Sat Aug 13, 2016 12:53 pm

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

#12

Post 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 ไม่สามารถใช้งานได้
อาจารย์พอจะมีคำแนะนำหรือช่วยชี้ทางให้หน่อยได้ไหมครับ

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

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

#13

Post 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),"")

ควรแนบไฟล์ตัวอย่างประกอบคำถามเสมอจะได้ตอบได้ตรงประเด็นครับ
Phonchet
Member
Member
Posts: 17
Joined: Sat Aug 13, 2016 12:53 pm

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

#14

Post 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 แล้ว เจอแต่เป็นแบบตัวแปรเดียวครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

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

#15

Post 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),"")
Post Reply