:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

การจัดลำดับที่การสอบ

ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
ฟงว่อง
Member
Member
Posts: 106
Joined: Fri Mar 13, 2015 8:02 am

การจัดลำดับที่การสอบ

#1

Post by ฟงว่อง »

ขอความอนุเคราะห์ผูกสูตรการจัดลำดับที่การสอบ
You do not have the required permissions to view the files attached to this post.
User avatar
DhitiBank
Gold
Gold
Posts: 1676
Joined: Mon Oct 15, 2012 12:07 am

Re: การจัดลำดับที่การสอบ

#2

Post by DhitiBank »

ทดลองแบบนี้ครับ ผมจะใช้คอลัมน์ L มาช่วย
ที่ L12 คีย์
=--(I12&"."&TEXT(H12,"000")&TEXT(G12,"000")&TEXT(F12,"000")&TEXT(LARGE(ROW(INDIRECT("12:"&LOOKUP(9.9999999E+307,A:A,ROW(A:A)))),ROWS($L$12:L12)),"000"))
กด Ctrl+Shift ค้างไว้ แล้วกด Enter

ที่ J12 คีย์
=IF(ISERR(
RANK(L13,
IF(($F$12:$F$20>F$11)*($G$12:$G$20>G$11)*($H$12:$H$20>H$11),$L$12:$L$20,0))-1),0,
RANK(L13,
IF(($F$12:$F$20>F$11)*($G$12:$G$20>G$11)*($H$12:$H$20>H$11),$L$12:$L$20,0))-1)
Enter เฉยๆ ครับ

แล้วคัดลอกสูตรลงด้านล่างครับ
ข้อแม้คือ ผู้สมัครสอบคนแรกต้องอยู่บรรทัดที่ 12 นะครับ หากเริ่มจากบรรทัดอื่นก็ต้องปรับสูตรใหม่

(คิดซะเพลีย :shock: แต่มันดีครับ :twisted: )
ฟงว่อง
Member
Member
Posts: 106
Joined: Fri Mar 13, 2015 8:02 am

Re: การจัดลำดับที่การสอบ

#3

Post by ฟงว่อง »

ผมลองทำแล้วเป็นดังไฟล์นบไม่ประมวลผล
2. หากเลื่อนบรรทัดหมายความว่าต้องเปลี่ยน 12 ทุกตัวให้เป็นเลขที่บรรทัดใช่หรือไม่
3. มีวิธีเลี่ยง ctr+shift +enter หรือไม่ ผมลองกี่ครั้งก็ไม่เป็นผล ต้องปรับเครื่องมือในเโปรแกรมหรือไม่ และสูตรล่างใช้กับรุ่น 2003 ได้หรือไม่
ช่อง l12 ปรากฎเพียง 412.0991711 และช่องล่างลงมาขึ้นเป็น #NUM! ส่วนช่องJ12 เป็นสูตรที่ท่านเขียนให้
User avatar
DhitiBank
Gold
Gold
Posts: 1676
Joined: Mon Oct 15, 2012 12:07 am

Re: การจัดลำดับที่การสอบ

#4

Post by DhitiBank »

ไม่พบไฟล์แนบครับ
คำสั่งใช้กับรุ่น 2003 ได้ครับ
User avatar
DhitiBank
Gold
Gold
Posts: 1676
Joined: Mon Oct 15, 2012 12:07 am

Re: การจัดลำดับที่การสอบ

#5

Post by DhitiBank »

ก่อนอื่นขออธิบายเรื่องการกด 3 ปุ่มใหม่นะครับ
สำหรับสูตร
=--(I12&"."&TEXT(H12,"000")&TEXT(G12,"000")&TEXT(F12,"000")&TEXT(LARGE(ROW(INDIRECT("12:"&LOOKUP(9.9999999E+307,A:A,ROW(A:A)))),ROWS($L$12:L12)),"000"))
ต้องกด 3 ปุ่มเพราะต้องคำนวณแบบอาร์เรย์ วิธีการกดคือ
กดปุ่ม Ctrl กับปุ่ม Shift ค้างไว้ (อย่าเพิ่งปล่อยนะครับ จะกดปุ่มไหนก่อนหลังก็ได้ แต่ต้องกดค้างไว้ด้วยกัน) ขณะที่กดค้างอยู่นั้น ก็เคาะ Enter ไปเลย
หากกดถูกต้องจะเห็นเครื่องหมาย { } คร่อมสูตรอยู่ (อย่าคีย์เข้าไปเองนะครับ เพราะผิดกฎ)
แล้วก็... หากผู้สมัครคนแรกไม่ได้เริ่มจากแถวที่ 12 ก็ให้เปลี่ยนตัวเลขตรงที่ระบายสีน้ำเงินไว้ครับ


