Page 1 of 1
แยกค่าซ้ำๆกันออกไปไว้อีกชีต
Posted: Mon Mar 25, 2013 11:06 pm
by XDoll
รบกวนอาจารย์ครับ
ผมต้องการแยกสัญญาลูกค้าที่ซ้ำๆกันไว้อีกชีต โดยเลือกเพียงค่าใดค่าหนึ่ง และมีตัวแปรให้เลือกตามความสำคัญ(Colum E) รายละเอียดตามไฟล์ที่แนบไว้ครับ
sheet [name] เป็นไฟล์ตั้งต้น
sheet [Select] เป็นไฟล์ที่ต้องการที่จะให้เป็น
Re: แยกค่าซ้ำๆกันออกไปไว้อีกชีต
Posted: Mon Mar 25, 2013 11:49 pm
by DhitiBank
... ผมลบความคิดเห็นออกแล้ว ตอนแรกตั้งใจจะถามลำดับความสำคัญเพิ่ม แต่พอดูไฟล์แนบอีกครั้ง... มีอยู่แล้วนี่นา ขออภัยครับ
Re: แยกค่าซ้ำๆกันออกไปไว้อีกชีต
Posted: Tue Mar 26, 2013 3:09 am
by DhitiBank
ลองแบบนี้ครับ
ที่ชีท Select
1 คอลัมน์ช่วย 3 คอลัมน์:
ที่ H3 คีย์
=IF(All!A3="",0,IF(COUNTIF(All!$A$3:All!A3,All!A3)=1,1,0))
กด enter
ที่ I3 คีย์
=IF(All!E3="","",IF(All!E3="TC",1,IF(All!E3="TM",2,IF(All!E3="TH",3,IF(All!E3="TO",4,5)))))
กด enter
ที่ J3 คีย์
=IF(ISERR(MIN(IF(All!$A$3:$A$20=A3,Select!$I$3:$I$20,""))),"",MIN(IF(All!$A$3:$A$20=A3,Select!$I$3:$I$20,"")))
กด Ctrl + Shift + Enter
2 ในตาราง
ที่ A3 คีย์
=IF(ISERR(INDEX(All!$A$3:$A$20,SMALL(IF(Select!$H$3:$H$20=1,ROW($H$3:$H$20)-ROW($H$3)+1),ROWS($A$3:A3)))),"",INDEX(All!$A$3:$A$20,SMALL(IF(Select!$H$3:$H$20=1,ROW($H$3:$H$20)-ROW($H$3)+1),ROWS($A$3:A3))))
กด Ctrl + Shift + Enter
ที่ B3 คีย์
=IF($A3="","",INDEX(All!$B$3:$B$20,MATCH($A3,All!$A$3:$A$20,0)))
enter
ที่ C3 คีย์
=IF($A3="","",INDEX(All!$C$3:$C$20,MATCH($A3,All!$A$3:$A$20,0)))
enter
ที่ D3 คีย์
=IF($A3="","",INDEX(All!$D$3:$D$20,MATCH($A3,All!$A$3:$A$20,0)))
กด enter
ที่ E3 คีย์
=IF(J3="","",IF(J3=1,"TC",IF(J3=2,"TM",IF(J3=3,"TH",IF(J3=4,"TO","-")))))
กด enter
copy ลงมาด้านล่าง
แต่แบบนี้ค่อนข้างฟุ่มเฟือย เพราะต้องมีคอลัมน์ช่วยตั้ง 3 คอลัมน์ ไว้รอสูตรแบบรัดกุมจากอาจารย์และเพื่อนท่านอื่นดูครับ
Re: แยกค่าซ้ำๆกันออกไปไว้อีกชีต
Posted: Tue Mar 26, 2013 8:33 am
by XDoll
ขอบคุณมากครับ..ตรงตามความต้องการเลยครับ
Re: แยกค่าซ้ำๆกันออกไปไว้อีกชีต
Posted: Tue Mar 26, 2013 9:17 am
by joo

ช่วยเสริมอีกแนวทางหนึ่งครับในซีท select เซลล์ A3 คีย์ =LOOKUP(CHAR(255),CHOOSE({1,2},"",INDEX(All!A$3:A$12,SMALL(IF(MATCH(All!A$3:A$12,All!A$3:A$12,0)=ROW(All!A$3:A$12)-ROW(All!A$3)+1,ROW(All!A$3:A$12)-ROW(All!A$3)+1),ROWS(A$3:A3))))) กดแป้น Ctrl+Shift+Enter พร้อมกัน แล้วคัดลอกไปทางขวาและลงล่าง
ที่ D3 คีย์ =LOOKUP(9.9999999999999E+307,CHOOSE({1,2},"",INDEX(All!D$3:D$12,SMALL(IF(MATCH(All!D$3:D$12,All!D$3:D$12,0)=ROW(All!D$3:D$12)-ROW(All!D$3)+1,ROW(All!D$3:D$12)-ROW(All!D$3)+1),ROWS(D$3:D3))))) กดแป้น Ctrl+Shift+Enter พร้อมกัน แล้วคัดลอกลงด้านล่าง
ลองดูตามไฟล์แนบครับ
Re: แยกค่าซ้ำๆกันออกไปไว้อีกชีต
Posted: Tue Mar 26, 2013 9:08 pm
by tupthai
สร้าง dynamic name rangeชื่อ List
=OFFSET(All!$A$3,0,0,COUNTA(All!$A:$A)-1,1)
คอลัมน์ A หาค่า Unique list
ที่ A3 พิมพ์สูตร
=IF(ISNA(INDEX(List, MATCH(0, COUNTIF($A$2:A2, List), 0))), "", INDEX(List, MATCH(0, COUNTIF($A$2:A2, List), 0)))
เป็นสูตร Array พิมพ์สูตรเสร็จกด Ctrl+Shift+Enter
copy ลงด้านล่าง
อ้างอิงจาก
http://www.get-digital-help.com/2009/03 ... ne-column/
ที่ B3 พิมพ์สูตร
=INDEX(All!$A$3:$E$12,MATCH($A3&INDEX({"-";"TC";"TH";"TM";"TO"},MATCH(MAX(($A3=All!$A$3:$A$12)*(LOOKUP(All!$E$3:$E$12,{"-";"TC";"TH";"TM";"TO"},{1;5;3;4;2}))),{1;5;3;4;2},0)),All!$A$3:$A$12&All!$E$3:$E$12,0),COLUMN(B1))
เป็นสูตร Array พิมพ์สูตรเสร็จกด Ctrl+Shift+Enter
copyไปทางขวาและลงด้านล่าง
Re: แยกค่าซ้ำๆกันออกไปไว้อีกชีต
Posted: Wed Mar 27, 2013 10:01 pm
by XDoll
ขอบคุณอาจารย์ทุกท่านครับ