Page 1 of 1

ขอคำแนะนำ วิธีการ ส่ง/ดึง ข้อมูลที่ซ้ำกัน มากกว่า 1 รายการ

Posted: Wed Dec 25, 2013 11:59 am
by voravit
เรียน : อาจารย์ ที่นับถือครับ
ผมรบกวน อาจารย์ ช่วยให้คำแนะนำสูตร ในการส่งข้อมูล จากฐานข้อมูล ที่มีซ้ำกันมากกว่าหนึ่งรายการ ไป แสดงยัง ซีทถัดใป มากกว่า 1 รายการครับ
รายละเอียดตามไฟล์ แนบ
ขอบคุณครับ

Re: ขอคำแนะนำ วิธีการ ส่ง/ดึง ข้อมูลที่ซ้ำกัน มากกว่า 1 รายก

Posted: Wed Dec 25, 2013 6:52 pm
by snasui
:D จากที่อธิบายมาในไฟล์แนบ
voravit wrote: วัตถุประสงค์ : ต้องการดึงข้อมูลจาก รายงานทะเบียน เช็ครับ ไปยัง ใบนำฝากเช็คธนาคาร โดยใช้การอ้างอิงจากเลขที่บัญชี

ผมใช้ Vlookup ในการดึงข้อมูล ในเบื้องต้น ได้ครับ แต่ พอ มี เลขที่บัญชีซ้ำกัน ใน รายงานทะเบียนเช็ครับ อันเนื่องจาก ลูกค้ารายเดียวกันนั้น
สั่งจ่ายเช็คมากกว่า 1 ใบ ผลคือ จะดึงข้อมูลได้แค่รายการเดียวครับ ผมต้องการให้ดึงข้อมูลได้มากกว่าหนึ่งรายการในรายที่ เลขที่บัญชีซ้ำกันครับ

เรียน รบกวน อาจารย์ช่วยแนะนำสูตรด้วยครับ ขอบพระคุณครับ

หมายเหตุ : ส่งข้อมูล รายงานทะเบียนเช็ครับ(chqrec) ส่วนที่ระบายสีแดง ไปยัง ใบนำฝากเช็ค(kbSQ) ส่วนที่ระบายสีเหลือง
ที่ชีท kbSQ เซลล์ G11 คีย์สูตร

=IFERROR(INDEX(chqrec!F$9:F$14,SMALL(IF(chqrec!$C$9:$C$14=LOOKUP(9.99999999999999E+307,$E$11:$E15),ROW(chqrec!$F$9:$F$14)-ROW(chqrec!$F$9)+1),COUNTIF($E$11:$E15,LOOKUP(9.99999999999999E+307,$E$11:$E15)))),"")

Ctrl+Shift+Enter > Copy ไปทางขวา กรณีเซลล์มีการ Merge จะไม่สามารถใช้สูตรนี้ซึ่งเป็นสูตร Array ได้ > ปรับใช้กับเซลล์อื่น ๆ ที่เหลือโดยเปลี่ยนเฉพาะที่ระบายสีไว้ในสูตร จากนั้น Copy ไปยังช่วงอื่น ๆ

!
Note: Ctrl+Shift+Enter หมายถึงเมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น Ctrl+Shift ค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array หากกดแป้นถูกต้องสูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น {=YourFormulas(...)} ปีกกานี้คีย์เข้าไปเองไม่ได้ ถ้ายังไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง

Re: ขอคำแนะนำ วิธีการ ส่ง/ดึง ข้อมูลที่ซ้ำกัน มากกว่า 1 รายก

Posted: Fri Dec 27, 2013 7:54 am
by voravit
ขอบพระคุณครับอาจารย์ เบื้องต้นผมทำตามที่อาจารย์แนะนำ คือ นำสูตรใส่ลงในเชล G11 ได้ผลลัพธ์ตามต้องการแล้วครับ และ ผมกำลัง copy สูตรไปยัง เซล อื่นๆ ถ้าติดขัดอะไรจะเรียนขอข้อแนะนำเพิ่มครับ

Re: ขอคำแนะนำ วิธีการ ส่ง/ดึง ข้อมูลที่ซ้ำกัน มากกว่า 1 รายก

Posted: Fri Dec 27, 2013 2:00 pm
by voravit
2BN&BFc-topics.xlsm
เรียน : อาจารย์ ครับ
1. ผม คัดลอกสูตรไปใช้แล้วครับ ผลออกมาในช่องกรอก อันดับที่ 1 เลขที่เช็ค วันที่ จำนวนเงินได้ จะมีที่ยังไม่ได้ คือ เลขที่เช็ค และ ช่อง ที่เปลี่ยนจำนวนเงินเป็นตัวเลขเป็นตัวอักษรคับ
2. ผมคัดลอดสูตรเดิมไปที่ช่องกรอก อันดับที่สอง แต่ ปรากฏว่า เลขที่เช็ค ก็ยังซ้ำกับ ช่องกรอก อันดับที่ 1 อยู่ครับผมต้องปรับแก้สูตรยังไงครับ
รบกวนอาจารย์ให้คำแนาะนำเพิ่มเติมด้วยครับ ขอบคุณครับ

