Page 1 of 1

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

Posted: Sun Jul 11, 2010 2:45 am
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 เหมือนในตัวตั้งน่ะครับ

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

ขอบคุณในความช่วยเหลือครับ
ขอบคุณครับ

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

Posted: Sun Jul 11, 2010 10:17 am
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)

แต่ความเร็วในการคำนวณจะไม่เก่งเท่ากรณีใช้ -- ดูภาพตัวอย่างผลลัพธ์ที่ได้ตามด้านล่างครับ

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

Posted: Sun Jul 11, 2010 1:04 pm
by bzone2007
ขอบคุณมากครับอาจารย์ จะขอรับไปประยุกต์ใช้นะครับ ขอคารวะอีกครั้ง ^^

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

Posted: Mon Jul 12, 2010 10:48 am
by bzone2007
ขอรบกวนอีกครั้งนะครับ

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

ผมดูแล้วสูตรที่ check แล้วไม่ตรงกัน มันจะขึ้นเป็น 0 มาน่ะครับ (ผมเลยแยกไม่ออกน่ะครับว่าข้อมูลไหนที่ไม่แมทกันน่ะครับ)

ขอบคุณอีกครั้งครับ

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

Posted: Mon Jul 12, 2010 10:58 am
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:

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

Posted: Mon Jul 12, 2010 5:52 pm
by bzone2007
ได้แล้วครับ ขอบคุณมากๆ อีกครั้งครับอาจารย์