Page 1 of 1

การทำ VLOOKUP จากขวาไปซ้าย

Posted: Thu Nov 24, 2011 11:17 pm
by bank9597
:D อาจารย์ครับ วันนี้ขอรบกวนให้อาจารย์ แสดงวิธีการทำ VLOOKUP จากทางขวาไปซ้ายให้หน่อยครับ เพื่อนำไปศึกษาต่อไปครับ

โจทย์คือ ดึงข้อมูลจากชีท Data ไปแสดงในชีท Form โดยใช้ชื่อ Location เป็นชื่ออ้างอิงครับ
VLOOKUP ขวาไปซ้าย.xlsx

Re: การทำ VLOOKUP จากขวาไปซ้าย

Posted: Thu Nov 24, 2011 11:23 pm
by bank9597
:D ขอถามอีกนิดครับ อยากให้อาจารย์ช่วยบอกข้อบกพร่องสูตรลักษณะนี้หน่อยครับ

=IF(ISNA(VLOOKUP($A4,INDIRECT(D$3&"!$A$7:$Q$17"),17,0)),0,VLOOKUP($A4,INDIRECT(D$3&"!$A$7:$Q$17"),17,0))

ขอบคุณครับ :D

Re: การทำ VLOOKUP จากขวาไปซ้าย

Posted: Thu Nov 24, 2011 11:26 pm
by snasui
:D ไม่เข้าใจโจทย์ครับ การ Vlookup จากขวาไปซ้าย ค่าที่จะ Lookup ต้องอยู่ด้านขวาของตาราง ค่าที่ต้องการแสดงผลอยู่ด้านซ้ายของตาราง ไม่ทราบว่าตัวอย่างที่ทำมานั้นสอดคล้องกับที่ผมอธิบายมาแล้วยังครับ

หรือไม่ก็ช่วยทำตัวอย่างให้เห็นชัด ๆ ครับว่าค่าที่ต้องการ Lookup คือค่าใด ค่าที่ต้องการให้แสดงผลนั้นเป็นค่าใด

Re: การทำ VLOOKUP จากขวาไปซ้าย

Posted: Thu Nov 24, 2011 11:29 pm
by snasui
bank9597 wrote::D ขอถามอีกนิดครับ อยากให้อาจารย์ช่วยบอกข้อบกพร่องสูตรลักษณะนี้หน่อยครับ

=IF(ISNA(VLOOKUP($A4,INDIRECT(D$3&"!$A$7:$Q$17"),17,0)),0,VLOOKUP($A4,INDIRECT(D$3&"!$A$7:$Q$17"),17,0))

ขอบคุณครับ :D
ข้อด้อยของสูตรนี้คือใช้ Indirect เข้ามาช่วย ซึ่ง Indirect เป็น Volatile Function หมายถึงฟังก์ชั่นที่ถูกกระทบให้เปลี่ยนแปลงได้โดยง่าย ยกตัวอย่างเช่น เมื่อปรับความสูงหรือความกว้างเซลล์ซึ่งไม่ได้เกี่ยวข้องกับเซลล์ที่เขียนสูตรแต่อย่างใด สูตร Indirect จะทำการคำนวณทุกครั้ง ลักษณะเช่นนี้หากใช้มาก ๆ จะทำให้ไฟล์เกิดการคำนวณอยู่บ่อยครั้ง ทำให้ทำงานช้าลงครับ

Re: การทำ VLOOKUP จากขวาไปซ้าย

Posted: Thu Nov 24, 2011 11:45 pm
by bank9597
:D ไม่รอบคอบเอาเสียเลย ขออภัยครับ ผมแนบมาให้ใหม่แล้วครับ

Re: การทำ VLOOKUP จากขวาไปซ้าย

Posted: Fri Nov 25, 2011 12:09 am
by snasui
:D ลองตามนี้ครับ

ที่ B4 คีย์

=INDEX(Data!$A$2:$A$10,MATCH($B$1,Data!$C$2:$C$10,0))

Enter

ที่ C4 คึย์

=INDEX(Data!$B$2:$B$10,MATCH($B$1,Data!$C$2:$C$10,0))

Enter

Re: การทำ VLOOKUP จากขวาไปซ้าย

Posted: Fri Nov 25, 2011 12:34 am
by bank9597
:D ได้คำตอบถูกต้องหมดเลย แต่ยังคงทิ้งความสงสัยเกี่ยวกับเรื่องสูตรอยู่ไม่หาย เพราะพื้นฐานยังไม่แน่นพอครับ :D