Page 1 of 2

การจัดอันดับแบบเช็คคะแนน

Posted: Fri Jun 15, 2012 12:50 pm
by aumps
ขอบคุณมาก ๆ ครับ ได้ความรู้เยอะเลย

แต่หากต้องการแบบนี้ครับ โดยที่ให้แสดงข้อมูลต่อ ๆ กันไป นายเอ,นายบี
แบบต้องดูคะแนนก่อน จึงจะมาเรียงแบบนี้ ต้องทำอย่างไรหรอครับ
ตามเอกสารแนบครับ


=====================================
Note: แยกออกจากกระทู้เดิมเนื่องจากพิจารณาแล้วว่าน่าจะเป็นกระทู้ใหม่
------
คนควน

Re: การดึงข้อมูลให้แสดงค่าที่มีทั้งหมด โดยที่ค่าซ้ำกัน

Posted: Fri Jun 15, 2012 1:56 pm
by bank9597
:lol: ยังไม่ถูกต้องครับ ขอแก้ใหม่

Re: การดึงข้อมูลให้แสดงค่าที่มีทั้งหมด โดยที่ค่าซ้ำกัน

Posted: Fri Jun 15, 2012 9:13 pm
by snasui
:D ลองตามไฟล์แนบครับ
  1. ที่ H17 คีย์สูตรเพื่อหาค่าคะแนนโดยคำนีงถึงการทายทุกเงื่อนไข
    =(B17&C17&D17&E17)+0
    Enter > Copy ลงด้านล่าง
  2. ที่ I17 คีย์สูตรเพื่อให้ลำดับ
    Ctrl+Shift+Enter > Copy ลงด้านล่าง
  3. ที่ J2 คีย์สูตรเพื่อ List รายชื่อของผู้ที่ได้ลำดับเดียวกัน
    =LOOKUP(CHAR(255),CHOOSE({1,2},"",INDEX($F$17:$F$25,SMALL(IF($I$17:$I$25=$B2,ROW($I$17:$I$25)-ROW($I$17)+1),COLUMNS($J2:J2)))))
    Ctrl+Shift+Enter > Copy ไปทางขวาและลงด้านล่าง
  4. ที่ C2 คีย์สูตรเพื่อ List ผู้เล่น
    =LEFT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(J2&","&K2&","&L2&","&M2&","&N2&","&O2,",,,,,",","),",,,,",","),",,,",","),",,",","),LEN(J2&K2&L2&M2&N2&O2)+COUNTIF(J2:O2,"*?")-1)
    Enter > Copy ลงด้านล่าง
  5. ที่ E2 คีย์สูตรเพื่อ List คะแนนที่ได้
    =INDEX($B$17:$B$25,MATCH($B2,$I$17:$I$25,0))
    Enter > Copy ลงด้านล่าง

Re: การจัดอันดับแบบเช็คคะแนน

Posted: Sun Jun 17, 2012 11:39 am
by aumps
ขอบคุณมาก ๆ ครับสำหรับความรู้
แต่ผมรบกวนถามเพิ่มหน่อยครับ

ที่ h17 ของท่านใช้
=(B17&C17&D17&E17)+0
หากไม่+0 แต่เป็น
=B17&C17&D17&E17
มีข้อเสียอย่างไรหรอครับ

ที่ e2 ของท่านใช้
=INDEX($B$17:$B$25,MATCH($B2,$I$17:$I$25,0))
แต่หากใช้
=LARGE($B$17:$B$25,F2)
มีข้อเสียอย่างไรหรอครับ

Re: การจัดอันดับแบบเช็คคะแนน

Posted: Sun Jun 17, 2012 12:49 pm
by snasui
aumps wrote:ที่ h17 ของท่านใช้
=(B17&C17&D17&E17)+0
หากไม่+0 แต่เป็น
=B17&C17&D17&E17
มีข้อเสียอย่างไรหรอครับ
การที่บวกด้วย 0 เพื่อให้เป็น Number ครับ หากไม่ทำให้เป็น Number ก็จะเป็น Text ไม่สามารถใช้เรียงลำดับมากน้อยเช่นเดียวกับตัวเลขได้
aumps wrote:ที่ e2 ของท่านใช้
=INDEX($B$17:$B$25,MATCH($B2,$I$17:$I$25,0))
แต่หากใช้
=LARGE($B$17:$B$25,F2)
มีข้อเสียอย่างไรหรอครับ
ฟังก์ชั่น Large เป็นการหาค่าที่ใหญ่ที่สุดในลำดับที่กำหนด ส่วน Index+Match เป็นการหาตำแหน่งในช่วงเซลล์ใด ๆ โดยนำค่าที่ได้จากฟังก์ชั่น Match มาแสดง จากความหมายก็แตกต่างกันมากครับ จากไฟล์ที่ผมแนบไป ลองคีย์สูตรที่ D2 เป็น

