: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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
isensosuikar
Member
Member
Posts: 63
Joined: Tue Feb 19, 2013 10:51 am

วิธีตั้งให้สูตรทำงานเมื่อเงือนไขถูกต้อง

#1

Post by isensosuikar »

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

ถ้าจะทำให้ สูตรใน K5 ทำงาน เมื่อ H5 เป็นรหัสสินค้า ชุดที่ 1 และ สูตรใน L5 ทำงานเมื่อ H5 เป็นชุดที่ 1

และ ถ้าจะทำให้ สูตรใน M7 ทำงาน เมื่อ H5 เป็นรหัสสินค้า ชุดที่ 2 และ สูตรใน N7 ทำงานเมื่อ H5 เป็นชุดที่ 2

โดยเงื่อนไขที่ สูตร จะทำงานผมลองเขียนดู แต่ผมเขียนเป็นสูตรไม่เป็นครับ

รบกวนทุกท่านดูให้หน่อยครับ ว่าสามารถทำได้ไหม หรือมีสูตรใดที่ทำได้

ขอบคุณทุกท่านที่เข้ามาตอบครับ
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 ลองตามนี้ครับ
  1. เซลล์ K5 คีย์
    =IF(ISNUMBER(MATCH(H5+0,{706106,706107,706108,706109,706110},0)),ROUNDDOWN(J5/O5,0),0)
    Enter
  2. เซลล์ L5 คีย์
    =IF(ISNUMBER(MATCH(H5+0,{706106,706107,706108,706109,706110},0)),J5-K5*O5,0)
    Enter
  3. เซลล์ M7 คีย์
    =IF(ISNUMBER(MATCH(H7+0,{706502,706601,709402,714106},0)),ROUNDDOWN(J7/O7,0),0)
    Enter
  4. เซลล์ N7 คีย์
    =IF(ISNUMBER(MATCH(H7+0,{706502,706601,709402,714106},0)),J7-M7*O7,0)
    Enter
isensosuikar
Member
Member
Posts: 63
Joined: Tue Feb 19, 2013 10:51 am

Re: วิธีตั้งให้สูตรทำงานเมื่อเงือนไขถูกต้อง

#3

Post by isensosuikar »

ขอบคุณมากครับ อาจารย์ ได้แล้วครับ

อาจารย์พอจะแยก วิธีการเขียนสูตรนี้ให้ได้ไหมครับ

อยากจะเขียนเป็นมั้งครับ ขอบคุณครับ
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 »

:D ต้องศึกษาแต่ละฟังก์ชั่นให้เข้าใจก่อนครับ คือ If, Isnumber, Match

จากสูตรใน K5 คือ

=IF(ISNUMBER(MATCH(H5+0,{706106,706107,706108,706109,706110},0)),ROUNDDOWN(J5/O5,0),0)

หมายความว่า ถ้า ISNUMBER(MATCH(H5+0,{706106,706107,706108,706109,706110},0)) เป็นจริงแล้วให้แสดงผลลัพธ์ของ ROUNDDOWN(J5/O5,0) ถ้าไม่เป็นจริงให้แสดงค่า 0

จากสูตร

ISNUMBER(MATCH(H5+0,{706106,706107,706108,706109,706110},0))

เป็นการทดสอบว่า MATCH(H5+0,{706106,706107,706108,706109,706110},0) เป็นตัวเลขหรือไม่ ถ้าเป็นจะแสดงค่า True ถ้าไม่เป็นจะแสดงค่า False

จากสูตร

MATCH(H5+0,{706106,706107,706108,706109,706110},0)

เป็นการหาว่า H5+0 อยู่ในลำดับที่เท่าไรของค่าคงที่ Array {706106,706107,706108,706109,706110} หากไม่พบจะแสดงค่าผิดพลาดเป็น #N/A ถ้าพบจะแสดงลำดับที่พบ ที่ต้องบวกด้วย 0 เนื่องจากว่าเดิม H5 เป็น Text จึงบวกด้วย 0 เพื่อให้เป็น Number ถึงจะนำไป Match กับ Number ได้
isensosuikar
Member
Member
Posts: 63
Joined: Tue Feb 19, 2013 10:51 am

