: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

ผู้รู้ช่วยหน่อยครับ ไม่ไหวจะเคลียร์ครับ

ฟอรัมถาม-ตอบปัญหาการใช้งาน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
bzone2007
Member
Member
Posts: 23
Joined: Sun Jul 11, 2010 2:01 am

ผู้รู้ช่วยหน่อยครับ ไม่ไหวจะเคลียร์ครับ

#1

Post by bzone2007 »

ช่วยหน่อยนะครับ คือว่า ผมจะมีไฟล์ข้อมูลที่ชื่อว่า MASTER.xls อยู่เป็นตัวตั้ง จะมีข้อมูลคือ
code ลูกค้า , ชื่อลูกค้า , code สินค้า , ชื่อสินค้า , ราคา , ค่า A , ค่่า B , ค่า C

แล้วผมก็มีไฟล์ที่จะต้องทำคือไฟล์ Data.xls จะมีข้อมูลคือ
code ลูกค้า , ชื่อลูกค้า , code สินค้า , ชื่อสินค้า , ราคา ส่วนข้อมูลค่้า A , B , C ในไฟล์ Data.xls จะไม่มี

โจทย์ของผมคือจะทำยังไงให้มีข้อมูลค่า A , B , C น่ะครับ

โดยจะให้มันเช็ค code ลูกค้า , code สินค้า , ราคา ถ้า 3 ค่านี้ตรงกับในตัวตั้งก็ให้มันใส่ค่า A , B , C เหมือนในตัวตั้งน่ะครับ

ผมพยายามทำหลายรอบแล้วแต่ทำไมได้น่ะครับ ช่วยผมหน่อยนะครับ

ขอบคุณในความช่วยเหลือครับ
ขอบคุณครับ
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: ผู้รู้ช่วยหน่อยครับ ไม่ไหวจะเคลียร์ครับ

#2

Post by snasui »

:D ลองตามนี้ครับ

ที่ไฟล์ Data.xls เซลล์ F4 คีย์

=SUMPRODUCT(--([Master.xls]Sheet1!$A$4:$A$22=$A4),--([Master.xls]Sheet1!$C$4:$C$22=$C4),--([Master.xls]Sheet1!$E$4:$E$22=$E4),[Master.xls]Sheet1!F$4:F$22)

Enter > Copy ไปด้านขวาและลงด้านล่าง

จากสูตรนี้จะเป็นการเปรียบเทียบ 3 เงื่อนไขตามโจทย์ โดย

1. ตัวอักษรสีน้ำเงินเป็นเงื่อนไขที่ 1
2. ตัวอักษรสีเขียวเป็นเงื่อนไขที่ 2
3. ตัวอักษรสีแดงเป็นเงื่อนไขที่ 3
4. ตัวอักษรสีเหลืองเป็นช่วงข้อมูลคำตอบหากเข้าเงื่อนไขทั้ง 3 ด้านบน

ช่วงเงื่อนไขจะให้คำตอบเป็น True หากเงื่อนไขเป็น จริง และจะเป็น False เมื่อเงือนไขไม่เป็นจริง
ผมใช้เครื่องหมาย -- ในการบังคับให้ True เป็น 1 และ False เป็น 0

ที่ต้องบังคับให้เป็น 1 และ 0 เพราะ Sumproduct จะมีลักษณะของการใช้ส่วนประกอบมาคูณกัน หากยังเป็น True และ False จะไม่สามารถคูณกันได้ จากสูตรด้านบนเราสามารถใช้เครื่องหมายคูณโดยไม่ต้องใช้เครื่องหมาย -- จะได้เป็น

=SUMPRODUCT(([Master.xls]Sheet1!$A$4:$A$22=$A4)*([Master.xls]Sheet1!$C$4:$C$22=$C4)*([Master.xls]Sheet1!$E$4:$E$22=$E4),[Master.xls]Sheet1!F$4:F$22)

แต่ความเร็วในการคำนวณจะไม่เก่งเท่ากรณีใช้ -- ดูภาพตัวอย่างผลลัพธ์ที่ได้ตามด้านล่างครับ
You do not have the required permissions to view the files attached to this post.
bzone2007
Member
Member
Posts: 23
Joined: Sun Jul 11, 2010 2:01 am

Re: ผู้รู้ช่วยหน่อยครับ ไม่ไหวจะเคลียร์ครับ

#3

Post by bzone2007 »

ขอบคุณมากครับอาจารย์ จะขอรับไปประยุกต์ใช้นะครับ ขอคารวะอีกครั้ง ^^
bzone2007
Member
Member
Posts: 23
Joined: Sun Jul 11, 2010 2:01 am

Re: ผู้รู้ช่วยหน่อยครับ ไม่ไหวจะเคลียร์ครับ

#4

Post by bzone2007 »

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

ผมลองนำสูตรที่อาจารย์เขียนมาให้แล้ว ใช้งานได้ครับ
เลยอยากจะขอเพิ่มอีกนิดนึงคือ
ข้อมูลที่สูตร check แล้วไม่ตรง จะให้มันไม่โชว์อะไรเลย หรือเป็นสัญลักษณ์อื่นได้ไหมครับ

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

#5

Post by snasui »

:D การทำเ่ช่นนั้นสามารถใช้ฟังก์ชั่น If เข้าไปช่วยได้ครับ แต่สูตรจะยาวขึ้นและคำนวณช้าลง

ลองเปลี่ยนสูตรที่ F4 เป็น

=If(SUMPRODUCT(--([Master.xls]Sheet1!$A$4:$A$22=$A4),--([Master.xls]Sheet1!$C$4:$C$22=$C4),--([Master.xls]Sheet1!$E$4:$E$22=$E4))=0,"",SUMPRODUCT(--([Master.xls]Sheet1!$A$4:$A$22=$A4),--([Master.xls]Sheet1!$C$4:$C$22=$C4),--([Master.xls]Sheet1!$E$4:$E$22=$E4),[Master.xls]Sheet1!F$4:F$22))

Enter > Copy ไปด้านขวาและลงด้านล่าง :mrgreen:
bzone2007
Member
Member
Posts: 23
Joined: Sun Jul 11, 2010 2:01 am

Re: ผู้รู้ช่วยหน่อยครับ ไม่ไหวจะเคลียร์ครับ

#6

Post by bzone2007 »

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