=LARGE($B$17:$B$25,F2)

Enter > Copy ลงด้านล่าง แล้วเทียบกับค่าที่ได้ในคอลัมน์ E ดูก็จะเห็นความแตกต่างครับ

Re: การจัดอันดับแบบเช็คคะแนน

Posted: Mon Jun 18, 2012 11:07 pm
by aumps
ขอบคุณมาก ๆ ครับสำหรับความรู้ที่สำหรับ ผมว่าสุดยอดครับ
แต่ผมเป็นแค่พวกเข้าใจสูตรพื้นฐานเบื้องต้นเท่านั้น
อยากเข้าใจสูตรด้วยไม่แน่ใจว่าจะรบกวนท่านไปไหมดังนี้ครับ
ผมขอถามเป็นข้อ ๆ ดังนี้

ที่ i17
=MATCH(H17,LARGE(IF(FREQUENCY(MATCH($H$17:$H$25,$H$17:$H$25,0),ROW($H$17:$H$25)-ROW($H$17)+1),$H$17:$H$25),ROW(INDIRECT("1:"&COUNT($H$17:$H$25)))),0)

MATCH = MATCH( ข้อความที่จะค้นหา , ช่วงข้อมูลที่จะค้นหา , รูปแบบการค้นหา )
LARGE = การหาค่าที่ใหญ่ที่สุดในช่วงที่กำหนด =large(ช่วงตาราง,ค่าที่กำหนด)
FREQUENCY = ความถี่เปล่าไม่แน่ใจครับ
MATCH = MATCH( ข้อความที่จะค้นหา , ช่วงข้อมูลที่จะค้นหา , รูปแบบการค้นหา )
ROW = ช่วงข้อมูลในแถวแนวนอน
INDIRECT = ไม่ทราบครับ
COUNT = การนับจำนวน = count(ช่วงที่ต้องการ)

สรุปผมจะเรียงลำดับการทำงานของสูตรนะครับ
1. MATCH ดูข้อมูลในช่องที่ h17
2. LARGE ค่าที่ใหญ่ของช่วงที่กำหนด
3. IF ถ้า FREQUENCY (ไม่ทราบเรื่องของ frequency) ให้ดูข้อ4
4. MATCH ค้นหาข้อมูลช่วง h17:h25
5. ให้นำข้อมูล h17:h25 - h17 แล้ว+1 ตรง+1นี้บวกทำไมหรอครับ
หลังจากนี้เริ่มงงละครับ และไม่แน่ใจขั้นตอนการคิดเป็นแบบนี้เปล่า จริง ๆ อยากไปเรียนกับท่านนะครับ ไม่แน่ใจท่านมีสอนเรื่องพวกนี้เปล่า อิ อิ

Re: การจัดอันดับแบบเช็คคะแนน

Posted: Mon Jun 18, 2012 11:46 pm
by snasui
:D สูตรพวกนี้เป็นสูตร Array ทำความเข้าใจได้ยากกว่าสูตรปกติครับ

เรื่องบวก 1 สามารถอ่านได้จากความเห็นนี้ ซึ่งเป็นการใช้ลักษณะเดียวกันครับ viewtopic.php?p=17983#p17983

สำหรับฟังก์ชั่นทั้งหลายสามารถศึกษาได้จาก Link นี้ครับ http://office.microsoft.com/th-th/excel ... aspx?CTT=1

และสูตรที่ถามมาคือ

=MATCH(H17,LARGE(IF(FREQUENCY(MATCH($H$17:$H$25,$H$17:$H$25,0),ROW($H$17:$H$25)-ROW($H$17)+1),$H$17:$H$25),ROW(INDIRECT("1:"&COUNT($H$17:$H$25)))),0)

