Page 1 of 1

อยากได้สูตรเรียงลำดับค่ามากสุดใว้เป็นอันดับแรก

Posted: Mon Apr 17, 2017 11:17 pm
by kubota
สิ่งที่อยากได้คือ....ทุกครั้งที่เราพิมพ์ข้อมูล ตรงคอลัม A-B โดยที่คอลัมE-Fแสดงตามคอลัม A-B แต่เรียงลำดับค่ามากสุดใว้เป็นอันดับแรก...
ตามไฟล์ที่แนบมาครับ

Re: อยากได้สูตรเรียงลำดับค่ามากสุดใว้เป็นอันดับแรก

Posted: Tue Apr 18, 2017 7:59 am
by puriwutpokin
ที่ E4=IFERROR(INDEX($A$4:$A$7,MATCH(SMALL(IF(ISERR(CODE($A$4:$A$7)),"",CODE($A$4:$A$7)+COUNTIF($A$4:$A$7,"<"&$A$4:$A$7)),ROWS($E$4:E4)),CODE($A$4:$A$7)+COUNTIF($A$4:$A$7,"<"&$A$4:$A$7),0)),"") กด Shift+Ctrl+Enter คัดลอกลงครับ
ที่ F4=IFERROR(VLOOKUP(E4,$A$4:$B$7,2,0),"") คัดลอกลงครับ

Re: อยากได้สูตรเรียงลำดับค่ามากสุดใว้เป็นอันดับแรก

Posted: Tue Apr 18, 2017 8:37 am
by linzhengli
เรียน ท่านสมาชิกที่นับถือ
ขอความอนุเคราะห์หากเป็นระบบ 2003 เขียนสูตรเช่นไร และขอบคุณมา ณ โอกาสนี้

Re: อยากได้สูตรเรียงลำดับค่ามากสุดใว้เป็นอันดับแรก

Posted: Tue Apr 18, 2017 10:04 am
by puriwutpokin
2003 ปรับเป็น ที่ E4=IF(ROWS(E$4:E4)>COUNTA($A$4:$A$7),"",INDEX($A$4:$A$7,MATCH(SMALL(IF(ISERR(CODE($A$4:$A$7)),"",CODE($A$4:$A$7)+COUNTIF($A$4:$A$7,"<"&$A$4:$A$7)),ROWS($E$4:E4)),CODE($A$4:$A$7)+COUNTIF($A$4:$A$7,"<"&$A$4:$A$7),0))) กด Shift+Ctrl+Enter คัดลอกลงครับ
ที่ F4=IF(ISNA(VLOOKUP(E4,$A$4:$B$7,2,0)),"",VLOOKUP(E4,$A$4:$B$7,2,0)) คัดลอกลงครับ

Re: อยากได้สูตรเรียงลำดับค่ามากสุดใว้เป็นอันดับแรก

Posted: Tue Apr 18, 2017 10:56 am
by tahc
error1.jpg
office 2003 ปรับแก้แล้ว คอลัมน์ F เรียงไม่ถูกต้อง แก้ไขยังไงครับ

Re: อยากได้สูตรเรียงลำดับค่ามากสุดใว้เป็นอันดับแรก

Posted: Tue Apr 18, 2017 11:07 am
by puriwutpokin
คอลัมน์ F มันตาม ค่าที่มาจากคอลัมน์ A และ B ครับไม่ได้เป็นการเรียงน้อยไปมากครับเป็นการ ดึงค่าตาม ต้นฉบับเดิม
ดูจาก คอลัมน์ A รายการ ขนม จำนวน 100 ที่ คอลัมน์ E ขนม ก็จะต้อง 100 เหมือนกันครับ

Re: อยากได้สูตรเรียงลำดับค่ามากสุดใว้เป็นอันดับแรก

Posted: Tue Apr 18, 2017 1:00 pm
by tahc
หากต้องการเรียงค่าในคอลัมน์ F จากมากไปน้อย ทำไงครับ
error2.jpg

Re: อยากได้สูตรเรียงลำดับค่ามากสุดใว้เป็นอันดับแรก

Posted: Tue Apr 18, 2017 1:57 pm
by puriwutpokin
ถ้าสนในที่ลำดับตัวเลข ไม่ใช่ตัวอักษร ใช้เป็น ที่ E4=IFERROR(INDEX(A$4:A$7,MATCH(LARGE($B$4:$B$7,ROWS(F$4:F4)),$B$4:$B$7,0)),"") คัดลอกไปทาง ขวาและลงล่างครับ
ส่วน 2003 ใช้เป็น ที่ E4=IF(ROWS(F$4:F4)>COUNTA($B$4:$B$7),"",INDEX(A$4:A$7,MATCH(LARGE($B$4:$B$7,ROWS(F$4:F4)),$B$4:$B$7,0))) คัดลอกไปทาง ขวาและลงล่างครับ

