Page 1 of 1

เรียนถามอาจารย์เรื่องสูตรvalidation&vlookupข้อมูลแบบไม่ซ้ำ

Posted: Mon Jan 14, 2013 11:27 am
by mailwalker
เรียนถามอาจารย์ครับ

คือผมนำสูตรValidation สัมพันธ์กันที่อาจารย์เขียนไว้ในBlog แต่ติดปัญหาดังนี้ครับ:
1 ข้อมูลที่ดึงขึ้นมาแสดงในช่องValidationนั้น(QUOTATION) เป็นข้อมูลที่ซ้ำๆกันหลายบรรทัด - สิ่งที่ต้องการคืออยากจะไห้โชว์แบบไม่ซ้ำครับ
2 หลังจากที่เลือก(QUOATION)จากDrop downแล้ว ยังต้องการให้ข้อมูลแสดงในช่อง ORIGIN กับ DESTINATION ซื่งข้อมูลก็มีความหลากหลายแตกต่างในหนึ่งQUOTATION - สิ่งที่ต้องการคืออยากจะไห้โชว์แบบไม่ซ้ำเหมือนกันครับ
ผมเขียนง่ายๆแบบ =IF(ISNA(VLOOKUP($C2,'ALL CARRIER'!$C:$G,5,0)),"",(VLOOKUP($C2,'ALL CARRIER'!$C:$G,5,0))) คือมันได้แค่โชว์อันแรก?อันเดียวซึ่งชื่ออื่นๆไม่ขึ้นมาครับ

ควรจะเขียนสูตรอะไรเพื่อให้เกินผลลัพย์ตามที่ต้องการครับ รบกวนอาจารย์ช่วยชี้แนะด้วยครับ ขอบคุณล้วงหน้าครับ
:thup:

แนบfileมาไห้ครับ

Re: เรียนถามอาจารย์เรื่องสูตรvalidation&vlookupข้อมูลแบบไม่ซ

Posted: Mon Jan 14, 2013 11:34 am
by snasui
:D ใน Validation หากไม่ต้องการค่าซ้ำ จะต้องกำจัดค่าซ้ำทิ้งไปก่อนให้เหลือเฉพาะที่ไม่ซ้ำด้วยวิธีใด ๆ ตาม Link ข้างล่างนี้ แล้วค่อยนำมาใช้ใน Validation ครับ

:arrow: http://snasui.blogspot.com/2010/05/blog-post.html

Re: เรียนถามอาจารย์เรื่องสูตรvalidation&vlookupข้อมูลแบบไม่ซ

Posted: Mon Jan 14, 2013 9:14 pm
by mailwalker
1.รับทราบครับ
2.ส่วนข้อนี้โจทน์ของผมคือVLOOKUPข้อมูลขึ้นมาโชว์มากกว่าหนึ่งอันหรือทั้งหมด (ที่ผมใช้vlookupมันขื้นมาแค่อันเดียว)
พอจะมีวิธีบ้างไหมครับ?

รบกวนด้วยครับ

Re: เรียนถามอาจารย์เรื่องสูตรvalidation&vlookupข้อมูลแบบไม่ซ

Posted: Mon Jan 14, 2013 9:28 pm
by snasui
:D
mailwalker wrote:2.ส่วนข้อนี้โจทน์ของผมคือVLOOKUPข้อมูลขึ้นมาโชว์มากกว่าหนึ่งอันหรือทั้งหมด (ที่ผมใช้vlookupมันขื้นมาแค่อันเดียว)
พอจะมีวิธีบ้างไหมครับ?
ลองตามนี้ครับ
  1. เซลล์ D2 คีย์
    =IFERROR(INDEX('ALL CARRIER'!$F$2:$F$16,SMALL(IF('ALL CARRIER'!$C$2:$C$16=$C$2,ROW('ALL CARRIER'!$C$2:$C$16)-ROW('ALL CARRIER'!$C$2)+1),ROWS(D$2:D2))),"")
    Ctrl+Shift+Enter > Copy ลงด้านล่าง
  2. เซลล์ E2 คีย์
    =IFERROR(INDEX('ALL CARRIER'!$G$2:$G$16,SMALL(IF('ALL CARRIER'!$C$2:$C$16=$C$2,ROW('ALL CARRIER'!$C$2:$C$16)-ROW('ALL CARRIER'!$C$2)+1),ROWS(D$2:D2))),"")
    Ctrl+Shift+Enter > Copy ลงด้านล่าง
