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

ยังไม่ถูกต้องครับ ขอแก้ใหม่
Re: การดึงข้อมูลให้แสดงค่าที่มีทั้งหมด โดยที่ค่าซ้ำกัน
Posted: Fri Jun 15, 2012 9:13 pm
by snasui

ลองตามไฟล์แนบครับ
- ที่ H17 คีย์สูตรเพื่อหาค่าคะแนนโดยคำนีงถึงการทายทุกเงื่อนไข
=(B17&C17&D17&E17)+0
Enter > Copy ลงด้านล่าง
- ที่ I17 คีย์สูตรเพื่อให้ลำดับ
Ctrl+Shift+Enter > Copy ลงด้านล่าง
- ที่ 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 ไปทางขวาและลงด้านล่าง
- ที่ 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 ลงด้านล่าง
- ที่ 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

สูตรพวกนี้เป็นสูตร 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 ที่ให้ไปด้านบนครับ
สุดท้าย ปัจจุบันผมไม่รับสอนครับ

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

การจัดลำดับสามารถใช้ 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

เซลล์ 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

ตัวอย่างสูตร
- H17
=(B17&"."&C17&D17&E17)+0
- K17
=RANK(H17,($H$17:$H$25))
- Copy H17:K17 ลงด้านล่าง
Re: การจัดอันดับแบบเช็คคะแนน
Posted: Sat Jun 21, 2014 4:38 pm
by aumps
อ่อใช่เลยครับ นั่งนึกตั้งนาน ใส่เป็น ทศนิยมเลยก็จบ
ขอขอบพระคุณมาก ๆ นะครับ

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

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

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

สิ่งที่ต้องการคือ H33:H35, H40:H42 ใช่หรือไม่ครับ
หากไม่ใช่ช่วยอธิบายมาใหม่ครับ