Page 1 of 1

หาค่าคะแนนซ้ำแบบก้าวหน้าครับ

Posted: Sun Feb 21, 2010 7:04 am
by teaman
สวัสดีครับ ผมสมาชิกใหม่ครับมีเรื่องจะปรึกษานะครับคือกำลังทำคะแนนอยู่แต่ไม่รูจะจบยังไง
a b c e f g h i j(ต้องการ)
1 1 2 2 2 3 3 3 3
1 1 1 2 2 2 3 3 2
1 1 1 2 2 3 3 3 3
1 1 1 1 2 2 2 3 1
คือต้องการคล้ายๆกับการmode นะครับแต่ถ้า mode ในแถวที่ 1,2 แทนที่จะได้ 3และ 2ตามลำดับกลายเป็น 2,1แทน
ไม่ทราบพอจะมีสูตรใดช่วยได้บ้างครับ

Re: หาค่าคะแนนซ้ำแบบก้าวหน้าครับ

Posted: Sun Feb 21, 2010 8:23 am
by snasui
:) สวัสดีครับ การหาค่า Mode แบบนี้ให้เรียงจากมากไปหาน้อยก่อนครับ การเรียงจะใช้ฟังก์ชั่นเช่น Large เข้ามาเรียงและทำเป็น Array นั่นคือต้องกดแป้นให้รับสูตรด้วย Ctrl+Shift+Enter จะกดแป้น Enter อย่างเดียวไม่ได้ครับ หากกดแป้นถูกต้องจะเห็นเครื่องหมายปีกกาคร่อมสูตร

ปกติการจับภาพ Excel จะจับให้เห็นหัวคอลัมน์กับหัวบรรทัดมาด้วยครับ เพื่อว่าผู้ตอบจะได้อ้างอิงได้ง่าย

ผมสมมุติใหม่ว่าข้อมูลตัวอย่างที่แนบมาเริ่มที่ A1 ที่ J1 คีย์

Code: Select all

=MODE(LARGE(A1:H1,ROW(INDIRECT("1:"&COUNT(A1:H1)))))
Ctrl+Shift+Enter > Copy ลงด้านล่าง

สูตร ROW(INDIRECT("1:"&COUNT(A1:H1))) จะเป็นการบอกให้โปรแกรมแจกแจงค่าออกมาให้เริ่มจาก 1 และสิ้นสุดด้วยจำนวนที่นับได้จาก Count(A1:H1) ซึ่งจะได้เป็น =Mode(Large(A1:H1,{1,2,3,4,5,6,7,8}))

ฟังก์ชั่่น Large เป็นการจัดเรียงตัวเลขจากมากไปหาน้อย จากกรณีนี้จะจัดเรียงลำดับที่มากที่สุดเป็นลำดับที่ 1, 2, 3,...8 ตามลำดับ

หากเรารู้ว่ามีตัวเลขที่้ต้องการหาค่า Mode กี่ตัว เราก็สามารถที่จะคีย์ตัวเลขเข้าไปเองเป็น {1,2,3,4,5,6,7,8} โดยไม่ต้องใช้ฟังก์ชั่น Row(Indirect("1:"&Count(A1:H1))) การคีย์ตัวเลขเข้าไปเองในเครื่องหมายปีกกา จะเป็นค่าคงที่ Array ให้เรียบร้อยแล้ว การกดให้รับสูตรไม่ต้องกดแป้น Ctrl+Shift+Enter แต่อย่างใดครับ :mrgreen:

Re: หาค่าคะแนนซ้ำแบบก้าวหน้าครับ

Posted: Sun Feb 21, 2010 9:52 pm
by teaman
ขอขอบคุณสำหรับคำตอบครับ แต่ลองดูแล้วมันขึ้น #REF!
ทั้งๆที่มันขึ้นใน cell ว่า {=MODE(LARGE(AV4:BC4,ROW(INDIRECT("0:"&COUNT(AV4:BC4)))))} ค่านี้คือใช้งานจริงในงานครับ
รบกวนอีกครั้งครับ

Re: หาค่าคะแนนซ้ำแบบก้าวหน้าครับ

Posted: Sun Feb 21, 2010 10:01 pm
by teaman
อ๋อเจอแล้วครับตอนที่ท่านให้มาใช้เริ่มจาก 1 แต่ของผมใช้เริ่มจาก 0 มันเลยไม่ขึ้นและถ้า กรณีมีตัวเลขตัวเดียว(เป็น 0 จำนวน 7ตัว และมีตัวเลข 1 ตัว) มันขึ้น #N/A แต่เดี๋ยวจะลองอีกรอบ

Re: หาค่าคะแนนซ้ำแบบก้าวหน้าครับ

Posted: Mon Feb 22, 2010 8:16 am
by snasui
teaman wrote:ขอขอบคุณสำหรับคำตอบครับ แต่ลองดูแล้วมันขึ้น #REF!
ทั้งๆที่มันขึ้นใน cell ว่า {=MODE(LARGE(AV4:BC4,ROW(INDIRECT("0:"&COUNT(AV4:BC4)))))} ค่านี้คือใช้งานจริงในงานครับ
รบกวนอีกครั้งครับ
teaman wrote:อ๋อเจอแล้วครับตอนที่ท่านให้มาใช้เริ่มจาก 1 แต่ของผมใช้เริ่มจาก 0 มันเลยไม่ขึ้นและถ้า กรณีมีตัวเลขตัวเดียว(เป็น 0 จำนวน 7ตัว และมีตัวเลข 1 ตัว) มันขึ้น #N/A แต่เดี๋ยวจะลองอีกรอบ
จะต้องเริ่มจาก 1 เสมอครับ เลขเริ่มต้นและเลขสิ้นสุด ไม่ใช่เลขชุดเดียวกับ AV4:BC4 :D
สำหรับสูตร ROW(INDIRECT("1:"&COUNT(AV4:BC4))) ใช้เพื่อประโยชน์ในการแสดงลำดับการเรียงเท่านั้น ว่า ให้เรียงลำกับที่มากที่สุดเป็นอันดับ 1, 2, 3.... :mrgreen:
ส่วนค่าใน AV4:BC4 จะเป็นเลขใดก็ได้ทั้งนั้นครับ :P

Re: หาค่าคะแนนซ้ำแบบก้าวหน้าครับ

Posted: Mon Feb 22, 2010 8:54 am
by teaman
ขอบคุณท่าน snasui มากครับที่กรุณาตอนนี้กระจ่างไปหลายอย่าง(รวมงานอื่นๆที่ค้างอยู่ด้วย)