Re: ขอคำแนะนำ วิธีการ ส่ง/ดึง ข้อมูลที่ซ้ำกัน มากกว่า 1 รายก

Posted: Fri Dec 27, 2013 3:17 pm
by snasui
:D ปรับสูตรที่ E13 เป็นด้านล่างครับ

=IF(ISNA(VLOOKUP(E14,chqrec!$C$9:$K$14,6,0)),"",BAHTTEXT(VLOOKUP(E14,chqrec!$C$9:$K$14,6,0)))

Enter > Copy ไปยังเซลล์ในฟอร์มด้านล่างที่อยู่ในตำแหน่งเดียวกัน

สูตร BathText ที่เขียนมาเดิมเป็นการอ้างคอลัมน์ I ซึ่งคอลัมน์ I ตามสูตรที่ผมตอบไปจะอ้างมายังคอลัมน์ E สูตรที่ผมเขียนตอบไปจึงทำงานไม่ถูกต้องเนื่องจากเป็นการอ้างอิงแบบวงกลม

สำหรับในสูตรเดิม ช่วงของสูตร ROW(chqrec!$F$9:$F$14)-ROW(chqrec!$F$9)+1 จะต้องบวกด้วย 1 เท่านั้น ห้ามปรับเป็นบวกด้วยค่าอื่น หากไม่ได้คำตอบแสดงว่ามีบางอย่างผิดพลาด ซึ่งไม่เกี่ยวกับเลข 1 ครับ

Re: ขอคำแนะนำ วิธีการ ส่ง/ดึง ข้อมูลที่ซ้ำกัน มากกว่า 1 รายก

Posted: Sat Dec 28, 2013 12:13 am
by voravit
เรียน : อาจารย์ที่นับถือ
ผมได้ทำตามที่ อาจารย์แนะนำมาผลออกมาได้แล้วครับ มีที่จะขออาจารย์ช่วยปรับแก้อีกเล็กน้อย คือ ช่องที่ไม่ลงรายการ ก็ควรจะต้องว่าง แต่กลับมีข้อมูลของช่องบนที่ถัดขึ้นไป ปรากฏอยู่ ผมขอรบกวนอีกครั้งครับ
ขอบพระคุณเป็นอย่างสูงครับ

Re: ขอคำแนะนำ วิธีการ ส่ง/ดึง ข้อมูลที่ซ้ำกัน มากกว่า 1 รายก

Posted: Sat Dec 28, 2013 12:52 am
by snasui
:D ปรับสูตรที่ G11 เป็นด้านล่างครับ

=IFERROR(IF(LOOKUP(2,1/($C$11:$C15="ผู้สั่งจ่าย :"),$E$11:$E15)="","",INDEX(chqrec!F$9:F$55,SMALL(IF(chqrec!$C$9:$C$55=LOOKUP(9.99999999999999E+307,$E$11:$E15),ROW(chqrec!$F$9:$F$55)-ROW(chqrec!$F$9)+1),COUNTIF($E$11:$E15,LOOKUP(9.99999999999999E+307,$E$11:$E15))))),"")

Ctrl+Shift+Enter > ปรับใช้กับ Cell อื่น ๆ

Re: ขอคำแนะนำ วิธีการ ส่ง/ดึง ข้อมูลที่ซ้ำกัน มากกว่า 1 รายก

Posted: Sat Dec 28, 2013 12:22 pm
by voravit
เรียน : อาจารย์ ที่นับถือ
ส่งการบ้านครับอาจารย์ ผมได้นำสูตรที่อาจารย์ปรับแก้ให้ เอาไปลงแล้วครับ ผลที่ได้เกือบครบแล้วครับ ติดอยู่ สอง ประเด็นที่อยากให้อาจารย์ช่วยครับ คือ
1. ในช่องจำนวนเงินที่เป็นตัวอักษร ปรากฏว่า ค่าที่ ส่งมา จะซ้ำกัน ในรายที่มีเลขที่ บัญชี ซ้ำกันครับ
2. ในช่อง ref ทั้ง สาม ช่อง ถ้า ช่องแบบเดียวกันนี้ใน ฐานข้อมูล ไม่มีข้อมูล ค่าที่ส่งมาจะได้เป็น ศุนย์(0) พอผมใส่เงื่อนไข ให้แสดงค่าเป็นรูปแบบ IV560#### ผลที่ออก จะเป็น IV56-00 จะต้องปรับแก้สูตรอย่างไรครับ เพื่อให้เป็นช่องว่างๆ ตอนนี้ผม ทำได้แค่ ใส่เงื่อนไข ให้เป็นตัวสีขาว เพื่อให้มองไม่เห็น แต่ ไม่แน่ใจว่าพอ สั่งพิมพ์ ข้อความนั้นจะปารากฏออกมาหรือไม่
ขอรบกวนอาจารย์เพิ่มเติมตามที่เรียนมาด้วยครับ
ขอขอบพระคุณเป็นอย่างสูงครับ

