: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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
niwat2811
Bronze
Bronze
Posts: 350
Joined: Thu Jan 06, 2011 12:51 pm
Excel Ver: 2016

ต้องการแจกแจงจำนวนเงินโดยไม่ให้เกินวงเงินที่มีอยู่

#1

Post by niwat2811 »

รบกวนสอบถามท่านผู้รู้ มีข้อมูลทั้งหมดอยู่ที่ชีท หน่วย
แต่ว่าข้อมูลที่ต้องการให้เปรียบเทียบอยู่ที่ชีท บริษัท
โดยมีความต้องการคือ ใช้ข้อมูลจำนวนเงินที่ชีท บริษัท คอลัมภน์ D เป็นหลัก
เช่น บริษัท 1 จำนวนเงินที่คอลัมภน์ D = 201,498,745.30 บาท เป็นหลัก
และให้ทำการ Sum ที่ชีทหน่วยและให้แสดงผลที่คอลัมภน์ D เป็นชื่อบริษัท โดยไม่ให้เกินวงเงินดังกล่าวข้างต้น
ตามไฟล์ที่แนบมาพร้อมนี้
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: ต้องการแจกแจงจำนวนเงินโดยไม่ให้เกินวงเงินที่มีอยู่

#2

Post by menem »

อาจจะทำให้ไม่สามารถ Allocate ได้ครบทุกหน่วยนะครับ
เพราะจะมีวงเงินคงเหลือของแต่ละบริษัท ที่ไม่สามารถใช้งานได้

ช่อง D1 ให้พิมพ์ บริษัท
ช่อง D2 ใส่สูตร
=IF(D1<>"",IF(SUMIF(D$1:D1,D1,C$1:C1)+C2>SUMIF(บริษัท!$A:$A,D1,บริษัท!$D:$D),IF(MATCH(D1,บริษัท!$A:$A,0)+1<COUNTA(บริษัท!A:A),INDEX(บริษัท!$A:$A,MATCH(D1,บริษัท!$A:$A,0)+1),""),D1),"")
niwat2811
Bronze
Bronze
Posts: 350
Joined: Thu Jan 06, 2011 12:51 pm
Excel Ver: 2016

Re: ต้องการแจกแจงจำนวนเงินโดยไม่ให้เกินวงเงินที่มีอยู่

#3

Post by niwat2811 »

ขอบคุณครับสำหรับคำตอบ แต่ยังได้ไม่ตรงตามต้องการครับ
อยากให้เกลี่ยแต่ละบริษัทตามจำนวนเงินให้ครบทุกหน่วย
จากสูตรที่ให้มาหน่วยที่ 66-80 ยังไม่มีบริษัทที่รับผิดชอบ
การเกลี่ยแต่ละบริษัท จำนวนเงินอาจจะขาดหรือเกินจากวงเงินก็ได้ครับ
แต่ขอให้เกลี่ยได้ครบทุกหน่วยและใกล้เคียงกับวงเงินของบริษัท ไม่ต้องเรียงลำดับบริษัทก็ได้ครับ
ขอบคุณครับ
menem
Silver
Silver
Posts: 549
Joined: Mon Jan 26, 2015 11:02 am

Re: ต้องการแจกแจงจำนวนเงินโดยไม่ให้เกินวงเงินที่มีอยู่

#4

Post by menem »

ถ้าเป็นแบบนั้นอาจจะต้องใช้ สูตรแบบ Array ซึ่งผมเขียนไม่เป็นครับ, รบกวนรอท่านอื่นนะครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ต้องการแจกแจงจำนวนเงินโดยไม่ให้เกินวงเงินที่มีอยู่

#5

Post by snasui »

:D ตัวอย่างสูตรครับ

ที่ชีตหน่วยเซลล์ D2 คีย์

=INDEX(บริษัท!$A$2:$A$16,MATCH(1,1/(SUM(C$2:C2)<=SUBTOTAL(9,OFFSET(บริษัท!$D$2,0,0,ROW(บริษัท!$D$2:$D$16)-ROW(บริษัท!$D$2)+1))),0))

Ctrl+Shift+Enter > Copy ลงด้านล่าง
niwat2811
Bronze
Bronze
Posts: 350
Joined: Thu Jan 06, 2011 12:51 pm
Excel Ver: 2016

Re: ต้องการแจกแจงจำนวนเงินโดยไม่ให้เกินวงเงินที่มีอยู่

#6

Post by niwat2811 »

ขอบคุณอาจารย์สำหรับสูตรครับ ได้ทดลองนำสูตรไปใช้ที่ชีทหน่วยแล้ว
ปรากฎว่าเมื่อ Sum จำนวนเงินแยกรายบริษัทที่ชีทบริษัทแล้ว ผลต่างที่ได้เป็นเงินที่ต่างกันมาก
เลยได้ทดลองทำ Manual ที่ชีทหน่วยคอลัมภน์ E แล้วนำไป Sum จำนวนเงินแยกรายบริษัทที่ชีทบริษัท
ผลต่างที่ได้จะไม่ต่างกันมาก เป็นไปได้ไหมที่สามารถปรับสูตรให้ได้ใกล้เคียงกับวิธี Manual ครับ
(อยากได้ผลต่าง บวก ลบ ประมาณ ไม่เกิน 1 แสนบาท) ข้อมูลตามไฟล์แนบครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ต้องการแจกแจงจำนวนเงินโดยไม่ให้เกินวงเงินที่มีอยู่

#7

Post by snasui »

:D ลักษณะตามตัวอย่างคำตอบที่หาด้วยมือคงจะต้องพึ่ง VBA เข้ามาช่วย ลองทำมาดูก่อน ติดแล้วค่อยถามกันต่อครับ
niwat2811
Bronze
Bronze
Posts: 350
Joined: Thu Jan 06, 2011 12:51 pm
Excel Ver: 2016