มีความหมายว่า ให้หาว่า H17 อยู่ในลำดับเท่าใดของช่วงข้อมูลที่เป็นผลลัพธ์ของ

LARGE(IF(FREQUENCY(MATCH($H$17:$H$25,$H$17:$H$25,0),ROW($H$17:$H$25)-ROW($H$17)+1),$H$17:$H$25),ROW(INDIRECT("1:"&COUNT($H$17:$H$25))))

ซึ่งมีความหมายว่า ให้แสดงค่าที่ใหญ่ที่สุดตามค่าที่เป็นผลลัพธ์ของ ROW(INDIRECT("1:"&COUNT($H$17:$H$25))) จากช่วงข้อมูลที่เป็นผลลัพธ์ของ IF(FREQUENCY(MATCH($H$17:$H$25,$H$17:$H$25,0),ROW($H$17:$H$25)-ROW($H$17)+1),$H$17:$H$25)

จากสูตร IF(FREQUENCY(MATCH($H$17:$H$25,$H$17:$H$25,0),ROW($H$17:$H$25)-ROW($H$17)+1),$H$17:$H$25) หมายความว่า หาก FREQUENCY(MATCH($H$17:$H$25,$H$17:$H$25,0),ROW($H$17:$H$25)-ROW($H$17)+1) ไม่ใช่ 0 ใหแสดงคำตอบเป็นค่าในช่วง $H$17:$H$25 ถ้าเป็น 0 ให้แสดงค่า False

จาก FREQUENCY(MATCH($H$17:$H$25,$H$17:$H$25,0),ROW($H$17:$H$25)-ROW($H$17)+1) หมายถึงเป็นการหาค่าที่เกิดขึ้นใน MATCH($H$17:$H$25,$H$17:$H$25,0) เมื่อเทียบกับค่าใน ROW($H$17:$H$25)-ROW($H$17)+1 ว่ามีจำนวนกี่ครั้ง

จากสูตร MATCH($H$17:$H$25,$H$17:$H$25,0) เป็นการหาลำดับที่พบ $H$17:$H$25 ในช่วงของตัวเองคือ $H$17:$H$25 ว่าอยู่ลำดับที่เท่าใดบ้าง

จากสูตร ROW($H$17:$H$25)-ROW($H$17)+1 เป็นการให้ค่าลำดับจาก 1-9 โดยดูคำอธิบายจาก Link ที่ให้ไปด้านบนครับ

สุดท้าย ปัจจุบันผมไม่รับสอนครับ :mrgreen:

Re: การจัดอันดับแบบเช็คคะแนน

Posted: Sat Jun 21, 2014 1:27 pm
by aumps
รบกวนนิดหนึ่งครับ พอดีเจอปัญหาเพิ่มเติมในส่วนของ
=(C23&D23&E23&F23)+0
สมมติว่าได้คะแนนดังนี้

นาย A (21,2,2,11) ผลลัพท์ 212211
นาย B (31,6,4,5) ผลลัพท์ 31645

จะกลายเป็น นาย A ขึ้นอับดับ1 แต่จริง ๆ แล้ว นาย B ทายถูกมากกว่า ต้องเป็นอันดับ 1
แต่ผมเข้าใจว่าผลลัพท์ตัวเลขมากกว่าเลยแสดงผลแบบนี้
ต้องแก้ไขโดยวิธีการใดครับ ขอบคุณมาก ๆ ครับ

Re: การจัดอันดับแบบเช็คคะแนน

Posted: Sat Jun 21, 2014 2:00 pm
by snasui
:D การจัดลำดับสามารถใช้ Rank มาช่วยได้ครับ ยกตัวอย่างเช่นที่ I17 คีย์

=RANK(B17,$B$17:$B$25)

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

Re: การจัดอันดับแบบเช็คคะแนน

Posted: Sat Jun 21, 2014 2:15 pm
by aumps
แบบนี้ต้องใช้ 2 เงื่อนไขมารวมกันไหมครับถ้าใช้ Rank
เนื่องจาก การจัดอันดับนั้นจะต้องคำนึงถึงการทายถูก 3 2 และ 1 ตามลำดับมาด้วย
ไม่เช่นนั้นลำดับของการใช้ Rank จะซ้ำกัน และข้ามลำดับต่อไป