Re: วิธีตั้งให้สูตรทำงานเมื่อเงือนไขถูกต้อง

#5

Post by isensosuikar »

อาจารย์ครับ text กับ number เราสามารถดูได้จากส่วนไหนครับ
ใช่ใน format หรือปล่าวครับ
isensosuikar
Member
Member
Posts: 63
Joined: Tue Feb 19, 2013 10:51 am

Re: วิธีตั้งให้สูตรทำงานเมื่อเงือนไขถูกต้อง

#7

Post by isensosuikar »

ขอบคุณมากครับ ดูท่าจะยากสำหรับผมพอสมควรเลยครับ

แต่ผมจะพยายามทำความเข้าใจครับ

จากสูตรใน K5 คือ =IF(ISNUMBER(MATCH(H5+0,{706106,706107,706108,706109,706110},0)),ROUNDDOWN(J5/O5,0),0) หมายความว่า ถ้า ISNUMBER(MATCH(H5+0,{706106,706107,706108,706109,706110},0)) เป็นจริงแล้วให้แสดงผลลัพธ์ของ ROUNDDOWN(J5/O5,0) ถ้าไม่เป็นจริงให้แสดงค่า 0

อาจารย์ครับ ในส่วนนี้ ถ้าไม่เป็นจริงให้แสดงค่า 0 เราสามารถเปลี่ยนให้เป็นอย่างอื่นแทนได้ไหมครับ

เช่น - หรือ ปล่อยว่าง หรือเป็นตัวหนังสือ ไม่มี ประมาณนี้อะครับ หรือเปลี่ยนได้แต่เฉพาะตัวเลขเท่านั้นครับ

ถามไว้เผื่อเอาไว้ประยุคใช้กับตัวอื่นครับ
User avatar
DhitiBank
Gold
Gold
Posts: 1676
Joined: Mon Oct 15, 2012 12:07 am

Re: วิธีตั้งให้สูตรทำงานเมื่อเงือนไขถูกต้อง

#8

Post by DhitiBank »

isensosuikar wrote:ในส่วนนี้ ถ้าไม่เป็นจริงให้แสดงค่า 0 เราสามารถเปลี่ยนให้เป็นอย่างอื่นแทนได้ไหมครับ

เช่น - หรือ ปล่อยว่าง หรือเป็นตัวหนังสือ ไม่มี ประมาณนี้อะครับ
สวัสดีครับ ผมขอช่วยอาจารย์ตอบแล้วกันนะครับ :P
หากคุณไม่ต้องการให้แสดงเป็นค่า 0 แต่ต้องการให้แสดงเป็นข้อความก็สามารถทำได้โดย แทนที่ 0 ด้วยเครื่องหมายอัญประกาศ "" โดย
"" หมายถึง ค่าว่าง
"ไม่มี" หมายถึง ให้แสดงคำว่า ไม่มี
เป็นต้นครับ

ปล. คำว่า "อะ" เป็นภาษาพูดครับ ผิดกฏของบอร์ดนะครับ
isensosuikar
Member
Member
Posts: 63
Joined: Tue Feb 19, 2013 10:51 am

Re: วิธีตั้งให้สูตรทำงานเมื่อเงือนไขถูกต้อง

#9

Post by isensosuikar »

ปล. คำว่า "อะ" เป็นภาษาพูดครับ ผิดกฏของบอร์ดนะครับ
ขอบคุณมากครับ แล้วก็ขอโทษด้วยครับ

ทุกวันนี้เริ่มแยกไม่ค่อยออกแล้วว่าคำไหน แชท คำไหน ภาษาปกติ
Post Reply