Page 1 of 1

หาค่าฐานนิยมที่กำหนดตัวบุคคลถ้าไม่มีให้ใช่ค่าเฉลี่ย

Posted: Tue May 30, 2017 10:32 am
by sae2ng
สวัสดีครับ ทุกท่านรบกวนด้วยครับ
1 ข้อมูลในช่อง A เป็นชื่อบุคคลที่ต้องการหาค่าฐานนิยม ถ้าไม่มีให้หาค่าเฉลี่ย
2 ข้อมูลในช่อง B เป็นคะแนนของแต่ละคนที่ต้องหาค่าฐานนิยมและค่าเฉลี่ย
3 ข้อมูลของแต่ละบุคคลจะไปอยู่ในช่อง E 2 E3 E4 E5
4 ในช่อง E คือให้คำนวนเอาค่าฐานนิยม ก่อนแต่ถ้าไม่มีค่าฐานนิยมให้เอา ค่าเฉลี่ยมาใช่แทนครับ

Re: หาค่าฐานนิยมที่กำหนดตัวบุคคลถ้าไม่มีให้ใช่ค่าเฉลี่ย

Posted: Tue May 30, 2017 9:06 pm
by snasui
:D ตัวอย่างสูตรในเซลล์ E2 ครับ

=IF(SUM(IF($A$2:$A$41=D2,IF(COUNTIFS($A$2:$A$41,$A$2:$A$41,$B$2:$B$41,$B$2:$B$41)>1,1)))>1,MODE(LARGE(IF($A$2:$A$41=D2,$B$2:$B$41),ROW(INDIRECT("1:"&COUNTIF($A$2:$A$41,D2))))),AVERAGEIF($A$2:$A$41,D2,$B$2:$B$41))

Ctrl+Shift+Enter > Copy ลงด้านล่าง

!
Note: Ctrl+Shift+Enter เป็นการสร้างสูตร Array โดยสามารถเลือกดำเนินการตามข้อ 1 หรือ 2 ด้านล่าง
  1. กรณีคีย์สูตรเอง เมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น Ctrl และ Shift พร้อมกันค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array
  2. กรณี Copy สูตรไปวางให้กดแป้น F2 เพื่อทำการ Edit Cell นั้นก่อน จากนั้นกดแป้น Ctrl และ Shift พร้อมกันค้างไว้แล้วตามด้วย Enter เพื่อสร้างเป็นสูตร Array
  3. หากกดแป้นถูกต้องสูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น {=YourFormulas(...)} ปีกกานี้ไม่สามารถคีย์เข้าไปเอง จะต้องมาด้วยการกดแป้น Ctrl+Shift+Enter เท่านั้น ถ้ายังไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง
  4. การแก้ไขเปลี่ยนแปลงสูตร Array จะต้องกดแป้นให้รับสูตรด้วย Ctrl+Shift+Enter ทุกครั้ง

Re: หาค่าฐานนิยมที่กำหนดตัวบุคคลถ้าไม่มีให้ใช่ค่าเฉลี่ย

Posted: Wed May 31, 2017 8:59 am
by linzhengli
เรียน ท่านสมาชิก ที่นับถือ
หากเป็นระบบ 2003 ใช้สูตรว่าอย่างไรครับ และขอบคุณมา ณ โอกาสนี้

Re: หาค่าฐานนิยมที่กำหนดตัวบุคคลถ้าไม่มีให้ใช่ค่าเฉลี่ย

Posted: Wed May 31, 2017 8:54 pm
by snasui
linzhengli wrote:เรียน ท่านสมาชิก ที่นับถือ
หากเป็นระบบ 2003 ใช้สูตรว่าอย่างไรครับ และขอบคุณมา ณ โอกาสนี้
:D ตัวอย่างสูตรครับ

=IF(SUM(IF(FREQUENCY(IF($A$2:$A$41=D2,MATCH($B$2:$B$41,$B$2:$B$41,0)),ROW($B$2:$B$41)-ROW($B$2)+1)>1,1))>0,MODE(LARGE(IF($A$2:$A$41=D2,$B$2:$B$41),ROW(INDIRECT("1:"&COUNTIF($A$2:$A$41,D2))))),AVERAGE(IF($A$2:$A$41=D2,$B$2:$B$41)))

Ctrl+Shift+Enter > Copy ลงด้านล่าง

สูตรที่ซ้อนกันเกิน 7 ชั้นจะใช้ไม่ได้ใน Excel 2003 ปัจจุบันผมไม่มีโปรแกรมให้ทดสอบว่าใช้ได้หรือไม่ ควรรีบปรับเปลี่ยนมาใช้ Excel 2010 ขึ้นไปครับ

Re: หาค่าฐานนิยมที่กำหนดตัวบุคคลถ้าไม่มีให้ใช่ค่าเฉลี่ย

Posted: Thu Jun 01, 2017 8:13 am
by linzhengli
ขอบคุณท่านมากครับ

Re: หาค่าฐานนิยมที่กำหนดตัวบุคคลถ้าไม่มีให้ใช่ค่าเฉลี่ย

Posted: Mon Jun 05, 2017 9:25 am
by sae2ng
ขอบคุณมากครับ