Re: การจัดอันดับแบบเช็คคะแนน

Posted: Sat Jun 21, 2014 3:39 pm
by snasui
:D เซลล์ M19 คำตอบได้ 8 มีวิธีคิดอย่างไรครับ

การทายถูกครั้งที่เท่าใดก็ตามหากเปลี่ยนมาเป็นเลขคะแนนและรวมกันให้อยู่ในเซลล์เดียวได้จะช่วยให้คำนวณง่ายขึ้นมาก

Re: การจัดอันดับแบบเช็คคะแนน

Posted: Sat Jun 21, 2014 3:50 pm
by aumps
ขออภัยครับ M19 ผมมองคะแนนผิดไปครับ ต้อง 7

Re: การจัดอันดับแบบเช็คคะแนน

Posted: Sat Jun 21, 2014 4:00 pm
by snasui
:D ตัวอย่างสูตร
  1. H17
    =(B17&"."&C17&D17&E17)+0
  2. K17
    =RANK(H17,($H$17:$H$25))
  3. Copy H17:K17 ลงด้านล่าง

Re: การจัดอันดับแบบเช็คคะแนน

Posted: Sat Jun 21, 2014 4:38 pm
by aumps
อ่อใช่เลยครับ นั่งนึกตั้งนาน ใส่เป็น ทศนิยมเลยก็จบ :(
ขอขอบพระคุณมาก ๆ นะครับ :lol:

Re: การจัดอันดับแบบเช็คคะแนน

Posted: Sun Jun 22, 2014 9:46 am
by aumps
รบกวนเพิ่มเติมอีกนิดครับ
หากเราต้องการหาผลต่างของคะแนน โดยคำนึงถึงลำดับด้วย
เช่น
วันที่ 1
นาย A ลำดับที่ 1 ได้คะแนน 50
นาย B ลำดับที่ 2 ได้คะแนน 45
นาย C ลำดับที่ 3 ได้คะแนน 40

วันที่ 2
นาย A ลำดับที่ 1 ได้คะแนน 55
นาย C ลำดับที่ 2 ได้คะแนน 50
นาย B ลำดับที่ 3 ได้คะแนน 47

เนื่องจากบุคคลจะอ้างอิงจากคะแนน จึงจะขึ้นลำดับ เท่ากับว่ามี 2 เงื่อนไขให้ตรวจสอบ ต้องเขียนแบบไหนหรอครับ

Re: การจัดอันดับแบบเช็คคะแนน

Posted: Sun Jun 22, 2014 9:57 am
by snasui
:D อ่านแล้วไม่เข้าใจครับ จากที่โพสต์มา ลำดับกับคะแนนไปด้วยกัน ไม่จำเป็นต้องอ้างหลายเงื่อนไข

Re: การจัดอันดับแบบเช็คคะแนน

Posted: Sun Jun 22, 2014 10:01 am
by aumps
ลำดับเปลี่ยน อ้างอิงจากคะแนนอะครับ ตามที่ทำตัวเข้มไว้
เท่ากับว่า
เงื่อนไขแรกต้องตรวจสอบว่านาย A อยู่ลำดับที่ 1 ไหม ถ้าอยู่
เงื่อนไขสองคะแนนต่างจากเดิมเท่าไร

ถ้าไม่อยู่ลำดับเดิม คะแนนต่างเท่าไร

Re: การจัดอันดับแบบเช็คคะแนน

Posted: Sun Jun 22, 2014 10:02 am
by snasui
:D เปลี่ยนอย่างไร ช่วยทำตัวอย่างให้เห็นเปรียบเทียบกันว่า เดิมเป็นอย่างไร ใหม่เป็นอย่างไร จะได้เข้าใจตรงกันครับ

Re: การจัดอันดับแบบเช็คคะแนน

Posted: Sun Jun 22, 2014 10:07 am
by aumps
ตัวอย่างครับ ตามเอกสารแนบครับ

Re: การจัดอันดับแบบเช็คคะแนน

Posted: Sun Jun 22, 2014 10:10 am
by snasui
:D สิ่งที่ต้องการคือ H33:H35, H40:H42 ใช่หรือไม่ครับ

หากไม่ใช่ช่วยอธิบายมาใหม่ครับ