และสำหรับสูตร
=IF(ISERR(
RANK(L12,
IF(($F$12:$F$20>F$11)*($G$12:$G$20>G$11)*($H$12:$H$20>H$11),$L$12:$L$20,0))-1),0,
RANK(L12,
IF(($F$12:$F$20>F$11)*($G$12:$G$20>G$11)*($H$12:$H$20>H$11),$L$12:$L$20,0))-1)
ก็ปรับตรงตัวหนาๆ หากข้อมูลจริงมีมากกว่าตัวอย่างที่ให้มาครับ

**ขออภัย ผมพิมพ์เลขผิดไปหน่อย ตรง Rank(L13 คีย์ที่เซลล์ J12 ต้องเป็น Rank(L12 ขออภัยครับ
You do not have the required permissions to view the files attached to this post.
Last edited by DhitiBank on Sat Apr 18, 2015 8:18 pm, edited 1 time in total.
ฟงว่อง
Member
Member
Posts: 106
Joined: Fri Mar 13, 2015 8:02 am

Re: การจัดลำดับที่การสอบ

#6

Post by ฟงว่อง »

ขอบพระคุณในความอนุเคราะห์ของท่านเป็นอย่างยิ่งครับ
User avatar
DhitiBank
Gold
Gold
Posts: 1676
Joined: Mon Oct 15, 2012 12:07 am

Re: การจัดลำดับที่การสอบ

#7

Post by DhitiBank »

ขอปรับสูตรเล็กน้อยครับ
ตรงสูตรสองที่เป็นเครื่องหมาย >
ให้เปลี่ยนเป็น >=
(เปลี่ยนจาก "มากกว่า" เฉยๆ เป็น "มากกว่าหรือเท่ากับ")
User avatar
DhitiBank
Gold
Gold
Posts: 1676
Joined: Mon Oct 15, 2012 12:07 am

Re: การจัดลำดับที่การสอบ

#8

Post by DhitiBank »

ขอปรับสูตรที่เซลล์ J12 ครับ แก้เป็น
=IF(ISNA(MATCH(L12,LARGE(IF(($F$12:$F$22>=F$11)*($G$12:$G$22>=G$11)*($H$12:$H$22>=H$11),$L$12:$L$22),ROW(INDIRECT("1:"&COUNT(L:L)))),0)),0,
MATCH(L12,LARGE(IF(($F$12:$F$22>=F$11)*($G$12:$G$22>=G$11)*($H$12:$H$22>=H$11),$L$12:$L$22),ROW(INDIRECT("1:"&COUNT(L:L)))),0))
Ctrl+Shift+Enter

เพราะดูเหมือนสูตร Rank จะเอาค่าที่แม้ไม่มีใน array (คือคะแนนที่ถือว่าตก) ไปจัดอันดับด้วย ทำให้อันดับของบางคนผิดพลาดครับ เช่น สมมติมีข้อมูลหลัก 3 ค่า คือ
1, 2, 3
แล้วต้องการเอา 2.9 และ 2 ไปจัดอันดับ
=Rank(3.9,{1,2,3}) = #N/A
ผลที่ได้จะผิดพลาดครับ แต่พอคัดลอกสูตรลงเพื่อจัดอันดับเลข 2
=Rank(2,{1,2,3}) = 2
เหมือนกับว่าสูตรเอา 2.9 จำไว้แล้วว่าต้องเป็นที่ 1 พอมาเจอ 2 จึงจัดให้เป็นที่สองทั้งๆที่ 2.9 ส่งผลเป็นค่าผิดพลาด งงนะเนี่ย เพิ่งเคยรู้

ต้องขออภัยด้วยครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31258
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: การจัดลำดับที่การสอบ

#9

Post by snasui »

DhitiBank wrote:=Rank(2,{1,2,3}) = 2
เหมือนกับว่าสูตรเอา 3.9 จำไว้แล้วว่าต้องเป็นที่ 1 พอมาเจอ 2 จึงจัดให้เป็นที่สองทั้งๆที่ 3.9 ส่งผลเป็นค่าผิดพลาด งงนะเนี่ย เพิ่งเคยรู้
:D ผมอ่านจากทีเขียนมา ไม่ได้ทดสอบสูตรในโพสต์ก่อนหน้าครับ

จากไวยากรณ์ของ Rank

=Rank(number,ref,[order])

ตามด้านบนตัวเลข 3.9 ไม่ถูกนำมาเกียวข้องแล้วครับ สูตรจะพิจารณาจาก Ref {1,2,3} เลข 2 เมื่อเรียงแล้วใหญ่เป็นอันดับ 2 ของ Ref ส่วนตัวที่ใหญ่เป็นอันดับ 1 คือ 3 ตัวที่ใหญ่เป็นอันดับ 3 คือ 1

!
Note: Ref ที่คีย์มาเป็นค่าคงที่ Array เพื่อความเข้าใจเท่านั้น เราไม่สามารถคีย์ค่าคงที่ Array เพื่อใช้กับ Rank ได้ครับ
User avatar
DhitiBank
Gold
Gold
Posts: 1676
Joined: Mon Oct 15, 2012 12:07 am

Re: การจัดลำดับที่การสอบ

#10

Post by DhitiBank »

ขอบพระคุณครับอาจารย์ และขออภัยที่ด้านบนผมพิมพ์ผิดเป็น 3.9 ผมนึกไว้ว่า 2.9 แต่ดันคีย์อีกแบบหนึ่ง

เอาใหม่เลยครับ ตามไฟล์แนบ
ผมมี 3 คอลัมน์คือ
A=> เงื่อนไข
B=> เลขที่จะจัดอันดับ
C=> ผลการจัด
แต่เงื่อนไขการจัดในคอลัมน์ C คือจะเอาเลขใน B ที่มีเงื่อนไขในคอลัมน์ A เท่ากับ 1 มาจัดผมคีย์สูตรใน C2 เป็น
=rank(b2,if($a$2:$a$5,$b$2:$b$5))

จากตัวอย่าง เลข 3 ไม่เอามาจัดอันดับเพราะเงื่อนไขไม่ผ่าน แต่พอตอนจัดอันดับ มันเหมือนกับ RANK เก็บอันดับที่ 2 ซึ่งเลข 3 ควรจะได้เอาไว้ ทั้งๆที่เลข 3 ถูกตัดออกจากอาร์เรย์ที่จะเอามาจัดอันดับแล้ว เลยงงครับ ก็เลยเปลี่ยนสูตรใหม่ตามด้านบนนู้นครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31258
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: การจัดลำดับที่การสอบ

#11

Post by snasui »

:D ฟังก์ชั่น Rank ไม่สามารถมีสวนประกอบเป็น Array ได้ครับ

จากตัวอย่างที่ให้มานั้น สูตร If ต้องทำเป็น Array โดยกดแป้น Ctrl+Shift+Enter ไม่เช่นนั้นไม่สามารถแสดงเป็น Array ได้ เมื่อเป็น Array ได้ก็จะเกิดค่าผิดพลาดเนื่องด้วยถูกบังคับให้ใช้เป็น Ref คืออ้างอิงช่วงเซลล์มาใช้เท่านั้น ไม่สามารถใช้ Array ได้

สามารถปรับสูตรอื่นมาใช้สำหรับการจัดลำดับ เช่นด้านล่างครับ

เซลล์ C2 คีย์สูตร

=IF(A2,SUMPRODUCT($A$2:$A$5,--($B$2:$B$5>B2))+1,0)

Enter > Copy ลงด้านล่าง
User avatar
DhitiBank
Gold
Gold
Posts: 1676
Joined: Mon Oct 15, 2012 12:07 am

Re: การจัดลำดับที่การสอบ

#12

Post by DhitiBank »

อ๋อ แบบนี้นี่เอง ขอบคุณอาจารย์มากครับ ขอทำความเข้าใจสูตรก่อน จดๆๆๆ :)
User avatar
DhitiBank
Gold
Gold
Posts: 1676
Joined: Mon Oct 15, 2012 12:07 am

Re: การจัดลำดับที่การสอบ

#13

Post by DhitiBank »

ตรง IF พอดีทำจากมือถือ เลยกดแบบอาร์เรย์ไม่ได้ ครับ อาจารย์พอมีแอปที่ใส่สูตรแบบอาร์เรย์ได้ไหมครับ ระบบแอนดรอยด์?
User avatar
snasui
Site Admin
Site Admin
Posts: 31258
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: การจัดลำดับที่การสอบ

#14

Post by snasui »

:lol: ผมไม่ค่อยได้เล่น App ต่าง ๆ เลยไม่แน่ใจว่ามีผู้ทำออกมาใช้บ้างหรือไม่ครับ
menem
Silver
Silver
Posts: 549
Joined: Mon Jan 26, 2015 11:02 am

Re: การจัดลำดับที่การสอบ

#15

Post by menem »

ลองดูนะครับ สูตรที่ผมใช้ ไม่มีการใช้ Array
You do not have the required permissions to view the files attached to this post.
User avatar
DhitiBank
Gold
Gold
Posts: 1676
Joined: Mon Oct 15, 2012 12:07 am

Re: การจัดลำดับที่การสอบ

#16

Post by DhitiBank »

menem wrote:ลองดูนะครับ สูตรที่ผมใช้ ไม่มีการใช้ Array
:thup: ได้แนวคิดใหม่ๆ ขอบคุณครับ
ฟงว่อง
Member
Member
Posts: 106
Joined: Fri Mar 13, 2015 8:02 am

Re: การจัดลำดับที่การสอบ

#17

Post by ฟงว่อง »

ขอบพระคุณท่านเป็นอย่างยิ่งเช่นกัน
Post Reply