นับจำนวนค่าที่ซ้ำกันแล้วนำมาแยกว่ามีใครซ้ำกันบ้างครับ
Posted: Wed Feb 08, 2012 9:27 pm
นับจำนวนค่าที่ซ้ำกันแล้วนำมาแยกว่ามีใครซ้ำกันบ้างครับ ไม่ทราบว่าควรต้องใส่สูตรอย่างไร ตรงไหนบ้างครับ ขอบคุณมากครับ
คลังคำตอบแห่งความรู้จากคนไทย เพื่อโลกที่ต้องการเข้าใจในสิ่งเล็ก ๆ อย่างลึกซึ้ง
https://snasui.com/
สูตรด้านบน ผมได้แนบลิงค์สำหรับการศึกษาเพิ่มเติมไว้แล้ว อนึ่งสูตรดังกล่าวเป็นสูตรที่ยากมาก ผมต้องบอกว่าผมอธิบายในส่วนนี้ไม่ได้ อาจจะผิดพลาดจากความเป็นจริงได้ครับ ต้องให้อาจารย์เป็นผู้อธิบายจะดีที่สุด ซึ่งวิธีการดังกล่าวนั้นเป็นการแยกข้อมูลออกมาตามจำนวนซ้ำ เช่น 1000000 นับได้ 2 ครั้ง เราแยก 1000000 ออกมา 2 ตัว อยู่ในแกนแนวตั้งโดยใช้ TRANSPOSE ทั้งนี้ข้อมูลเดิมที่คุณได้ทำการนับรวมมาให้นั้นจึงเป็นประโยชน์ต่อการใช้สูตรนี้ครับที่ G15 คีย์ =SUM(G2:G15)
ที่ G16 คีย์ =MAX(G1:G14)
ที่ I1 คีย์ =IF(ROWS($I$1:I1)>$G$15,"",INDEX($F$1:$F$14,SMALL(IF(TRANSPOSE(ROW(INDIRECT("1:"&$G$16)))<=$G$1:$G$14,ROW($G$1:$G$14)-ROW($G$1)+1),ROWS($I$1:I1))))
กด Ctrl+Shift+Enter คัดลอกลงมา
สูตรที่ยกมานั้น ผมใช้เรียงอันดับข้อมูลที่ซ้ำกัน เพื่อกำหนดเป็นรหัสเฉพาะของข้อมูลนั้นเพื่อใช้ประโยชน์ในการดึงชื่อผู้ถูกรางวัลออกมา ซึ่งเราจะดึงข้อมูลไม่ได้ หรือได้ยากมาก เนื่องจาก ข้อมูลอ้างอิงเหมือนกัน เช่น 1000000 มีคนถูกรางวัล 2 คน คือ นายก. กับ นายข. ถ้าใช้รหัส 1000000 เป็นตัวอ้างอิง มันก็จะดึงค่ามาได้แค่คนเดียวเท่านั้น เพราะเหตุนี้ เราจึงต้องกำกับรหัสเสริมเข้าไปเพื่อให้เกิดความต่างกันของรหัส 1000000 คือ รหัส 1000000 ลำดับที่ 1 รหัส 1000000 ลำดับที่ 2 เป็นต้น เวลาเราใช้สูตรอ้างอิงเพื่อหาคำตอบเราสามารถอ้างอิง 2 ที่ แม้ว่ารหัสจะเหมือนกัน แต่ลำดับไม่ซ้ำกันอย่างแน่นอนครับที่ H1 คีย์ =IF(I1=I2,COUNTIF($I$1:I1,I1),COUNTIF($I$1:I1,I1)+COUNTIF(I2:I2,I1)) คัดลอกลงมา
สูตรนี้ก็เช่นเดียวกันครับ เมื่อกำหนดรหัสปลายทางแล้ว รหัสต้นทางเราก็ต้องกำหนดให้เหมือนกันด้วย เพื่อจะได้ใช้สูตรอ้างอิงกันและกันได้ โดยใช้สูตร Index+Matchที่ C1 คีย์ =IF(A1=A2,COUNTIF($A$1:A1,A1),COUNTIF($A$1:A1,A1)+COUNTIF(A2:A2,A1)) คัดลอกลงมา
ในการ Match กันระหว่างรหัส และ ลำดับที่ ของข้อมูลต้นทางและปลายทางโดยใช้ Index+Match พิสูจน์สูตรได้ดังนี้ที่ J1 คีย์ =INDEX($B$1:$B$28,MATCH(1,IF($I1=$A$1:$A$28,IF($H1=$C$1:$C$28,1)),0))
กด Ctrl+Shift+Enter คัดลอกลงมา