Re: อยากได้สูตรเรียงลำดับค่ามากสุดใว้เป็นอันดับแรก

Posted: Tue Apr 18, 2017 3:39 pm
by kubota
ทำแล้ว..แต่ ออเรอ ครับ ตามไฟล์แนบครับ..
E4=IFERROR(INDEX(A$4:A$7,MATCH(LARGE($B$4:$B$7,ROWS(F$4:F4)),$B$4:$B$7,0)),"") คัดลอกไปทาง ขวาและลงล่างครับ

Re: อยากได้สูตรเรียงลำดับค่ามากสุดใว้เป็นอันดับแรก

Posted: Tue Apr 18, 2017 4:54 pm
by menem
ถ้าเป็นแบบนี้ ผมชอบที่จะสร้างชุดข้อมูลปลอมขึ้นมาอีกชุด
เพื่อให้ค่าเป็น Unique โดยการพิจารณาจากคุณสมบัติของ
ข้อมูลเป็นสำคัญ ซึ่งในกรณีนี้ ตัวเลขจะเป็นค่าจำนวนเต็มเสมอ
ก็จะเอา เลขบรรทัด / 100000 มาบวกเพิ่ม เพื่อเป็นการแยก
ตัวเลขที่เท่ากัน ให้กลายเป็นตัวเลขที่ไม่เท่ากัน

แล้วค่อยใช้วิธีมองหาค่า ที่มากที่สุดเรียงลำดับกันไปอีกทีครับ

Re: อยากได้สูตรเรียงลำดับค่ามากสุดใว้เป็นอันดับแรก

Posted: Tue Apr 18, 2017 7:53 pm
by snasui
kubota wrote:ทำแล้ว..แต่ ออเรอ ครับ ตามไฟล์แนบครับ..
E4=IFERROR(INDEX(A$4:A$7,MATCH(LARGE($B$4:$B$7,ROWS(F$4:F4)),$B$4:$B$7,0)),"") คัดลอกไปทาง ขวาและลงล่างครับ
:D อีกตัวตัวอย่างสูตรครับ
  1. เซลล์ F4 คีย์สูตรเพื่อเรียงค่ามากไปน้อย
    =LARGE($B$4:$B$34,ROWS(F$4:F4))
    Enter > copy ลงด้านล่าง
  2. เซลล์ E4 คีย์สูตรเพื่อนำรายการมาแสดง
    =IF(N(F4),INDEX($A$4:$A$34,SMALL(IF($B$4:$B$34=F4,ROW($A$4:$A$34)-ROW($A$4)+1),COUNTIF(F$4:F4,F4))),"")
    Ctrl+Shft+Enter > Copy ลงด้านล่าง กรุณาอ่าน Note ด้านล่างอย่างละเอียดไม่เช่นนั้นจะไม่ได้คำตอบครับ

!
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 Apr 19, 2017 10:28 am
by tahc
ได้ผลตามที่ปรารถนาทุกประการแล้ว ขอบคุณมากมายครับอาจารย์

Re: อยากได้สูตรเรียงลำดับค่ามากสุดใว้เป็นอันดับแรก

Posted: Thu Apr 20, 2017 10:15 am
by ronachai29
สวัสดีครับ อาจารย์

ของผม มีกรณีคล้ายๆ กัน แต่ มีรายการที่มีค่าเป็น 0 อยู่ 3 รายการละครับ จะทำยังไงให้ โชว์รายการนั้นๆ

Re: อยากได้สูตรเรียงลำดับค่ามากสุดใว้เป็นอันดับแรก

Posted: Thu Apr 20, 2017 11:27 am
by puriwutpokin
ปรับเป็นที่ B20=IF(B21<>"",INDEX($B$1:$N$1,SMALL(IF($B$15:$N$15=B21,COLUMN($B$1:$N$1)-COLUMN($B$1)+1),COUNTIF($B$21:B21,B21))),"") Ctrl+Shft+Enter

Re: อยากได้สูตรเรียงลำดับค่ามากสุดใว้เป็นอันดับแรก

Posted: Thu Apr 20, 2017 12:19 pm
by ronachai29
ขอบคุณครับ ได้แล้ว