: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

Automatic sort

ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
Praman
Member
Member
Posts: 32
Joined: Thu Jul 07, 2011 2:59 pm

Automatic sort

#1

Post by Praman »

สวัสดีครับ เพิ่งเริ่มต้น ทำตารางวางแผนการผลิตใหม่ครับ
ทำการวางแผนการผลิตเป็นรายวัน
มีไลน์การผลิตทั้งหมด 4 ไลน์
แต่ละลายการผลิต ผลิตสินค้าเหมือนกันบ้าง ต่างกันบ้าง
วันนี้ผลิตสินค้านี้ พรุ่งนี้อาจเปลี่ยนผลิตสินค้าตัวอื่น

ตรงช่องรวมรายการผลิต แต่ละรายการ อยากให้รวมแบบอัตโนมัติครับ
รบกวนดูรายละเอียดในไฟล์ที่แนบครับ
You do not have the required permissions to view the files attached to this post.
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: Automatic sort

#2

Post by bank9597 »

:D หากไม่ใช่มาโคร สามารถใช้สูตรได้หรือไม่ครับ
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
Praman
Member
Member
Posts: 32
Joined: Thu Jul 07, 2011 2:59 pm

Re: Automatic sort

#3

Post by Praman »

ต้องการใช้แค่สูตรครับ
ขอบคุณครับ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: Automatic sort

#4

Post by bank9597 »

:D ลองตามนี้ครับ
ที่เซลล์ H19 คีย์ =SUMPRODUCT(($E$3:$E$16<>"")/COUNTIF($E$3:$E$16,$E$3:$E$16&""))
ที่เซลล์ E21 คีย์
=IF(ROWS($E$21:E21)>$H$19,"",INDEX($E$3:$E$16,SMALL(IF($E$3:$E$16<>"",IF(MATCH($E$3:$E$16,$E$3:$E$16,0)=ROW($E$3:$E$16)-ROW($E$3)+1,ROW($E$3:$E$16)-ROW($E$3)+1)),ROWS($E$21:E21))))
กด Ctrl+Shift ค้าง ตามด้วยปุ่ม Enter จะได้เครื่องหมา {} คร่อมสูตรอยู่

หมายเหตุ สูตรไม่สามารถเรียงลำดับตัวอักษรได้ หากต้องการทำเช่นนั้นด้วย จำเป็นต้องใช้ VBA เท่านั้นครับ
You do not have the required permissions to view the files attached to this post.
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
Praman
Member
Member
Posts: 32
Joined: Thu Jul 07, 2011 2:59 pm

Re: Automatic sort

#5

Post by Praman »

ขอบคุณมากครับ
แค่นี้ก็เพียงพอต่อการใช้งานแล้วครับ
ตัวอักษรไม่เรียงก็ไม่เป็นปัญหาครับ ผมคงใช้วิธีการคลุมช่วง แล้วกด Sort ทุกครั้งก็ได้ครับ

แต่อย่างไรก็ตาม คิดว่า VBA จะสะดวกกว่า
หากไม่เป็นการรบกวนจนเกินไป จะรบกวนให้เขียนโค้ด VBA
จะเอาไว้ศึกษาครับ

ขอบคุณอีกครั้งครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31253
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Automatic sort

#6

Post by snasui »

:D สำหรับ VBA นั้นจำเป็นต้องเขียนมาเองครับ ติดตรงไหนค่อยมาถามกันครับ
Praman
Member
Member
Posts: 32
Joined: Thu Jul 07, 2011 2:59 pm

Re: Automatic sort

#7

Post by Praman »

ไม่มีความรู้เรื่อง VBA เลยครับ
คงต้องศึกษาอีกสักระยะ

เรียนถามคุณ bank9597 ครับ
สูตรช่อง E21 พอที่จะนั่งทำความเข้าใจได้
แต่สูตรสั้นๆ ช่อง H9 พยายามทำความเข้าใจแล้ว แต่ก็ยังไม่เข้าใจที่มาที่ไปเลยครับ
รบกวนขอความกระจ่าง ถึงสาเหตุที่ใช้สูตรนี้ด้วยครับ

ขอบคุณมากครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31253
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: Automatic sort

#8

Post by snasui »

:D จากสูตร

=SUMPRODUCT(($E$3:$E$16<>"")/COUNTIF($E$3:$E$16,$E$3:$E$16&""))

เป็นสูตรสำหรับการนับค่าโดยค่าที่ซ้ำกันให้นับเป็น 1 ค่าเท่านั้น

ความหมายของ $E$3:$E$16<>"" เป็นการเทียบว่า $E$3:$E$16 เป็นค่าว่างหรือไม่ เซลล์ใดว่างก็จะแสดงผลลัพธ์เป็น True ถ้าไม่ว่างก็จะแสดงผลลัพธ์เป็น False

ส่วน COUNTIF($E$3:$E$16,$E$3:$E$16&"") เป็นการนับว่า ในช่วง $E$3:$E$16 มีค่า $E$3:$E$16&"" อยู่จำนวนเท่าไร เป็นการใช้ Countif แบบประยุกต์เพื่อทีจะนับโดยนำค่าว่างมานับด้วย ผลลลัพธ์จะได้ออกมาเป็นเช่น (เป็นการยกตัวอย่าง ไม่ได้อ้างอิงกับสูตรเดิม สร้างขึ้นเพื่อประกอบความเข้าใจ)

=Sumproduct({True,True,False,False,False}/{1,1,3,3,3})

เนื่องจากค่า True คือ 1 และ False คือ 0 ก็จะกลายเป็น =Sumproduct({1,1,0,0,0}/{1,1,3,3,3}) และจะกลายเป็น =Sumproduct({1/1,1/1,0/3,0/3,0/3}) และจะกลายเป็น 2 เช่นนี้เป็นต้น

การแกะสูตรสามารถคลุมส่วนประกอบใด ๆ ที่ต้องการทราบผลลัพธ์แล้วกดแป้น F9 ครับ
Praman
Member
Member
Posts: 32
Joined: Thu Jul 07, 2011 2:59 pm

Re: Automatic sort

#9

Post by Praman »

ขอบคุณมากครับ
Post Reply