Page 1 of 1

VLOOKUP

Posted: Thu Feb 26, 2015 5:19 pm
by liveday
เรียนอาจารย์
ผมต้องการทำ VLOOKUP ครับ กรณีที่เลือกจังหวัดแล้ว ให้เขตแสดงขึ้นมาเฉพาะจังหวัดนั้นๆครับ ผมต้องใช้เงื่อนไขอะไรบ้างครับในช่อง (cell B3)

ทั้งนี้ผมได้แนบไฟล์ตัวอย่างมาให้ดูด้วยครับ
ขอบคุณครับ

Re: VLOOKUP

Posted: Thu Feb 26, 2015 7:04 pm
by snasui
:D ไม่เข้าใจครับ

ในเซลล์ B3 คำตอบที่ถูกควรเป็นเท่าใดบ้างครับ

Re: VLOOKUP

Posted: Fri Feb 27, 2015 10:58 am
by liveday
ในช่องเซลล์ B3 ควรทำงานอัตโนมัติครับ เมื่อเราเลือกจังหวัด ในช่องเซลล์ A3 ให้ช่องเซลล์ B3 ควรแสดงเฉพาะเขต/อำเภอ ที่มีทั้งหมดในจังหวัดนั้นๆ ครับ

Re: VLOOKUP

Posted: Fri Feb 27, 2015 11:25 am
by DhitiBank
หมายถึงว่าให้เซลล์ B3 เป็น drop down list รายชื่อเขตทั้งหมดของจังหวัดในเซลล์ A3 ใช่ไหมครับ

Re: VLOOKUP

Posted: Fri Feb 27, 2015 11:25 am
by NEO889
ลองใช้ Pivot ดูครับ

Re: VLOOKUP

Posted: Fri Feb 27, 2015 11:29 am
by liveday
DhitiBank wrote:หมายถึงว่าให้เซลล์ B3 เป็น drop down list รายชื่อเขตทั้งหมดของจังหวัดในเซลล์ A3 ใช่ไหมครับ
ใช่ครับ

Re: VLOOKUP

Posted: Fri Feb 27, 2015 11:34 am
by liveday
NEO889 wrote:ลองใช้ Pivot ดูครับ
พอดีผมจะไปต่อยอดใบเสร็จหน้าร้านครับ ใช้ pivot ผมไม่รู้ว่าจะวางส่วนไหนหน้าบิลครับ ขอลองทำ drop down list ดูก่อนนะครับ ขอบคุณครับ

Re: VLOOKUP

Posted: Fri Feb 27, 2015 11:58 am
by DhitiBank
ทดลองแบบนี้ครับ
ก่อนอื่นขอให้คุณแยกเขตแต่ละจังหวัดออกให้อยู่คนละคอลัมน์ก่อน เพื่อความสะดวกในการทำ range name ครับ โดย คอลัมน์ H เป็นเลข 2, คอลัมน์ I เป็นเขตของจังหวัดปทุมธานี, คอลัมน์ J, K เป็นเลข 3 และเขตของจังหวัดอยุธยา ตามลำดับ

1.สร้าง range name
กด Ctrl+F3 แล้วกด New ครับ

1.1 ตั้งชื่อ _Province
ในช่องว่างคีย์สูตร
=OFFSET($E$2,0,0,MAX(1,COUNTA(E:E)))
แล้วกด ok ครับ เพื่อสร้าง dynamic range name ของจังหวัด และเผื่อมีการเพิ่มในภายหลัง

1.2 กด ctrl+F3 --> new
ตั้งชื่อ _z1
ในช่องว่างคีย์สูตร
=OFFSET($G$2,0,0,MAX(1,COUNTA(G:G)))
แล้วกด ok เพื่อสร้าง dynamic range name ของกรุงเทพ ทำแบบนี้เช่นกันกับอีก 2 ช่วงเขตที่เหลือ โดยเปลี่ยนอักษรสีแดงให้สอดคล้องกับข้อมูลเขตที่แยกคอลัมน์แล้ว และตั้งชื่อ range name ว่า _z2, _z3 ตามลำดับ

Re: VLOOKUP

Posted: Fri Feb 27, 2015 12:08 pm
by DhitiBank
2. คลิกเซลล์ A3 แล้วเลือก data validation...
ช่องประเภทของ validation เลือกเป็น list --> เอาติ๊กถูกตรง ignore blank ออก
ช่อง Source ให้คลิกที่ช่องนั้นแล้วกด F3 --> เลือก _Province
เพื่อเซลล์ A3 จะเป็น drop down ชื่อจังหวัดให้เลือก

3. ที่ C3 คีย์
=IF(A3="","",INDEX($D$2:$D$10,MATCH(A3,$E$2:$E$10,0)))
Enter

4. คลิกเลือก B3 แล้วเลือก data validation...
ทำเหมือนข้อ 2 ครับ แต่ตรง source ให้คีย์
=IF(C3=1,_z1,IF(C3=2,_z2,_z3))
แล้วกด Ok แล้วทดลองเลือกดูครับ ว่าใช่แบบที่ต้องการหรือไม่

Re: VLOOKUP

Posted: Fri Feb 27, 2015 2:16 pm
by liveday
ทำได้แล้วครับ ขอบคุณสำหรับคำแนะนำทุกคนมากครับ

Re: VLOOKUP

Posted: Fri Feb 27, 2015 3:07 pm
by DhitiBank
:) ที่เป็นเช่นนี้เพราะการกำหนดค่าใน Rang name ยังไม่ถูกต้องครับ สังเกตจากรูป
PicsArt_1425024213353.jpg
ยกตัวอย่าง range name _Province
ต้องปรับในส่วนสีแดง ให้สอดคล้องกับลูกศรครับ
MAX(1,COUNTA(คอลัมน์ที่บรรจุช่วงข้อมูลนั้นๆ))
ทีถูกต้องเป็น
MAX(1,COUNTA(Sheet1!E:E))

แก้ไข range name อื่นในทำนองเดียวกันครับ