Page 1 of 1

Vlookup กับข้อมูลที่ถูกเลือก Sort By แล้ว

Posted: Tue Nov 19, 2013 11:13 am
by mabolosoda
สวัสดีครับ พอดีผมมีปัญหาอยู่เกี่ยวกับการ Vlookup ซึ่งถ้าทำแบบปกติ ผลที่ได้ออกมามันจะไม่ได้ตามที่่ผมต้องการ คือตอนแรกผม เลือก Sort by ตามแผนกก่อนจาก Sheet Data แล้วมาทำการ Vlookup กับอีก Sheet Sum by Depart ครับ คือถ้าผมเข้าใจไม่ผิดตัวสูตรจะไปเลือกข้อมูลตาม Row แบบ Auto เช่น 250 > 251 > 252 เวลาที่ลากลงมาด้านล่าง ซึ่งขอมูลของผมไม่ได้เรียงบรรทัดกันจึงทำให้ข้อมูลที่ถูกเรียกมาไม่แสดงตามที่ผมต้องการ ซึงก่อนที่ผมจะทำการ Vlookup ผมก็ได้ทำ Range Name ไว้แล้ว หรือผมสร้าง Range Name ผิดครับ ? ผมแนบไฟล์มาให้แล้วครับ ขอบคุณครับ

Re: Vlookup กับข้อมูลที่ถูกเลือก Sort By แล้ว

Posted: Tue Nov 19, 2013 11:43 am
by snasui
:D ช่วยอธิบายเกี่ยวกับไฟล์แนบว่าชีทไหน เซลล์ไหน ต้องการคำตอบเป็นเท่าใด ด้วยเงื่อนไขใดมาด้วยจะได้เข้าถึงข้อมูลได้โดยไวครับ

Re: Vlookup กับข้อมูลที่ถูกเลือก Sort By แล้ว

Posted: Tue Nov 19, 2013 1:35 pm
by mabolosoda
คืออยากให้โชว์คอลัมภ์ CY-DB จากจากชีท Data โดยมีเงื่อนไขให้ เรียงตามแผนก เพื่อหาผลรวมขอแต่ละแผนกครับ พอจะมีวิธีไหมครับ คาดว่าในอนาคตต้องมีการเพิ่มเติมข้อมูลอีกจึงเลือกใช้ วิธีการ Vlookup เอาครับ ขอบคุณครับ

Re: Vlookup กับข้อมูลที่ถูกเลือก Sort By แล้ว

Posted: Tue Nov 19, 2013 1:56 pm
by snasui
:D สูตร Vlookup เดิมที่ใช้มีค่าเท่ากับสูตรที่ไป Link มาเฉย ๆ

เช่น

=VLOOKUP(Data!$CY15,sumcd,1,FALSE)

มีค่าเท่ากับ

=Data!$CY15

ซึ่งไม่จำเป็นต้องใช้ Vlookup

สำหรับการ Vlookup นำค่ามาวางตามแผนกที่ต้องการ ซึ่งแผนกหนึ่งมีหลายค่า ไม่สามารถใช้ Vlookup เข้ามาช่วยได้ครับ

สามารถใช้ Index + Match เข้ามาช่วยได้กรณีที่มีการจัดเรียงข้อมูลใหม่ แต่ข้อจำกัดคือ จะต้องเรียงข้อมูลเป็นชุด ๆ ติดกันเช่นเดิม ไม่เช่นนั้นจะต้องพึ่งสูตร Array ซึ่งมีความซับซ้อนและเข้าใจยากขึ้น

ตัวอย่างสูตร

ที่ชีท Sum by Depart เซลล์ A4 คีย์

=INDEX(Data!$CY$5:$DB$402,MATCH($A$2,Data!$F$5:$F$402,0)+ROWS(A$4:A4)-1,MATCH(A$3,Data!$CY$4:$DB$4,0))

Enter > Copy ไปด้านขวาและลงด้านล่าง จากนั้นปรับใช้กับพื้นที่อื่น ๆ

Re: Vlookup กับข้อมูลที่ถูกเลือก Sort By แล้ว

Posted: Tue Nov 19, 2013 4:12 pm
by mabolosoda
จากที่อาจารย์ตอบมา ผมเลยกลับไปเปลี่ยนข้อมูลโดยการนำมาเรียงกัน แล้วซึ่งสามารถ Vlookup ได้ ไม่มีปัญหาครับ ข้อมูลมาครบถ้วน แต่จู่ๆก็มีปัญหาขึ้นมาครับ คือ ตามไฟล์ถาพที่ผมแนบครับ ในวงกลมสีแดง พอเรา Vlookup ปกติแล้ว เวลาเราลากลงมาค่ามันก็จะรันออโต้ ถูกไหมครับ แต่คราวนี้ข้อมูลมันไม่แสดง 1 แถวครับเลย งงมากๆ ครับ แถวที่ผมวงสีแดงไว้ในภาพครับ ส่วนไฟล์ก็ไฟล์เดิมตามที่แนบเลยครับเป็นของแผนก GT ครับ ขอบคุณอาจารย์ล่วงหน้าอีกครั้งครับ

Re: Vlookup กับข้อมูลที่ถูกเลือก Sort By แล้ว

Posted: Tue Nov 19, 2013 4:15 pm
by snasui
:D ควรแนบไฟล์ที่ลองทำแล้วมาด้วย จะได้ช่วยตรวจสอบได้ว่าผิดพลาดตรงไหน อย่างไร ครับ

