Page 1 of 1
แยกค่าซ้ำมาเรียง
Posted: Fri May 18, 2018 3:20 pm
by Supachok
เรียน ท่านผู้รู้
ต้องการให้แยกค่าซ้ำมาเรียงที่ Cell H15 - H21
อ้างอิง Range B:B
ผลลัพธ์ = G15 - G21
Re: แยกค่าซ้ำมาเรียง
Posted: Fri May 18, 2018 9:52 pm
by koko_excel_tip
Supachok wrote: Fri May 18, 2018 3:20 pm
เรียน ท่านผู้รู้
ต้องการให้แยกค่าซ้ำมาเรียงที่ Cell H15 - H21
อ้างอิง Range B:B
ผลลัพธ์ = G15 - G21
ที่ช่อง H15 - H21 =IF(MATCH(B2:B32,B2:B32,0),B2:B32) แล้วกด Ctrl + Shift + Enter

ตามไฟล์แนบ
Re: แยกค่าซ้ำมาเรียง
Posted: Sat May 19, 2018 7:52 am
by snasui

ตัวอย่างสูตรครับ
เซลล์ H15 คีย์
=IFERROR(INDEX($B$2:$B$32,SMALL(IF(FREQUENCY(IF($B$2:$B$32<>"",MATCH($B$2:$B$32,$B$2:$B$32,0)),ROW($B$2:$B$32)-ROW($B$2)+1),ROW($B$2:$B$32)-ROW($B$2)+1),ROWS(H$15:H15))),"")
Ctrl+Shift+Enter > Copy ลงด้านล่าง
ฟังก์ชั่น ROWS(H$15:H15) ในสูตรด้านบนให้ใช้ตามนี้ ไม่ควรเปลี่ยนเป็นเช่น Row(H1) แม้ในตอนการเขียนสูตรจะให้ผลลัพธ์เท่ากัน แต่หากมีการแทรกบรรทัดที่ 1 ฟังก์ชั่น ROWS(H$15:H15) จะยังให้คำตอบที่ถูกต้องเสมอไป ส่วน Row(H1) จะแสดงผลผิดพลาดครับ
Re: แยกค่าซ้ำมาเรียง
Posted: Sat May 19, 2018 9:17 am
by koko_excel_tip
snasui wrote: Sat May 19, 2018 7:52 am

ตัวอย่างสูตรครับ
เซลล์ H15 คีย์
=IFERROR(INDEX($B$2:$B$32,SMALL(IF(FREQUENCY(IF($B$2:$B$32<>"",MATCH($B$2:$B$32,$B$2:$B$32,0)),ROW($B$2:$B$32)-ROW($B$2)+1),ROW($B$2:$B$32)-ROW($B$2)+1),ROWS(H$15:H15))),"")
Ctrl+Shift+Enter > Copy ลงด้านล่าง
ฟังก์ชั่น ROWS(H$15:H15) ในสูตรด้านบนให้ใช้ตามนี้ ไม่ควรเปลี่ยนเป็นเช่น Row(H1) แม้ในตอนการเขียนสูตรจะให้ผลลัพธ์เท่ากัน แต่หากมีการแทรกบรรทัดที่ 1 ฟังก์ชั่น ROWS(H$15:H15) จะยังให้คำตอบที่ถูกต้องเสมอไป ส่วน Row(H1) จะแสดงผลผิดพลาดครับ
อาจารย์ครับ อยากทราบว่าสูตรที่ผมลงไปมีข้อเสียอะไรมั้ยครับ เห็นได้คำตอบเหมือนกัน
=IF(MATCH(B2:B32,B2:B32,0),B2:B32) แล้วกด Ctrl + Shift + Enter
ขอบคุณมากๆครับ

Re: แยกค่าซ้ำมาเรียง
Posted: Sat May 19, 2018 9:24 am
by snasui

สุตรนั้นไม่ใช่สูตรเพื่อการแสดง Unique List ครับ
ลองเพิ่มช่วงข้อมูลปลายทาง เช่นจากเดิม 5 เซลล์เปลี่ยนเป็น 10 เซลล์ แล้ว Ctrl+Shift+Enter พร้อมกันใหม่แล้วดูว่าคำตอบได้ตรงกับที่ต้องการหรือไม่ครับ
อีกประการ ในการใช้สูตร Array ที่ยืดหยุ่นจะไม่เลือกใช้การคลุมขอบเขตการแสดงผลลัพธ์แล้ว Ctrl+Shift+Enter แต่จะใช้เพียงเซลล์เดียวเท่านั้น กรณีต้องการแสดงผลลัพธ์ของ Array ที่เหลือค่อยคัดลอกไปยังทิศทางที่ต้องการซึ่งทิศทางนั้นจะต้องสอดคล้องกับการคืนค่าของสูตรที่เขียนครับ
การนำค่า Unique มาแสดงด้วยสูตรมีหลายวิธี แต่ที่มีความแม่นยำที่สุดคือสูตรที่ผมตอบอยู่เสมอ ๆ เช่นการใช้ Frequency ตามกระทู้นี้ครับ
Re: แยกค่าซ้ำมาเรียง
Posted: Sat May 19, 2018 9:36 am
by koko_excel_tip
snasui wrote: Sat May 19, 2018 9:24 am

สุตรนั้นไม่ใช่สูตรเพื่อการแสดง Unique List ครับ
ลองเพิ่มช่วงข้อมูลปลายทาง เช่นจากเดิม 5 เซลล์เปลี่ยนเป็น 10 เซลล์ แล้ว Ctrl+Shift+Enter พร้อมกันใหม่แล้วดูว่าคำตอบได้ตรงกับที่ต้องการหรือไม่ครับ
อีกประการ ในการใช้สูตร Array ที่ยืดหยุ่นจะไม่เลือกใช้การคลุมขอบเขตการแสดงผลลัพธ์แล้ว Ctrl+Shift+Enter แต่จะใช้เพียงเซลล์เดียวเท่านั้น กรณีต้องการแสดงผลลัพธ์ของ Array ที่เหลือค่อยคัดลอกไปยังทิศทางที่ต้องการซึ่งทิศทางนั้นจะต้องสอดคล้องกับการคืนค่าของสูตรที่เขียนครับ
การนำค่า Unique มาแสดงด้วยสูตรมีหลายวิธี แต่ที่มีความแม่นยำที่สุดคือสูตรที่ผมตอบอยู่เสมอ ๆ เช่นการใช้ Frequency ตามกระทู้นี้ครับ
ขอบคุณอาจารย์มากครับ
