Page 1 of 1

ต้องการแสดงรายชื่อตามลำดับที่

Posted: Mon Jul 11, 2011 12:26 pm
by sc201105
เรียนอาจารย์ครับ
ผมมีเรื่องรบกวนให้ช่วยครับ เนื่องจากผมมีรายชื่อที่ได้อันดับที่ที่ซ้ำกันอยู่หลายๆ คน ประมาณ 5000 กว่าชื่อ แต่ผมตัดและทำเป็นตัวอย่างมาเพียงเล็กน้อย ผมต้องการให้แสดงข้อมูลดังนี้ครับ
1. column แสดงอันดับที่ เรียงจากอันดับที่ 1 ถึงอันดับที่ 5000
2. column แสดงรายชื่อคนที่ได้อันดับเท่ากัน เป็นชื่อของคนที่ได้แล้วมีเครื่องหมาย comma ขั้น แล้วจึงต่อด้วยรายชื่อของคนถัดไปในอันดับเดียวกัน
ผมได้แนบ file ตัวอย่างมาประกอบรบกวนอาจารย์ช่วยหน่อยครับว่าทำอย่างไร

ขอบพระคุณมากครับ

Re: ต้องการแสดงรายชื่อตามลำดับที่

Posted: Mon Jul 11, 2011 6:01 pm
by snasui
:D ในคอลัมน์ C สามารถหาได้หลายวิธีครับ ดูตัวอย่างที่นี่ http://snasui.blogspot.com/2010/05/blog-post.html

ส่วนคอลัมน์ D ไม่สามารถทำได้ด้วยสูตรที่มีให้แต่สามารถพึ่งพา Add-ins Morefunc ได้ ดาวน์โหลดได้ที่ http://www.snasui.com/viewtopic.php?f=3&t=9 เมื่อติดตั้งเรียบร้อยแล้วที่ D6 คีย์

=MCONCAT(OFFSET($B$2,MATCH(C6,$A$2:$A$56,0)-1,0,COUNTIF($A$2:$A$56,C6)),", ")

Enter > Copy ลงด้านล่าง

หากไม่ติดตั้ง Add-ins ก็ต้องเขียนฟังก์ชั่นขึ้นมาใช้เอง ดูตัวอย่างตามไฟล์แนบ ซึ่งผมเขียนฟังก์ชั่น MCONC มาให้ด้วย Code ด้านล่าง

Code: Select all

Function MCONC$(Range As Range)
Dim r As Range
Dim i As Integer
Dim a() As Variant
For Each r In Range
    i = i + 1
    ReDim Preserve a(i - 1)
    a(i - 1) = r
Next r
MCONC = Join(a, ", ")
End Function
จากนั้นที่ E6 เขียนสูตร

=MCONC(OFFSET($B$2,MATCH(C6,$A$2:$A$56,0)-1,0,COUNTIF($A$2:$A$56,C6)))

Enter > Copy ลงด้านล่าง

Re: ต้องการแสดงรายชื่อตามลำดับที่

Posted: Mon Jul 11, 2011 9:51 pm
by sc201105
ขอบพระคุณอาจารย์มากครับ ผมขอไปทดลองคาดว่าน่าจะใช้ได้ หากติดขัดประการใดจะเรียนรบกวนสอบถามอีกครั้ง

ขอบพระคุณครับผม