Page 1 of 1
อยากสั่งเรียงข้อมูลแบบอัตโนมัตไว้ล่วงหน้า
Posted: Tue Apr 06, 2010 1:28 pm
by somkem
คือผมมีข้อมูล2ชีต
ชึต 1 คือผลการเรียนหลายวิชา เช่น
ไทย คณิต วิทย์ รวม ลำดับที่ (ใช้ rank)
80 50 70 200 2
50 45 60 145 3
87 54 80 221 1
เมื่อป้อนเสร็จ
ต้องการให้ ชีต 2 จัดเรียงอัตโนมัติไว้ล่วงหน้าไม่ต้องใช้จัดเรียงทีหลัง
ไทย คณิต วิทย์ รวม ลำดับที่
87 54 80 221 1
80 50 70 200 2
50 45 60 145 3
Re: อยากสั่งเรียงข้อมูลแบบอัตโนมัตไว้ล่วงหน้า
Posted: Tue Apr 06, 2010 1:53 pm
by snasui
ดูตามไฟล์แนบครับ
ที่ Sheet2
1. เซลล์ F1 หาค่าลำดับที่มากที่สุดใน Sheet1 คีย์
=MAX(Sheet1!E:E)
Enter
2. ที่ A2 เพื่อเรียงลำดับใหม่คีย์
=IF(ROWS(A$2:A2)>$F$1,"",INDEX(Sheet1!A$2:A$4,MATCH(ROWS(A$2:A2),Sheet1!$E$2:$E$4,0)))
Enter > Copy ไปด้านขวาและลงด้านล่าง
Re: อยากสั่งเรียงข้อมูลแบบอัตโนมัตไว้ล่วงหน้า
Posted: Tue Apr 06, 2010 3:37 pm
by somkem
ติดปัญหาอีกนิดครับ
ถ้าคนที่ได้อันดับเท่ากันจะแก้อย่างไรครับ
ผมส่งไฟล์มาให้ดูครับ
Re: อยากสั่งเรียงข้อมูลแบบอัตโนมัตไว้ล่วงหน้า
Posted: Tue Apr 06, 2010 4:19 pm
by snasui
วิธีหนึ่งคือเพิ่มสูตรเพื่อให้ลำดับใหม่เพื่อไม่ให้ซ้ำ ส่วนอีกวิธีใช้สูตรแบบ Array ซึ่งซับซ้อน ขอแนะนำวิธีแรกเพื่อให้ง่ายต่อการใช้งานครับ ดูไฟล์แนบประกอบ
ครับ
1. Sheet1 เซลล์ Y5 คีย์
=SUMPRODUCT(--(X5>$X$5:$X$41))+COUNTIF($X$5:X5,X5)
Enter > Copy ลงด้านล่าง
2. Sheet2 เซลล์ Y1 คีย์
=MAX(Sheet1!Y:Y)
Enter
3. Sheet2 เซลล์ A5 คีย์
=IF(ROWS(A5:A$5)>$Y$1,"",INDEX(Sheet1!A$5:A$42,MATCH(ROWS(A5:A$5),Sheet1!$Y$5:$Y$42,0)))
Enter > Copy ไปด้านขวาและลงด้านล่าง