Note: Ctrl+Shift+Enter หมายถึงเมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น Ctrl+Shift ค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array หากกดแป้นถูกต้องสูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น {=YourFormulas(...)} ปีกกานี้คีย์เข้าไปเองไม่ได้ ถ้ายังไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง

Re: เรียนถามอาจารย์เรื่องสูตรvalidation&vlookupข้อมูลแบบไม่ซ

Posted: Tue Jan 15, 2013 10:02 am
by mailwalker
ลองทำแล้วครับ ทำไม่ได้ครับ :|

โจทนืคือถ้าเลือก CARRIER = AAA
เลือก QUOTATION = ONE

ผลลัพย์คือ
ORIGIN จะต้องขึ้น = ASIA, AUSTRALIA
DESTINATION จะต้องขึ้น = MIDDLE EAST, LATAM EAST COAST, AUSTRALIA / NEW ZEALAND

*จะโชว์รวมอยู่ในช่องเดียวในช่องORIGIN/DESITNATION ก็ได้หรือจะ แยกเป็นหลายๆช่องก็ok

เพราะทุกวันนี้ผมต้องมานั้งfilterดูทีละอันแล้วก็copy ข้อมูลพวกนี้ไปทำต่ออะครับ

รบกวนอีกทีครับอาจารย์ ขอบคุณมากครับ

Re: เรียนถามอาจารย์เรื่องสูตรvalidation&vlookupข้อมูลแบบไม่ซ

Posted: Tue Jan 15, 2013 12:26 pm
by snasui
:D ในการอ้างอิงควรอ้างถึงชีท เซลล์ แทนการอ้างชื่อ Field จะได้เข้าถึงข้อมูลได้โดยเร็ว

สำหรับที่ถามมานั้น ปรับสูตรเป็นตามด้านล่าง
  1. ที่ D2 คีย์
    =IFERROR(INDEX('ALL CARRIER'!$D$2:$D$16,SMALL(IF(FREQUENCY(IF('ALL CARRIER'!$C$2:$C$16=$C$2,MATCH('ALL CARRIER'!$D$2:$D$16,'ALL CARRIER'!$D$2:$D$16,0)),ROW('ALL CARRIER'!$D$2:$D$16)-ROW('ALL CARRIER'!$D$2)+1),ROW('ALL CARRIER'!$C$2:$C$16)-ROW('ALL CARRIER'!$C$2)+1),ROWS(D$2:D2))),"")
    Ctrl+Shift+Enter > Copy ลงด้านล่าง
  2. ที่ E2 คีย์
    =IFERROR(INDEX('ALL CARRIER'!$E$2:$E$16,SMALL(IF(FREQUENCY(IF('ALL CARRIER'!$C$2:$C$16=$C$2,MATCH('ALL CARRIER'!$E$2:$E$16,'ALL CARRIER'!$E$2:$E$16,0)),ROW('ALL CARRIER'!$D$2:$D$16)-ROW('ALL CARRIER'!$D$2)+1),ROW('ALL CARRIER'!$C$2:$C$16)-ROW('ALL CARRIER'!$C$2)+1),ROWS(D$2:D2))),"")
    Ctrl+Shift+Enter > Copy ลงด้านล่าง

Re: เรียนถามอาจารย์เรื่องสูตรvalidation&vlookupข้อมูลแบบไม่ซ

Posted: Tue Jan 15, 2013 4:30 pm
by mailwalker
:thup: ใช้ได้แล้วครับอาจารย์ นี่จะเป็นประโยชน์ต่อการงานผมมากๆ ขอบคุณมากเลยครับ :P