Re: ขอคำแนะนำ วิธีการ ส่ง/ดึง ข้อมูลที่ซ้ำกัน มากกว่า 1 รายก

Posted: Sat Dec 28, 2013 1:16 pm
by snasui
:D ลองตามนี้ครับ
  1. เซลล์ F14 ปรับสูตรเป็น
    =IFERROR(IF(E14="","",INDEX(chqrec!$D$9:$D$55,SMALL(IF(chqrec!$C$9:$C$55=$E14,ROW(chqrec!$F$9:$F$55)-ROW(chqrec!$F$9)+1),COUNTIF($E$11:$E15,E$14)))),"")
    Ctrl+Shift+Enter > Copy ไปยังเซลล์อื่น ๆ ที่เกี่ยวข้อง
  2. กรณีผลลัพธ์เป็น 0 แล้วต้องการให้แสดงค่าว่าง สามารถกำหนด Format Cells เป็น [>0]IV56-00###;[=0]""

Re: ขอคำแนะนำ วิธีการ ส่ง/ดึง ข้อมูลที่ซ้ำกัน มากกว่า 1 รายก

Posted: Mon Dec 30, 2013 5:10 pm
by voravit
เรียน : อาจารย์ ที่นับถือ ครับ
ผมลงสูตรแล้วครับ แต่ การแสดงค่า ของ จำนวนเงินที่เป็นตัว อักษรยังไม่ได้ครับ รบกวนอาจารย์ อีกครั้งครับ
ขอบพระคุณเป็นอย่างสูงครับ

Re: ขอคำแนะนำ วิธีการ ส่ง/ดึง ข้อมูลที่ซ้ำกัน มากกว่า 1 รายก

Posted: Mon Dec 30, 2013 5:42 pm
by snasui
:D สูตรในเซลล์ E13 จะต้องเลื่อนไปเป็น F13 เนื่องจากหากเขียนที่คอลัมน์ E จะเกิดการคำนวณเป็นวงกลม โดยเขียนเป็นตามด้านล่างครับ

=IFERROR(IF(E14="","",BAHTTEXT(INDEX(chqrec!$H$9:$H$55,SMALL(IF(chqrec!$C$9:$C$55=$E14,ROW(chqrec!$F$9:$F$55)-ROW(chqrec!$F$9)+1),COUNTIF($E$11:$E15,E14))))),"")

Ctrl+Shift+Enter > Copy ไปยังเซลล์อื่น ๆ ที่เกี่ยวข้อง

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

วิธีการที่ดีกว่าคือเพิ่มพื้นที่สำหรับการแสดงรายการที่เข้าเงื่อนไขทั้งหมด (ไม่ว่าจะมีกี่รายการหากเข้าเงื่อนไขจะ List ออกมาทั้งหมด) หลังจากนั้นจึงใช้สูตรง่าย ๆ เช่นด้านล่างดึงข้อมูลจากพื้นที่ดังกล่าวลงในฟอร์มตามต้องการ

=if(A1="","",A1)
=If(B1="","",B1)

เป็นต้น

Re: ขอคำแนะนำ วิธีการ ส่ง/ดึง ข้อมูลที่ซ้ำกัน มากกว่า 1 รายก

Posted: Mon Dec 30, 2013 10:19 pm
by voravit
เรียน : อาจารย์ ที่นับถือ
ผมขอขอบคุณ อาจารย์เป็นอย่างสูง ที่ให้คำแนะนำอย่างต่อเนื่อง รวดเร็ว และ อดทนต่อข้อซักถามของคนที่มีพื้นฐาน Excel ไม่มากอย่างผม ตอนนี้ผมได้แผ่นงานสมบูรณ์ ตามความต้องการใช้งานแล้วครับ ด้วยการตอบแนะนำอย่างต่อเนื่อง เป็นขั้นตอน ผมได้ คิด เรียนรู้สูตร เพื่อปรับใช้กับ เซล ที่ต้องการเหมือนกัน ผมส่งการบ้านมาให้ อาจารย์ตรวจการลงสูตร ครับ
ขอแสดงความนับถือ และ ขอบคุณ อย่างสูง
:thup: :cp: