PDA

View Full Version : การ vlookup มีเงื่อนไข



java
24 May 2007, 12:15
การ vlookup แบบมีเงื่อนไข สามารถทำได้หรือไม่คะ หรือว่าควรใช้สูตรอย่างไรดีน่ะค่ะ:o

อธิบายไว้ตามไฟล์แนบน่ะค่ะ

ขอบคุณมาก ๆ ค่ะ

zv735
24 May 2007, 13:05
ถ้าข้อมูลไม่ซ้ำกันเลย
ใช้ Sumproduct แทน Vlookup ก็ได้ครับ


=SUMPRODUCT(($A$2:$A$7=A9)*($B$2:$B$7=B9)*($C$2:$C$7))

ดู File แนบนะครับ
ขอบคุณมากมากครับ

วานิชย์
24 May 2007, 14:37
การใช้ SUMIF , SUM array หรือ Sumproduct ก็เป็นวิธีที่ดี ที่สามารถใช้แทน Vlookup ได้ในกรณีที่ ค่าที่ต้องการเป็นตัวเลข
แต่ถ้าค่าที่ต้องการไม่ใช่ตัวเลขหล่ะ ?
ใช้ Vlookup + If ก็เป็นอีกแนวทางหนึ่งในการแก้ปัญหานี้ครับ แต่ใช้เป็นสูตร array นะครับ ดังนี้

{=VLOOKUP(C10,IF($B$3:$B$8=B10,$C$3:$E$8),2,FALSE)}

ลองนำไปใช้ดูนะครับ :)

worachai_p
24 May 2007, 14:43
คุณ Java เท่าที่ดูจากไฟล์ที่ข้อมูลและความต้องการ
ผมเข้าใจว่า คุณต้องการสรุปผลหรือเก็บข้อมูลเพื่อรายงาน
จากอาจารย์ทั้งสองท่านที่แนะนำก็เป็นวิธีที่ดี แต่เมื่อลองพิจารณาจากโจทย์ที่คุณให้
บอกว่ามีเยอะ ทำให้คิดได้ว่า name มีโอกาสที่จะซ้ำและไม่ได้เรียงลำดับต่อเนื่องกัน
โดยการใช้ sumif หรือ sumproduct จะต้องมีตัวที่เป็นตัวพื้นฐานสำหรับใช้อ้างอิง เช่น name
ดังนั้น จึงแนะนำเพิ่มเติมให้ใช้ privot table ช่วยก็น่าจะเป็นอีกวิธีนะครับ และสามารถประยุกต์
เพื่อใช้เชิงวิเคราะห์ข้อมูลได้ด้วยครับ

jojo
24 May 2007, 16:00
สวัสดีครับ
ผมมีวิธีหนึ่งซึ่งผมเคยใช้เมื่อก่อนนี้ ค่อนข้าง manual หน่อย
โดยการสร้างคอลัมน์ใหม่ขึ้นมา 1 คอลัมน์ทางด้านซ้ายของตารางข้อมูล
แล้วจับข้อมูลในคอลัมน์ Name กับ Model มาต่อกันโดยใช้ &
แล้วจึง search โดยใช้ vlookup หรือ sumif จาก code นั้น

ข้อเสียของวิธีนี้ คือ ต้อง manual สร้าง คอลัมน์ใหม่ขึ้นมา ทำให้มีโอกาสเกิดข้อผิดพลาด (Human error) และ ต้องทำหลายขึ้นตอน
ข้อดีของวิธีนี้ คือ ไม่ต้องเขียนสูตรซับซ้อนมาก
Vlookup v.s. sumif
การใช้ vlookup อาจมีข้อเสีย หากข้อมูลของคุณ มีทั้ง name และ model ซ้ำกัน (ไฮไลท์สีเหลือง) เพราะ vlookup จะไม่ได้รวมจำนวนทั้ง 2 records ให้ แต่ถ้าใช้ sumif จะดีกว่าหากข้อมูลทั้งสองอย่างนั้นมีซ้ำกันบ้าง เพราะว่า sumif จะรวมข้อมูลทุก records ที่เหมือนกันทั้งหมดให้

โจ้