: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

ทำให้ร้อยละรวมได้100

ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

ทำให้ร้อยละรวมได้100

#1

Post by Totem »

:D เรียน อาจารย์และเพื่อนสมาชิกทุกคน

วิธีหาค่าร้อยละในช่อง C4 : C8 แล้วปัดเศษจุดทศนิยม 2 ตำแหน่ง และให้ผลรวมในช่อง C9 เป็น 100% เสมอ

เพราะบางครั้งเกิน100% บางครั้งไม่ถึง100% จะมีวิธีอย่างไรให้ถูกต้องครับ

ขอบคุณครับ
รวม.xlsx
You do not have the required permissions to view the files attached to this post.
menem
Silver
Silver
Posts: 549
Joined: Mon Jan 26, 2015 11:02 am

Re: ทำให้ร้อยละรวมได้100

#2

Post by menem »

ปกติการคำนวณแบบนี้ (มีการใช้ Round ) ผลรวมจะเกิด Diff ครับ
ซึ่งโดยมาก เราอาจจะใช้วิธีปัดเศษเข้าไปในค่าใดค่าหนึ่งตายตัว
หรือใช้วิธีวางไว้ที่ตัวที่มีค่ามากที่สุดก็ได้
You do not have the required permissions to view the files attached to this post.
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: ทำให้ร้อยละรวมได้100

#3

Post by Totem »

menem wrote:ปกติการคำนวณแบบนี้ (มีการใช้ Round ) ผลรวมจะเกิด Diff ครับ
ซึ่งโดยมาก เราอาจจะใช้วิธีปัดเศษเข้าไปในค่าใดค่าหนึ่งตายตัว
หรือใช้วิธีวางไว้ที่ตัวที่มีค่ามากที่สุดก็ได้
ถ้าช่อง C4:C8 ไม่มีใช้ Round ก็ได้ ให้รวมค่าเป็น 100 จะมีวิธีไหนครับ เพราะหากข้อมูลในช่องจำนวนมีค่ามากสุดเท่ากันก็จะให้สูตรลักษณะนี้ไม่ได้ เช่น ช่อง B5 = 61 รวมเท่ากับ 100.01 สูตรจะไม่ครอบคลุมปัญหานี้
หรือใช้วิธีปัดเศษเข้าไปในค่าใดค่าหนึ่งตายตัว หากมีค่าอื่นที่จำนวนเท่ากันกับค่าหนึ่งที่ปัดเศษตายตัว จะทำให้
ค่าร้อยละที่แสดงออกมาทั้ง 2 รายการไม่เท่ากันครับ
menem
Silver
Silver
Posts: 549
Joined: Mon Jan 26, 2015 11:02 am

Re: ทำให้ร้อยละรวมได้100

#4

Post by menem »

ในกรณีที่ใช้สูตรแบบไม่มี Round มากำกับ
ผลรวมจะเป็น 100% ครับ แต่เวลาเราเอามาดู
แล้วรวมโดยใช้เครื่องคิดเลขข้างนอก อาจจะ
ไม่เท่ากับ 100% เพราะการแสดงผล กับค่าที่
Excel คำนวณได้จริงมันต่างกันอยู่ครับ

กรณี Fix การปัดเศษเข้าไปที่ตัวใดตัวหนึ่งโดยตรงสูตร
จะเป็น =100-sum( ผลการคำนวณของบรรทัดอื่น ๆ )
วิธีนี้จะดีในแง่ที่ว่าเรารู้เสมอว่าการปัดเศษจะกระทำกับ
รายการไหน (และไม่มีโอกาสปัดซ้ำ เหมือนกับวิธีการ
วางในค่า Max หากค่า Max มีมากกว่าหนึ่งรายการ)
แต่ข้อเสียที่อาจจะมีขึ้นคือ กรณีรายการที่ Fixed การปัดเศษ
มีค่าเป็น 0 มันก็จะไม่สมเหตุสมผลที่จะปัดเข้าไปในรายการนั้น ๆ ครับ
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: ทำให้ร้อยละรวมได้100

#5

Post by Totem »

menem wrote:ในกรณีที่ใช้สูตรแบบไม่มี Round มากำกับ
ผลรวมจะเป็น 100% ครับ แต่เวลาเราเอามาดู
แล้วรวมโดยใช้เครื่องคิดเลขข้างนอก อาจจะ
ไม่เท่ากับ 100% เพราะการแสดงผล กับค่าที่
Excel คำนวณได้จริงมันต่างกันอยู่ครับ