Re: ต้องการแจกแจงจำนวนเงินโดยไม่ให้เกินวงเงินที่มีอยู่

#8

Post by niwat2811 »

ได้ลองค้นหาข้อมูลจากอินเตอร์เน็ตแล้วได้นำ Code มาทดสอบให้งานที่ Sheet1 สามารถใช้งานได้
แต่พอนำข้อมูลจริงมาวางที่ Sheet2 พอรันมาโครแล้ว ขึ้น Error ตรงหน่วยที่ 31 ว่า Subscript Out of Range 9 ครับ
ไม่ทราบว่าควรปรับ Code อย่างไรถึงจะรันผ่านครับ และต้องการ Loop จำนวนเงินของแต่ละบริษัทมาใส่
ที่เซล D1 และทำการเลือกหน่วยที่ยังไม่ได้ถูกเลือกต่อไป ควรปรับ Code เพิ่มอย่างไรครับ ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ต้องการแจกแจงจำนวนเงินโดยไม่ให้เกินวงเงินที่มีอยู่

#9

Post by snasui »

:D แก้ตัวแปร Array ที่กำหนดสมาชิก 30 ตัวให้เป็น 80 ตัวแล้วลอง Run ใหม่ครับ
niwat2811
Bronze
Bronze
Posts: 350
Joined: Thu Jan 06, 2011 12:51 pm
Excel Ver: 2016

Re: ต้องการแจกแจงจำนวนเงินโดยไม่ให้เกินวงเงินที่มีอยู่

#10

Post by niwat2811 »

ได้ลองแก้ตัวแปรและลอง Run ใหม่แล้ว จนถึงตอนนี้ประมาณ 3 ชม.แล้วก็ยัง Run ไม่เสร็จ
ไม่ทราบว่าพอจะมีวิธี Manual อย่างไรให้เร็วไหมครับ
menem
Silver
Silver
Posts: 549
Joined: Mon Jan 26, 2015 11:02 am

Re: ต้องการแจกแจงจำนวนเงินโดยไม่ให้เกินวงเงินที่มีอยู่

#11

Post by menem »

งั้นลองแบบนี้ดูครับ (ผมปรับเพิ่มวงเงิน ตามที่แจ้งไว้ว่าสามารถเพิ่มได้อีกนิดหน่อย
แต่ต้อง Allocate ให้ครบ)
You do not have the required permissions to view the files attached to this post.
User avatar
Bo_ry
Gold
Gold
Posts: 1245
Joined: Sun Aug 12, 2018 12:11 am
Excel Ver: MS 365
Contact:

Re: ต้องการแจกแจงจำนวนเงินโดยไม่ให้เกินวงเงินที่มีอยู่

#12

Post by Bo_ry »

ลองดูก่อน
Column C ต้องเรียงจากมากไปน้อย
You do not have the required permissions to view the files attached to this post.
niwat2811
Bronze
Bronze
Posts: 350
Joined: Thu Jan 06, 2011 12:51 pm
Excel Ver: 2016

Re: ต้องการแจกแจงจำนวนเงินโดยไม่ให้เกินวงเงินที่มีอยู่

#13

Post by niwat2811 »

สวัสดีครับ ขอบคุณสำหรับทุกคำตอบนะครับ ขอลองนำไปประยุกต์ใช้ดูก่อน ได้ผลอย่างไรจะมาแจ้งให้ทราบนะครับ
พอดีได้สูตรมาจากอินเตอร์เน็ต (ตามไฟล์แนบ) ที่ Sheet1 สูตรสามารถแสดงผลได้ถูกต้อง
แต่พอนำมาประยุกต์ใช้ที่ Sheet2 ไม่สามารถแสดงผลได้ ไม่ทราบว่าควรต้องปรับสูตรอย่างไรดี
รบกวนผู้รู้ช่วยชี้แนะด้วยครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ต้องการแจกแจงจำนวนเงินโดยไม่ให้เกินวงเงินที่มีอยู่

#14

Post by snasui »

:D ลองปรับสูตรเป็นด้านล่างครับ

=INDEX(MOD(INT((ROW($B$2:INDEX($B:$B,2^16))-1)/2^(TRANSPOSE(MATCH(ROW($B$2:$B$81),ROW($B$2:$B$81)))-1)),2)*TRANSPOSE($B$2:$B$81),MATCH(MIN(ABS(MMULT(MOD(INT((ROW($B$2:INDEX($B:$B,2^16))-1)/2^(TRANSPOSE(MATCH(ROW($B$2:$B$81),ROW($B$2:$B$81)))-1)),2),$B$2:$B$81)-$E$1)),ABS(MMULT(MOD(INT((ROW($B$2:INDEX($B:$B,2^16))-1)/2^(TRANSPOSE(MATCH(ROW($B$2:$B$81),ROW($B$2:$B$81)))-1)),2),$B$2:$B$81)-$E$1),0),0)
niwat2811
Bronze
Bronze
Posts: 350
Joined: Thu Jan 06, 2011 12:51 pm
Excel Ver: 2016

Re: ต้องการแจกแจงจำนวนเงินโดยไม่ให้เกินวงเงินที่มีอยู่

#15

Post by niwat2811 »

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

Re: ต้องการแจกแจงจำนวนเงินโดยไม่ให้เกินวงเงินที่มีอยู่

#16

Post by snasui »

:D เข้าใจว่าเป็นเช่นนั้นครับ

เครื่องผม CPU Core i5, RAM 8G สามารถ Run ได้ครับ
Post Reply