Page 1 of 1
Rank อันดับข้อมูลจากมากไปน้อย โดยเรียงเฉพาะข้อมูลที่เข้าเงื่อนไข
Posted: Mon Jun 20, 2016 6:55 pm
by amlu
เรียน อาจารย์
รบกวนสอบถาม เกี่ยวกับการเรียงอันดับข้อมูลในช่องสามเกมส์สูงสุดจากมากไปน้อย โดยคะแนนที่จะนำมาเรียงนั้นต้องอยู่ภายใต้เงื่อนไขที่ว่า ช่องเกมส์จะต้องมีค่ามากกว่าเท่ากับ 10 ค่ะ สำหรับผลลัพธ์ที่ต้องการคือได้รายละเอียดของผู้ทำคะแนนสูงสุดจากมากไปน้อย 10 อันดับ และทุกคนที่ติดอันดับต้องมีช่องเกมส์มากกว่าเท่ากับ 10 ขึ้นไปค่ะ และหากมีคะแนนซ้ำกันให้เรียงคะแนนซ้ำดังกล่าวเป็นคนละอันดับ เช่น อันดับ 3 และ 4 คะแนนเท่ากัน เป็นต้นค่ะ
ทั้งนี้ได้พยายามลองเขียนสูตรดูแล้ว ผลที่ได้กลายเป็นสูตรเรียงลำดับเลขที่แถวที่มากที่สุดให้ แทนที่จะเรียงลำดับคะแนนอย่างที่ต้องการค่ะ
จึงต้องขอรบกวนอาจารย์และผู้รู้ในบอร์ดนี้ด้วยค่ะ ขอบคุณมากค่ะ
Re: Rank อันดับข้อมูลจากมากไปน้อย โดยเรียงเฉพาะข้อมูลที่เข้าเงื่อนไข
Posted: Mon Jun 20, 2016 7:11 pm
by snasui

ตัวอย่างสูตรครับ
ที่ชีท F เซลล์ I2 คีย์
=IF(G2<10,"",SUMPRODUCT(--(H2<$H$2:$H$11),--($G$2:$G$11>=10))+COUNTIFS(H$2:H2,H2,G$2:G2,">=10"))
Enter > Copy ลงด้านล่าง > นำค่าในคอลัมน์ I ที่ได้นี้ไปใช้ตามต้องการ
Re: Rank อันดับข้อมูลจากมากไปน้อย โดยเรียงเฉพาะข้อมูลที่เข้าเงื่อนไข
Posted: Mon Jun 20, 2016 7:49 pm
by amlu
เรียน อาจารย์
ได้ลองนำสูตรที่อาจารย์เขียนให้ไปใช้แล้วค่ะ ได้ผลเป็นการเรียงลำดับ โดยยังคงตัวซ้ำตามที่ต้องการ
แต่เนื่องจากจะต้องนำคะแนนซึ่งเรียงลำดับ ไปใช่งานต่อในชีท Top10 ซึ่งต้องการดึงข้อมูล ชื่อ-นามสกุล ทีม ชื่อทีม และคะแนน โดยเรียงลำดับ 10 อันดับผู้ได้คะแนนสูงสุด ทั้งนี้ได้ลองนำสูตร Index ร่วมกับ Large / Small เพื่อดึงข้อมูลกลับมา แต่ไม่สำเร็จ จึงอยากขอคำแนะนำในการดึงข้อมูลและเรียงให้ข้อมูลอยู่ในชีท Top10 ดังกล่าวเพิ่มเติมค่ะ
ขอบคุณค่ะ
Re: Rank อันดับข้อมูลจากมากไปน้อย โดยเรียงเฉพาะข้อมูลที่เข้าเงื่อนไข
Posted: Mon Jun 20, 2016 8:48 pm
by snasui