กรณี Fix การปัดเศษเข้าไปที่ตัวใดตัวหนึ่งโดยตรงสูตร
จะเป็น =100-sum( ผลการคำนวณของบรรทัดอื่น ๆ )
วิธีนี้จะดีในแง่ที่ว่าเรารู้เสมอว่าการปัดเศษจะกระทำกับ
รายการไหน (และไม่มีโอกาสปัดซ้ำ เหมือนกับวิธีการ
วางในค่า Max หากค่า Max มีมากกว่าหนึ่งรายการ)
แต่ข้อเสียที่อาจจะมีขึ้นคือ กรณีรายการที่ Fixed การปัดเศษ
มีค่าเป็น 0 มันก็จะไม่สมเหตุสมผลที่จะปัดเข้าไปในรายการนั้น ๆ ครับ
ใช่ครับ ในกรณีที่ใช้สูตรแบบไม่มี Round มากำกับ
ผลรวมจะเป็น 100% แล้วกรณี Fix ก็ยังมีการแก้ไขปัญหายังไม่ครอบคลุม ผมลองทำหลายแบบแล้ว ยังไม่สำเร็จครับ
จะมีวิธีไหนหรือไม่...
menem
Silver
Silver
Posts: 549
Joined: Mon Jan 26, 2015 11:02 am

Re: ทำให้ร้อยละรวมได้100

#6

Post by menem »

งั้นลองแบบนี้ดูครับ
- คำนวณหาว่ามี Diff เท่าไหร่
- ตรวจสอบการ Allocate ค่า Diff
- การวางจะวางครั้งเดียว กับค่าที่มากที่สุดของช่วง
You do not have the required permissions to view the files attached to this post.
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: ทำให้ร้อยละรวมได้100

#7

Post by Totem »

menem wrote:งั้นลองแบบนี้ดูครับ
- คำนวณหาว่ามี Diff เท่าไหร่
- ตรวจสอบการ Allocate ค่า Diff
- การวางจะวางครั้งเดียว กับค่าที่มากที่สุดของช่วง

หากค่าที่มากที่สุดของช่วงนั้นเท่ากัน เช่น B4 = 61 , B5 = 61 ที่ช่อง C9 รวมได้ 100 แต่ ร้อยละในช่อง C4 = 44.21 ,
C5 = 44.20 เกิดปัญหาว่าไม่ตรงกันครับ
User avatar
XDoll
Bronze
Bronze
Posts: 261
Joined: Sun Mar 03, 2013 9:23 pm

Re: ทำให้ร้อยละรวมได้100

#8

Post by XDoll »

:D C4:C8 ให้เอา Round ออกครับ
ส่วน C9 ให้เปลี่ยนเป็น =ROUND(SUMPRODUCT(C4:C8),2)
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: ทำให้ร้อยละรวมได้100

#9

Post by Totem »

XDoll wrote::D C4:C8 ให้เอา Round ออกครับ
ส่วน C9 ให้เปลี่ยนเป็น =ROUND(SUMPRODUCT(C4:C8),2)
หากเอา Round ออกเช่นนี้ C4:C8 ปรับให้เป็นจุดทศนิยม 2 ตำแหน่ง จะได้ 99.99 เมื่อใช้สูตร=ROUND(SUMPRODUCT(C4:C8),2)ทำให้ C9 = 100 แต่จำนวน C4:C8 จะยังไปถูกต้องครับ
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: ทำให้ร้อยละรวมได้100

#10

Post by Totem »

Totem wrote:
XDoll wrote::D C4:C8 ให้เอา Round ออกครับ
ส่วน C9 ให้เปลี่ยนเป็น =ROUND(SUMPRODUCT(C4:C8),2)
หากเอา Round ออกเช่นนี้ C4:C8 ปรับให้เป็นจุดทศนิยม 2 ตำแหน่ง จะได้ 99.99 เมื่อใช้สูตร=ROUND(SUMPRODUCT(C4:C8),2)ทำให้ C9 = 100 แต่จำนวน C4:C8 จะยังไม่ถูกต้องครับ
User avatar
DhitiBank
Gold
Gold
Posts: 1676
Joined: Mon Oct 15, 2012 12:07 am

Re: ทำให้ร้อยละรวมได้100

#11

Post by DhitiBank »

ก่อนอื่น ขอถามก่อนว่าทศนิยมหลักที่ 2 สำคัญมากหรือไม่ครับ เพราะหากไม่สำคัญอะไรมาก แค่อยากให้ตรงกันเฉยๆ ผมมักจะใช้วิธีนี้คือ

1. C4:C7 ใช้สูตรตามปกติ (มี Round)

2. C8 คีย์
=IF(ROUND(B8/$B$9*100,2)+SUM($D$4:$D$7)=100,ROUND(B8/$B$9*100,2),100-SUM($D$4:$D$7))

มันก็จะตรงกันครับ
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: ทำให้ร้อยละรวมได้100

#12

Post by Totem »

DhitiBank wrote:ก่อนอื่น ขอถามก่อนว่าทศนิยมหลักที่ 2 สำคัญมากหรือไม่ครับ เพราะหากไม่สำคัญอะไรมาก แค่อยากให้ตรงกันเฉยๆ ผมมักจะใช้วิธีนี้คือ

1. C4:C7 ใช้สูตรตามปกติ (มี Round)

2. C8 คีย์
=IF(ROUND(B8/$B$9*100,2)+SUM($D$4:$D$7)=100,ROUND(B8/$B$9*100,2),100-SUM($D$4:$D$7))

