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
ลองตามนี้ครับ
ที่ไฟล์ 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
การทำเ่ช่นนั้นสามารถใช้ฟังก์ชั่น 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 ไปด้านขวาและลงด้านล่าง
Re: ผู้รู้ช่วยหน่อยครับ ไม่ไหวจะเคลียร์ครับ
Posted: Mon Jul 12, 2010 5:52 pm
by bzone2007
ได้แล้วครับ ขอบคุณมากๆ อีกครั้งครับอาจารย์