แนบไฟล์ที่ได้ลองทำตามสูตรนั้นมาแล้ว พร้อมทั้งชี้ให้เห็นว่าผิดพลาดอย่างไร ค่าที่ถูกเป็นอย่างไร คิดอย่างไรจึงได้ค่าเท่านั้น จะได้ช่วยตอบต่อไปได้
การจะนำข้อมูลไปแสดงที่ใดนั้นไม่ใช่ปัญหา จะนำไปแสดงข้ามไฟล์ ข้ามเครื่องก็ย่อมได้ ขอให้ได้คำตอบเบื้องต้นก่อนครับ
Re: Rank อันดับข้อมูลจากมากไปน้อย โดยเรียงเฉพาะข้อมูลที่เข้าเงื่อนไข
Posted: Tue Jun 21, 2016 2:50 pm
by amlu
ค่าที่ถูกคือค่าในชีท Top10 ค่ะ ซึ่งได้ใช้ Index มาดึงข้อมูลจากสูตรที่อาจารย์เขียนให้
แต่เมื่อลองจะนำสูตรที่อาจารย์เขียนให้ มาใส่เข้าไปใน index เพื่อไม่ต้องเพิ่มคอลัมน์ในชีท F แต่สามารถให้ข้อมูลในชีท Top10 ออกมาได้อย่างที่ต้องการ กลับทำแล้วไม่ได้ค่ะ จึงต้องรบกวนอาจารย์ให้ช่วยชี้แนะด้วยค่ะ
ขอบคุณค่ะ
Re: Rank อันดับข้อมูลจากมากไปน้อย โดยเรียงเฉพาะข้อมูลที่เข้าเงื่อนไข
Posted: Tue Jun 21, 2016 3:19 pm
by logic
ลองดูว่าใช่ที่ต้องการไหมครับ
ชีต Top 10
G4 =LARGE(IF(F!$G$2:$G$11>=10,F!$H$2:$H$11),ROWS(G$4:G4))
C4 =INDEX(F!B$2:B$11,SMALL(IF(F!$H$2:$H$11=$G4,ROW(F!$A$2:$A$11)-ROW(F!$A$2)+1),COUNTIF($G$4:$G4,$G4)))
ทั้งสองเซลล์กดแป้นแบบอาร์เรย์ (ctrl+shift+enter) แล้วค่อยคัดลอก G4 ไปยังเซลล์อื่น
Re: Rank อันดับข้อมูลจากมากไปน้อย โดยเรียงเฉพาะข้อมูลที่เข้าเงื่อนไข
Posted: Tue Jun 21, 2016 3:54 pm
by amlu
ใช่ตามที่ต้องการเลยค่ะ
แต่มีคำถามเพิ่มเติมที่ยังสงสัยอยู่นิดหน่อยค่ะ
1. ที่เซลล์ C4 ทำไมถึงต้องเป็น ROW(F!$A$2:$A$11)-ROW(F!$A$2)+1)
2. การใส่ Countif แทนลำดับที่ที่ต้องการให้ฟังก์ชั่น Small ดึงมา เพื่อทำให้ออกทุกค่า รวมไปถึงค่าซ้ำใช่ไหมคะ
ขอบคุณมากนะคะอาจารย์
Re: Rank อันดับข้อมูลจากมากไปน้อย โดยเรียงเฉพาะข้อมูลที่เข้าเงื่อนไข
Posted: Tue Jun 21, 2016 6:34 pm
by snasui
amlu wrote:1. ที่เซลล์ C4 ทำไมถึงต้องเป็น ROW(F!$A$2:$A$11)-ROW(F!$A$2)+1)

ดูคำอธิบายอย่างละเอียดที่ Link นี้ครับ
viewtopic.php?p=17983#p17983
amlu wrote:2. การใส่ Countif แทนลำดับที่ที่ต้องการให้ฟังก์ชั่น Small ดึงมา เพื่อทำให้ออกทุกค่า รวมไปถึงค่าซ้ำใช่ไหมคะ
การใส่ Countif เพื่อให้แสดงรายการค่าที่ซ้ำกันเป็นลำดับไปได้ทุกตัว ไม่ใช่นำเฉพาะตัวที่พบตัวแรกมาแสดง
นั่นคือ พบค่าที่ซ้ำกันตัวแรกคือ Small ตัวที่ 1, พบตัวที่ 2 คือ Small ตัวที่ 2 เช่นนี้ครับ
Re: Rank อันดับข้อมูลจากมากไปน้อย โดยเรียงเฉพาะข้อมูลที่เข้าเงื่อนไข
Posted: Tue Jun 21, 2016 6:36 pm
by amlu
ขอบคุณสำหรับคำอธิบายนะคะ