มันก็จะตรงกันครับ
สรุปได้ว่า

ช่อง C8 ใช้สูตรข้างต้น = 15.38

ช่อง C4 = 67.03

ช่อง C5 = 15.38

ช่อง C6 = 2.20

ช่อง C7 = 0.00

รวม ช่อง C9 = 99.99

ก็ยังไม่ตรงครับ
User avatar
DhitiBank
Gold
Gold
Posts: 1676
Joined: Mon Oct 15, 2012 12:07 am

Re: ทำให้ร้อยละรวมได้100

#13

Post by DhitiBank »

ลองดูในไฟล์แนบครับ :)
You do not have the required permissions to view the files attached to this post.
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: ทำให้ร้อยละรวมได้100

#14

Post by Totem »

ทศนิยม 2 ตำแหน่งจะมีความสำคัญ เมื่อมีจำนวนเท่ากันในช่อง B2:B8 ในตัวอย่างนี้ คำตอบ C2=15.38 และ C8=15.38
จะต้องเท่ากันครับ ถ้าว่าปัดเศษที่จำนวนไม่เท่ากัน ก็ไม่ถือว่าสำคัญ ปัดเศษได้เลย ให้ได้ รวมคือ 100 ครับ
User avatar
DhitiBank
Gold
Gold
Posts: 1676
Joined: Mon Oct 15, 2012 12:07 am

Re: ทำให้ร้อยละรวมได้100

#15

Post by DhitiBank »

Totem wrote:ทศนิยม 2 ตำแหน่งจะมีความสำคัญ เมื่อมีจำนวนเท่ากันในช่อง B2:B8 ในตัวอย่างนี้ คำตอบ C2=15.38 และ C8=15.38
จะต้องเท่ากันครับ ถ้าว่าปัดเศษที่จำนวนไม่เท่ากัน ก็ไม่ถือว่าสำคัญ ปัดเศษได้เลย ให้ได้ รวมคือ 100 ครับ
จริงด้วยครับ :shock: ผมลืมคิดไป ถ้าอย่างนั้น ลองแบบนี้ครับ
D3 คีย์ Find

D4 คีย์
=IF($C$9=100,0,IF(SUM(D$3:D3)=1,0,IF(COUNTIF($C$4:$C$8,C4)=1,1,0)))
enter --> คัดลอกลงถึง D8

E4 คีย์
:!: =IF($C$9<>100,IF(D4=0,C4,100-SUMPRODUCT(--($D$4:$D$8=0),$C$4:$C$8))) สูตรนี้ไม่เอาครับ ขอปรับเป็นด้านล่าง
enter --> คัดลอกลงถึง E8

E9 ลองหาผลรวมดูครับ

แก้ไขครับ: แต่ในไฟล์ไม่ได้แก้
E4 คีย์
=IF(D4=0,C4,100-SUMPRODUCT(--($D$4:$D$8=0),$C$4:$C$8))
You do not have the required permissions to view the files attached to this post.
menem
Silver
Silver
Posts: 549
Joined: Mon Jan 26, 2015 11:02 am

Re: ทำให้ร้อยละรวมได้100

#16

Post by menem »

ลองดูอีกทีครับ
You do not have the required permissions to view the files attached to this post.
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: ทำให้ร้อยละรวมได้100

#17

Post by Totem »

DhitiBank wrote:
Totem wrote:ทศนิยม 2 ตำแหน่งจะมีความสำคัญ เมื่อมีจำนวนเท่ากันในช่อง B2:B8 ในตัวอย่างนี้ คำตอบ C2=15.38 และ C8=15.38
จะต้องเท่ากันครับ ถ้าว่าปัดเศษที่จำนวนไม่เท่ากัน ก็ไม่ถือว่าสำคัญ ปัดเศษได้เลย ให้ได้ รวมคือ 100 ครับ
จริงด้วยครับ :shock: ผมลืมคิดไป ถ้าอย่างนั้น ลองแบบนี้ครับ
D3 คีย์ Find

D4 คีย์
=IF($C$9=100,0,IF(SUM(D$3:D3)=1,0,IF(COUNTIF($C$4:$C$8,C4)=1,1,0)))
enter --> คัดลอกลงถึง D8

E4 คีย์
:!: =IF($C$9<>100,IF(D4=0,C4,100-SUMPRODUCT(--($D$4:$D$8=0),$C$4:$C$8))) สูตรนี้ไม่เอาครับ ขอปรับเป็นด้านล่าง
enter --> คัดลอกลงถึง E8

E9 ลองหาผลรวมดูครับ

แก้ไขครับ: แต่ในไฟล์ไม่ได้แก้
E4 คีย์
=IF(D4=0,C4,100-SUMPRODUCT(--($D$4:$D$8=0),$C$4:$C$8))
menem wrote:ลองดูอีกทีครับ

:D ลองสูตรทั้งสองแบบและได้ปรับอีกเล็กน้อย นำไปใช้ได้ตามต้องการครับ

ขอบคุณ คุณDhitiBankและคุณmenem ครับ
Post Reply