Page 1 of 1

ฺVLOOKUP ให้แสดงข้อมูลแยกย่อยลงไปอีก

Posted: Mon Jan 30, 2017 9:43 am
by suracoom01
สวัสดีครับ
ขอสอบถามปัญหานะครับ คือ ผมใช้สูตร VLOOKUP ในการแสดงรายละเอียดข้อมูลโดยใช้
ชื่องาน เป็นตัวคีย์ข้อมูล เพื่อให้รายละเอียดข้อมูลที่ต้องการแสดงผลออกมา
แต่ ติดปัญหาตรงที่ ผมอยากได้ข้อมูลเพิ่ม ดังนี้ ว/ด/ป รายละเอียดงาน ยอดเงิน(ส่วนแบ่ง)
อยากให้ 3 ส่วนนี้มันแสดงแยกย่อยออกมา จากจำนวนเงินรวม เช่น เลือก ชื่องาน B.B Export แผนก Depart
เลขที่ใบ Job DE 07302 จำนวนเงินรวม 8,295 อยากให้ข้อมูลแสดงเพิ่มขึ้นว่า
วันที่เท่าไหร่ ที่มีใครทำงานนี้บ้างแล้ว รายละเอียดงาน ที่ทำคืออะไร ได้ ยอดเงิน(ส่วนแบ่ง) เท่าไหร่
ตัวอย่างคำตอบประมานนี้ครับ
B.B Export ฝ่าย/แผนก Depart เลขที่ใบ Job DE 07302 จำนวนเงินรวม 8,295 วันที่ 26/12/2559
มีนาย ฉ ทำงาน สติ๊กเกอร์ 4,000 และนาย ช ทำงานไวนิล 4,295
ถ้าใช้สูตรVLOOKUPไม่ได้ก็เปลี่ยนสูตรใหม่ได้นะครับ

Re: ฺVLOOKUP ให้แสดงข้อมูลแยกย่อยลงไปอีก

Posted: Mon Jan 30, 2017 10:35 am
by menem
ผมใช้ Index , Match และ Indirect เข้ามาช่วยเพื่อสร้างเงื่อนไขการระบุตำแหน่ง
ไม่แน่ใจว่าตรงกับที่ต้องการหรือไม่นะครับ

หลักการคือ นับว่ามีรายการ > 1 หรือไม่ก่อน ( CountIF )
ถ้าใช่ ให้หาว่าอยู่ที่บรรทัดเท่าไหร่เป็นอันแรก ( MATCH )
และหาว่าอันถัด ๆ ไปอยู่ที่บรรทัดเท่าไหร่ ( MATCH , INDIRECT )
สุดท้ายจะใช้ INDEX เพื่อดึงข้อมูลที่ต้องการออกมา

Re: ฺVLOOKUP ให้แสดงข้อมูลแยกย่อยลงไปอีก

Posted: Mon Jan 30, 2017 11:41 am
by suracoom01
menem wrote:ผมใช้ Index , Match และ Indirect เข้ามาช่วยเพื่อสร้างเงื่อนไขการระบุตำแหน่ง
ไม่แน่ใจว่าตรงกับที่ต้องการหรือไม่นะครับ

หลักการคือ นับว่ามีรายการ > 1 หรือไม่ก่อน ( CountIF )
ถ้าใช่ ให้หาว่าอยู่ที่บรรทัดเท่าไหร่เป็นอันแรก ( MATCH )
และหาว่าอันถัด ๆ ไปอยู่ที่บรรทัดเท่าไหร่ ( MATCH , INDIRECT )
สุดท้ายจะใช้ INDEX เพื่อดึงข้อมูลที่ต้องการออกมา
ตรงตามความต้องการเลยครับ ขอบคุณมากครับ :thup:

Re: ฺVLOOKUP ให้แสดงข้อมูลแยกย่อยลงไปอีก

Posted: Mon Jan 30, 2017 12:30 pm
by suracoom01
menem wrote:ผมใช้ Index , Match และ Indirect เข้ามาช่วยเพื่อสร้างเงื่อนไขการระบุตำแหน่ง
ไม่แน่ใจว่าตรงกับที่ต้องการหรือไม่นะครับ

หลักการคือ นับว่ามีรายการ > 1 หรือไม่ก่อน ( CountIF )
ถ้าใช่ ให้หาว่าอยู่ที่บรรทัดเท่าไหร่เป็นอันแรก ( MATCH )
และหาว่าอันถัด ๆ ไปอยู่ที่บรรทัดเท่าไหร่ ( MATCH , INDIRECT )
สุดท้ายจะใช้ INDEX เพื่อดึงข้อมูลที่ต้องการออกมา
ขอถามอีกสักอย่างนะครับ ผมสงสัยครับว่า แถวH บรรทัดที่ 14 สูตรมันหมายความว่ายังไงครับและก็ตรงD100000 ช่วยอธิบายให้ทีได้ไหมครับ =IF(I14<=$I$8,MATCH($F$8,INDIRECT("'"&$I$6&"'!D"&H13+1&":D1000000"),0)+H13,0)

Re: ฺVLOOKUP ให้แสดงข้อมูลแยกย่อยลงไปอีก

Posted: Tue Jan 31, 2017 12:37 am
by menem
สูตรนี้คือการ นำเอาบรรทัดที่เจอข้อมูลล่าสุด + 1
เป็นตำแหน่งเริ่มต้น เช่น ถ้าข้อมูลชุดแรกอยู่ที่บรรทัดที่ 2
สิ่งที่อยู่ใน Indirect จะเป็น D3:D1000000
และที่กำหนดเป็น D1000000 คือบรรทัดสุดท้ายที่จะใช้เพื่อ
ตรวจสอบข้อมูลครับ (จริง ๆ มีเกินกว่านี้อีกนิดหน่อย)
เมื่อได้ลำดับอ้างอิงของข้อมูลชุดถัดไป ก็จะต้องบวกด้วย
ลำดับที่เจอก่อนหน้า เพื่อให้ได้บรรทัดที่แท้จริงอีกทีครับ

Re: ฺVLOOKUP ให้แสดงข้อมูลแยกย่อยลงไปอีก

Posted: Tue Jan 31, 2017 8:16 am
by suracoom01
เข้าใจกระจ่างแล้วครับ ขอบคุณมากครับ