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)),"") คัดลอกไปทาง ขวาและลงล่างครับ
อีกตัวตัวอย่างสูตรครับ
- เซลล์ F4 คีย์สูตรเพื่อเรียงค่ามากไปน้อย
=LARGE($B$4:$B$34,ROWS(F$4:F4))
Enter > copy ลงด้านล่าง
- เซลล์ 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 ด้านล่าง
- กรณีคีย์สูตรเอง เมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น Ctrl และ Shift พร้อมกันค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array
- กรณี Copy สูตรไปวางให้กดแป้น F2 เพื่อทำการ Edit Cell นั้นก่อน จากนั้นกดแป้น Ctrl และ Shift พร้อมกันค้างไว้แล้วตามด้วย Enter เพื่อสร้างเป็นสูตร Array
- หากกดแป้นถูกต้องสูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น {=YourFormulas(...)} ปีกกานี้ไม่สามารถคีย์เข้าไปเอง จะต้องมาด้วยการกดแป้น Ctrl+Shift+Enter เท่านั้น ถ้ายังไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง
- การแก้ไขเปลี่ยนแปลงสูตร 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
ขอบคุณครับ ได้แล้ว