Page 1 of 1
ขอคำแนะนำวิธีการตัดเกรดแบบ ระฆังคว้ำครับ
Posted: Tue Nov 26, 2024 5:20 pm
by trirongcop
สวัสดีครับ ขอคำแนะนำวิธีการตัดเกรดแบบ ระฆังคว้ำครับ
เงื่อนไข อ้างอิงคะแนนสอบ Column E
ผลลัทธิ์ที่ให้เป็น เกรด Column F
Score คือ 1-5
% Score ระฆังคว้ำ
1=5%
2=15%
3=60%
4=15%
5=5%
Re: ขอคำแนะนำวิธีการตัดเกรดแบบ ระฆังคว้ำครับ
Posted: Tue Nov 26, 2024 6:33 pm
by norkaz
...
E3
=LOOKUP(D2,$I$2:$M$3)
Copy ลงไป
ถ้าไม่ใช่ ทำตัวอย่างผลลัพธ์ คีย์มือ มาดูครับ
**สนับสนุนฟอรั่ม กรุณาคลิกโฆษณาที่หน้าเพจ**
แมวใหญ่ Bigcat9
RCA พระราม9 กรุงเทพฯ
...
Re: ขอคำแนะนำวิธีการตัดเกรดแบบ ระฆังคว้ำครับ
Posted: Wed Nov 27, 2024 9:51 am
by trirongcop
ตัวอย่างผลลัพธ์ Column D ครับ
Re: ขอคำแนะนำวิธีการตัดเกรดแบบ ระฆังคว้ำครับ
Posted: Wed Nov 27, 2024 11:57 am
by norkaz
...
ผลลัพธ์ที่ได้ ตามคอลัมน์ D มีหลักการคิดอย่างไรครับ
**สนับสนุนฟอรั่ม กรุณาคลิกโฆษณาที่หน้าเพจ**
แมวใหญ่ Bigcat9
RCA พระราม9 กรุงเทพฯ
Re: ขอคำแนะนำวิธีการตัดเกรดแบบ ระฆังคว้ำครับ
Posted: Wed Nov 27, 2024 1:09 pm
by trirongcop
หลักการคิดตือ มีจำนวนนักเรียนทั้งหมด 23 คน ถ้าเอาจำนวนนักเรียนมาหาค่า % ตาม distribution curve จะระบุได้ว่า นักเรียนแต่ละคนจะได้เกรดอะไรบ้าง ตาม % การคำนวณ distribution curve คะแนะนักเรืยนจะเรียงจากมากไปหาน้อย ครับ
จากไฟล์แนบก็จะเห็นว่า
เกรด 1 5% จะมีนักเรียนได้ 1 คน
เกรด 2 15% จะมีนักเรียนได้ 3-4 คน
เกรด 3 60% จะมีนักเรียนได้ 13-14 คน
เกรด 4 15% จะมีนักเรียนได้ 3-4 คน
เกรด 5 5% จะมีนักเรียนได้ 1 คน
Re: ขอคำแนะนำวิธีการตัดเกรดแบบ ระฆังคว้ำครับ
Posted: Wed Nov 27, 2024 2:48 pm
by trirongcop
ผมได้หา ลองปรับเป็น Macro แต่จะปรับ Code ให้เอาจำนวนคะแนะใน Columns A มาคำนวณแบ่ง % แบบไหนได้บ้างครับ
อยากให้ผลเกรดได้เท่า column C
Code: Select all
Sub BellCurveGrading()
Dim ws As Worksheet
Dim scores As Range
Dim sortedScores As Range
Dim totalStudents As Long
Dim i As Long
Dim grade As String
Dim lastGrade As String
Dim currentScore As Double
Dim nextScore As Double
Dim gradeCount As Long
' ¡Ó˹´ Worksheet áÅЪèǧ¤Ðá¹¹
Set ws = ThisWorkbook.Sheets("Data") ' à»ÅÕ蹪×èÍá¼è¹§Ò¹µÒÁµéͧ¡ÒÃ
Set scores = ws.Range("A2:A" & ws.Cells(ws.Rows.Count, "A").End(xlUp).Row)
' ¤Ñ´ÅÍ¡áÅÐàÃÕ§ÅӴѺ¤Ðá¹¹
scores.Sort Key1:=scores, Order1:=xlDescending
totalStudents = scores.Count
' ¡Ó˹´à¡Ã´µÒÁ Bell Curve
gradeCount = 0 ' µÑÇá»ÃÊÓËÃѺ¹Ñº¨Ó¹Ç¹¤Ðá¹¹·Õèã¡Åéà¤Õ§¡Ñ¹
For i = 1 To totalStudents
currentScore = ws.Cells(i + 1, 1).Value
' µÃǨÊͺ¤Ðá¹¹·Õè«éӡѹ
If i < totalStudents Then
nextScore = ws.Cells(i + 2, 1).Value
Else
nextScore = currentScore ' ËÒ¡à»ç¹¤Ðá¹¹ÊØ´·éÒÂ
End If
' ¡Ó˹´à¡Ã´
If i <= totalStudents * 0.05 Then
grade = "5"
ElseIf i <= totalStudents * 0.35 Then
grade = "4"
ElseIf i <= totalStudents * 0.75 Then
grade = "3"
ElseIf i <= totalStudents * 0.9 Then
grade = "2"
Else
grade = "1"
End If
' »Ñ´Å§àÁ×èͤÐá¹¹µèÓÊØ´«éÓ
If nextScore = currentScore And grade = "1" Then
grade = "1"
End If
' »Ñ´¢Öé¹àÁ×èͤÐá¹¹ÊÙ§ÊØ´«éÓ
If nextScore = currentScore And grade = "5" Then
grade = "5"
End If
ws.Cells(i + 1, 2).Value = grade ' ãÊèà¡Ã´ã¹¤ÍÅÑÁ¹ì B
Next i
MsgBox "¡ÒõѴà¡Ã´àÊÃç¨ÊÔé¹", vbInformation
End Sub
Re: ขอคำแนะนำวิธีการตัดเกรดแบบ ระฆังคว้ำครับ
Posted: Wed Nov 27, 2024 9:18 pm
by norkaz
trirongcop wrote: Wed Nov 27, 2024 1:09 pm
หลักการคิดตือ มีจำนวนนักเรียนทั้งหมด 23 คน ถ้าเอาจำนวนนักเรียนมาหาค่า % ตาม distribution curve จะระบุได้ว่า นักเรียนแต่ละคนจะได้เกรดอะไรบ้าง ตาม % การคำนวณ distribution curve คะแนะนักเรืยนจะเรียงจากมากไปหาน้อย ครับ
จากไฟล์แนบก็จะเห็นว่า
เกรด 1 5% จะมีนักเรียนได้ 1 คน
เกรด 2 15% จะมีนักเรียนได้ 3-4 คน
เกรด 3 60% จะมีนักเรียนได้ 13-14 คน
เกรด 4 15% จะมีนักเรียนได้ 3-4 คน
เกรด 5 5% จะมีนักเรียนได้ 1 คน
จัดเรียงข้อมูลใหม่ ตามนั้น
D2
=INDEX($I$2:$M$2,MATCH(TRUE,INDEX(ROWS(D$2:D2)<=$I$5:$M$5,0),0))
Copy ลงไป
** สนับสนุนฟอรั่ม กรุณาคลิกโฆษณาที่หน้าเพจ***
แมวใหญ่ Bigat9
RCA พระราม9 กรุงเทพฯ
....
Re: ขอคำแนะนำวิธีการตัดเกรดแบบ ระฆังคว้ำครับ
Posted: Thu Nov 28, 2024 9:10 am
by trirongcop
ขอบคุณมากครับ