Re: Vlookup กับข้อมูลที่ถูกเลือก Sort By แล้ว

Posted: Tue Nov 19, 2013 4:21 pm
by mabolosoda
ผมแนบไฟล์ พร้อมไฮไลต์แถวที่เป็นปัญหาเป็นสีแดงไว้ให้นะครับ

Re: Vlookup กับข้อมูลที่ถูกเลือก Sort By แล้ว

Posted: Tue Nov 19, 2013 4:43 pm
by snasui
:D จากสูตร

=VLOOKUP(Data!CY183,Data!sumfs,2,FALSE)

Data!sumfs คือช่วงข้อมูล =Data!$CY$35:$DB$106

Data!CY183 มีค่าเป็น 0

=VLOOKUP(Data!CY183,Data!sumfs,2,FALSE)

หมายถึง ให้หาค่าที่เท่ากับ 0 ในคอลัมน์แรกของ Data!sumfs แล้วนำค่าที่ตรงกันในคอลัมน์ที่ 2 ของ Data!sumfs มาแสดง
ค่าที่เท่ากับ 0 ในคอลัมน์แรกของ Data!sumfs ตัวแรกคือเซลล์ Data!CY35 คอลัมน์ถัดมาไม่ว่าจะเป็น Data!CZ35, Data!DA35, Data!DB35 ต่างก็เป็น 0 ทั้งสิ้น

ดังนั้นไม่ว่าจะนำค่าจากคอลัมน์ใดมาแสดงก็จะต้องได้คำตอบเป็น 0 ซึ่งถูกต้องแล้วครับ

Vlookup จะไม่หาค่าจาก 0 ตัวอื่นอีกนอกจาก Data!CY35 เท่านั้น เพราะว่า Data!CY35 เป็น 0 ตัวแรกของคอลัมน์แรกของ Data!sumfs

Vlookup ที่ใช้อยู่นี้มีโอกาสให้ค่าที่ผิดพลาดได้สูงมากครับ

Re: Vlookup กับข้อมูลที่ถูกเลือก Sort By แล้ว

Posted: Tue Nov 19, 2013 4:54 pm
by mabolosoda
แล้วพอจะมีวิธีแก้ไขไหมครับ? หรือแก้ไม่ได้เลยครับ ขอบคุณอาจารย์ล่วงหน้าครับ

Re: Vlookup กับข้อมูลที่ถูกเลือก Sort By แล้ว

Posted: Tue Nov 19, 2013 5:00 pm
by snasui
:shock: อ่านและลองทำตามที่ผมตอบไปในโพสต์นี้แล้วยัง ถ้ายังไม่ทราบว่าติดปัญหาใดครับ :?:
snasui wrote::D สูตร Vlookup เดิมที่ใช้มีค่าเท่ากับสูตรที่ไป Link มาเฉย ๆ

เช่น

=VLOOKUP(Data!$CY15,sumcd,1,FALSE)

มีค่าเท่ากับ

=Data!$CY15

ซึ่งไม่จำเป็นต้องใช้ Vlookup

สำหรับการ Vlookup นำค่ามาวางตามแผนกที่ต้องการ ซึ่งแผนกหนึ่งมีหลายค่า ไม่สามารถใช้ Vlookup เข้ามาช่วยได้ครับ

สามารถใช้ Index + Match เข้ามาช่วยได้กรณีที่มีการจัดเรียงข้อมูลใหม่ แต่ข้อจำกัดคือ จะต้องเรียงข้อมูลเป็นชุด ๆ ติดกันเช่นเดิม ไม่เช่นนั้นจะต้องพึ่งสูตร Array ซึ่งมีความซับซ้อนและเข้าใจยากขึ้น

ตัวอย่างสูตร

ที่ชีท Sum by Depart เซลล์ A4 คีย์

=INDEX(Data!$CY$5:$DB$402,MATCH($A$2,Data!$F$5:$F$402,0)+ROWS(A$4:A4)-1,MATCH(A$3,Data!$CY$4:$DB$4,0))

Enter > Copy ไปด้านขวาและลงด้านล่าง จากนั้นปรับใช้กับพื้นที่อื่น ๆ

Re: Vlookup กับข้อมูลที่ถูกเลือก Sort By แล้ว

Posted: Mon Nov 25, 2013 3:34 pm
by mabolosoda
ขอบคุณมากครับ ตอนนี้ทำได้แล้วตามคำแนะนำครับ แต่ พอดีมีปัญหาใหม่ขึ้นมาครับ คือผมอยากทราบการทำปุ่มเพื่อลิงค์ไปยังชีทที่ถูกซ่อนโดย VBA ครับ จะต้องทำอย่างไรครับ หรือมีวิธีอื่นเพื่อซ่อนชีทแล้วสามารถจะลิงค์เพื่อนำมาแสดงในชีทที่เราต้องการได้ครับ

Re: Vlookup กับข้อมูลที่ถูกเลือก Sort By แล้ว

Posted: Mon Nov 25, 2013 3:53 pm
by snasui
:roll: :D สำหรับการใช้ VBA จำเป็นต้องเขียนมาเองก่อนครับ ติดปัญหาแล้วสามารถสอบถามมาได้เต็มที่

อ่านกฎการใช้บอร์ดข้อ 5 ด้านบนประกอบด้วยครับ