Page 1 of 1

การหาข้อมูล โดยใช้vlookup หาข้อหลายๆแถว

Posted: Tue Jul 21, 2015 11:51 pm
by jum1234
การใช้ vlookup สามารถหาข้อมูลโดยแจ้งข้อมูลที่มีหลายๆแถวได้หรือไม่ หากไม่ได้พอจะใช้เครื่องมืออะไรในการหาข้อมูล

เช่นจากไฟล์แนบ (sheet ข้อมูล) แถว A มีรหัส 1154 อยู่หลายแถวมาก(คือแถวที่ 5,8,10,12,..) ต้องการได้ข้อมุล จึง Vlookup เพื่อหาอมูลแถว B โดยใช้สูตร แต่ผลที่ได้กลับได้ข้อมูลมาข้อมูลเดียว (Sheet ผลที่ได้) แต่ต้องการทราบว่า 1154 ประกอบด้วยข้อมูลอะไรบ้าง

ขอบคุณล่วงหน้านะค่ะ

Re: การหาข้อมูล โดยใช้vlookup หาข้อหลายๆแถว

Posted: Wed Jul 22, 2015 7:13 am
by joo
:D ลองตามนี้ดูครับ
ที่ A4 คีย์ =IFERROR(INDEX(ข้อมุล!B$4:B$920,SMALL(IF(ข้อมุล!$A$4:$A$920=$A$1,ROW(ข้อมุล!$A$4:$A$920)-ROW(ข้อมุล!$A$4)+1),ROWS(A$4:A4))),"") กดแป้น Ctrl+Shif+Enter พร้อมกัน แล้วคัดลอกไปทางขวาและลงล่าง

Re: การหาข้อมูล โดยใช้vlookup หาข้อหลายๆแถว

Posted: Wed Jul 22, 2015 12:28 pm
by Rosenabeth
ถ้าจะย้ายเป็นช่องอื่นเปลี่ยนตรงไหนบ้างครับ

Re: การหาข้อมูล โดยใช้vlookup หาข้อหลายๆแถว

Posted: Wed Jul 22, 2015 3:25 pm
by snasui
:D ต้องการย้ายไปช่องไหนและต้องการคำตอบเป็นอย่างไร ช่วยให้รายละเอียดเพิ่มเติมด้วยครับ

อยากทราบหลักการของสูตรนี้ รบกวนพี่ช่วยอธิบายทีนะครับ

Posted: Tue Aug 18, 2015 11:57 am
by pokemon0303
จากกระทู้นี้
http://www.snasui.com/viewtopic.php?f=3&t=8896
พี่ช่วยอธิบายหลักการของสูตรด้านล่างให้ทีครับ คือผมต้องการใช้งานแต่ผมงงสูตร จะนำไปประยุกต์ใช้ครับ

=IFERROR(INDEX(ข้อมุล!B$4:B$920,SMALL(IF(ข้อมุล!$A$4:$A$920=$A$1,ROW(ข้อมุล!$A$4:$A$920)-ROW(ข้อมุล!$A$4)+1),ROWS(A$4:A4))),"")


ขอบคุณมากนะครับ

Re: การหาข้อมูล โดยใช้vlookup หาข้อหลายๆแถว

Posted: Tue Aug 18, 2015 1:06 pm
by snasui
:D ศึกษาได้จากกระทู้นี้ครับ http://www.snasui.com/viewtopic.php?f=3 ... 141#p56141

Re: การหาข้อมูล โดยใช้vlookup หาข้อหลายๆแถว

Posted: Tue Aug 18, 2015 1:11 pm
by pokemon0303
ขอบคุณมากๆครับ

Re: การหาข้อมูล โดยใช้vlookup หาข้อหลายๆแถว

Posted: Tue Aug 18, 2015 1:17 pm
by pokemon0303
ไม่เข้าใจตรงนี้ครับ ROW(Sheet2!$A$2:$A$147)-ROW(Sheet2!$A$2)+1

แถว - แถว +1 คืออะไรอ่ะครับ

Re: การหาข้อมูล โดยใช้vlookup หาข้อหลายๆแถว

Posted: Tue Aug 18, 2015 2:08 pm
by bank9597
1. ROW(Sheet2!$A$4) คือ ค่าคงที่ ทำให้รู้ว่าข้อมูลเริ่มจาก Row ที่เท่าไหร่ จากสูตรข้างต้น คือ Row4 ค่าเท่ากับ 4

2. IF(ข้อมุล!$A$4:$A$920=$A$1,ROW(ข้อมุล!$A$4:$A$920) แปลว่า ถ้า "ข้อมุล!$A$4:$A$920=$A$1" ก็ให้แสดงว่าคำตอบอยู่ใน Row ไหนบ้าง ในระหว่าง Row4 ถึง Row920 สมมุติค่าที่ตรงเงื่อนไขอยู่ที่ Row ที่ 1ของช่วงข้อมูล ข้อมุล!$A$4:$A$920 ค่าที่ได้คือ 4

เอา คำตอบข้อ 2 - ข้อ1 ได้เท่ากับ 4-4 = 0 แล้วบวก 1 เข้าไปตามในสูตร --> ROW(ข้อมุล!$A$4:$A$920)-ROW(ข้อมุล!$A$4)+1

คำตอบที่ได้คือ 1 ตัวเลขนี้คือลำดับบรรทัดของคำตอบที่เราต้องการ ซึ่งมันจะมีหลายค่า (อาร์เรญ์) เช่น 1, 5,8....... ก็แล้วแต่

ค่าอาร์เรย์ที่ได้ทั้งหมดจากคำตอบข้างบนนำมาใช้ในสูตร Small โดยสูตรนี้จะเรียงลำดับข้อมูลจากน้อยไปหามาก ย่อสูตรให้เล็กลงมาดังนี้
SMALL(อาร์เรย์,ROWS(A$4:A4))
ROWS(A$4:A4) สูตรนี้ใช้ Run ตัวเลข 1ถึง .... ก็แล้วแต่เราจะคัดลอกสูตรลงมากี่ Row

คำตอบที่ได้จากสูตร Small คือ ลำดับบรรทัดในช่วงข้อมูล A4:A920
จากนั้นเอาสูตร Index มาคร่อม สูตรนี้จะดึงค่ามาแสดงจากลำดับ Row นั่นเอง

Re: การหาข้อมูล โดยใช้vlookup หาข้อหลายๆแถว

Posted: Tue Aug 18, 2015 2:41 pm
by pokemon0303
ขอบคุณมากนะครับ ผมยังต้องฝึกอีกเยอะเลย

Re: การหาข้อมูล โดยใช้vlookup หาข้อหลายๆแถว

Posted: Tue Aug 18, 2015 4:05 pm
by snasui
:D อ่านเพิ่มเติมสำหรับ Row(Range)-Row(Cell)+1 ได้ที่นี่ครับ viewtopic.php?p=17983#p17983