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
:D ตัวอย่างสูตรครับ

ที่ชีท 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
:D แนบไฟล์ที่ได้ลองทำตามสูตรนั้นมาแล้ว พร้อมทั้งชี้ให้เห็นว่าผิดพลาดอย่างไร ค่าที่ถูกเป็นอย่างไร คิดอย่างไรจึงได้ค่าเท่านั้น จะได้ช่วยตอบต่อไปได้

การจะนำข้อมูลไปแสดงที่ใดนั้นไม่ใช่ปัญหา จะนำไปแสดงข้ามไฟล์ ข้ามเครื่องก็ย่อมได้ ขอให้ได้คำตอบเบื้องต้นก่อนครับ

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)
:D ดูคำอธิบายอย่างละเอียดที่ 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
ขอบคุณสำหรับคำอธิบายนะคะ :)