: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

เรียนสอบถามวิธีการกระจายข้อมูลรวมไปเป็นข้อมูลย่อยตาม lot ครั

ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
tateep
Member
Member
Posts: 5
Joined: Wed Aug 27, 2014 11:28 pm

เรียนสอบถามวิธีการกระจายข้อมูลรวมไปเป็นข้อมูลย่อยตาม lot ครั

#1

Post by tateep »

เรียนสอบถามอาจารย์ครับ
1. หากเราต้องการกระจายจำนวนสินค้าที่นับได้ซึ่งตอนนับเรานับรวมมาทุก lot แยกออกไปเป็นจำนวนในแต่ละ lot
2. เลือกกระจายไปยัง lot ที่มีจำนวนมากที่สุดแล้วไล่เรียงกันลงมา
3. จำนวนที่นับได้ทั้งหมดอาจจะไม่เท่ากันกับจำนวนที่มีใน stock
4. หากจำนวนดังกล่าวไม่เท่ากันให้ excel คำนวณจำนวนผลต่างไปที่แถวสุดท้ายของรหัสสินค้า
รบกวนอาจารย์แนะนำวิธีการทำงานดังกล่าว ด้วยครับ ขอบพระคุณอาจารย์มากครับ
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: เรียนสอบถามวิธีการกระจายข้อมูลรวมไปเป็นข้อมูลย่อยตาม lot

#2

Post by snasui »

:D ลองตามนี้ครับ

เซลล์ E2 คีย์

Code: Select all

=IF(D2="","",IF(AND(SUM(D$2:D2)<=Sheet1!$C$2,D3=""),Sheet1!$C$2-SUM(D$1:D1),IF(SUM(D$2:D2)<=Sheet1!$C$2,D2,MAX(0,Sheet1!$C$2-SUM(D$1:D1)))))
Enter > Copy ลงด้านล่าง
tateep
Member
Member
Posts: 5
Joined: Wed Aug 27, 2014 11:28 pm

Re: เรียนสอบถามวิธีการกระจายข้อมูลรวมไปเป็นข้อมูลย่อยตาม lot

#3

Post by tateep »

ขอบพระคุณอาจารย์มากครับ และขอรบกวนสอบถามอาจารย์เพิ่มเติมด้วยครับ
1. หากเรามีชนิดสินค้าเพิ่มขึ้น และแต่ละชนิดสินค้ามีจำนวน lot ไม่เท่ากัน จะเขียนให้กระจายตัวเลขอย่างไรดีครับ
2. และหากจำนวนสินค้าที่นับได้ (sheet1) มีมากกว่าจำนวนสินค้าที่มีใน stock (sheet2) จะเขียนสูตรการคำนวณอย่างไรให้แสดงจำนวนคงเหลือที่ยังไม่ได้กระจายลงใน lot (สามารถ create lot ใหม่ ให้มีจำนวนเท่ากับจำนวนที่เหลือได้หรือไม่ครับ)

ทั้งนี้ได้ลองแนบไฟล์ตัวอย่างมาให้อาจารย์ดูครับ
รบกวนอาจารย์ด้วยครับ
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: เรียนสอบถามวิธีการกระจายข้อมูลรวมไปเป็นข้อมูลย่อยตาม lot

#4

Post by snasui »

:D เติมคอลัมน์ A:B ให้เต็ม ห้ามเว้นว่าง จากนั้นที่ E2 ปรับสูตรเป็นด้านล่างครับ

Code: Select all

=IF(D2="","",IF(AND(SUMIF(A$2:A2,A2,D$2:D2)<=SUMIF(Sheet1!$A$2:$A$4,A2,Sheet1!$C$2:$C$4),A3<>A2),SUMIF(Sheet1!$A$2:$A$4,A2,Sheet1!$C$2:$C$4)-SUMIF(A$1:A1,A2,D$1:D1),IF(SUMIF(A$2:A2,A2,D$2:D2)<=SUMIF(Sheet1!$A$2:$A$4,A2,Sheet1!$C$2:$C$4),D2,MAX(0,SUMIF(Sheet1!$A$2:$A$4,A2,Sheet1!$C$2:$C$4)-SUMIF(A$1:A1,A2,D$1:D1)))))
tateep
Member
Member
Posts: 5
Joined: Wed Aug 27, 2014 11:28 pm

Re: เรียนสอบถามวิธีการกระจายข้อมูลรวมไปเป็นข้อมูลย่อยตาม lot

#5

Post by tateep »

ขอบพระคุณอาจารย์มากครับ จะลองนำไปปรับใช้ดูครับ
tateep
Member
Member
Posts: 5
Joined: Wed Aug 27, 2014 11:28 pm

Re: เรียนสอบถามวิธีการกระจายข้อมูลรวมไปเป็นข้อมูลย่อยตาม lot

#6

Post by tateep »

เรียน รบกวนสอบถามอาจารย์เพิ่มเติมครับ

1. หากเรามีจำนวนสาขาหลายสาขา เราจะสามารถปรับสูตรเป็นอย่างไรครับ เพื่อให้กระจายข้อมูลนับใน sheet นับ ไปลงในสาขาเดียวกันของข้อมูลใน sheet stock ครับ
ซึ่งมีเงื่อนไขเพิ่มเติมว่าต้องกระจายลงใน lot ที่มีราคาต่อหน่วย สูงสุดเป็นอันดับแรก ตามจำนวนที่มี โดยไม่จำเป็นต้องมีจำนวนมากที่สุด ครับ

รบกวนอาจารย์ด้วยครับ

ขอขอบพระคุณอย่างสูง
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: เรียนสอบถามวิธีการกระจายข้อมูลรวมไปเป็นข้อมูลย่อยตาม lot

#7

Post by snasui »

:D สามารถใช้สูตรเดิมได้ครับ โดยให้เรียงข้อมูลตามสาขาในลำดับแรก และเรียงราคาต่อหน่วยจากมากไปหาน้อยในลำดับถัดมา ลองปรับมาเองให้ตรงกับข้อมูลชุดใหม่ ติดตรงไหนค่อยถามกันต่อ

สำหรับสูตรนั้น ต้องใช้กับไฟล์ที่มีนามสกุลไฟล์เป็น .xlsx ไม่ใช่ .xls ครับ
tateep
Member
Member
Posts: 5
Joined: Wed Aug 27, 2014 11:28 pm

Re: เรียนสอบถามวิธีการกระจายข้อมูลรวมไปเป็นข้อมูลย่อยตาม lot

#8

Post by tateep »

ขอบพระคุณอาจารย์มากครับ ที่ให้คำแนะนำที่มีคุณค่า
User avatar
kchn_deaw
Member
Member
Posts: 30
Joined: Wed May 21, 2014 11:49 pm

Re: เรียนสอบถามวิธีการกระจายข้อมูลรวมไปเป็นข้อมูลย่อยตาม lot

#9

Post by kchn_deaw »

รบกวน สอบถามเพิ่มเติมค่ะ
เนื่องจากเห็นว่าสามารถนำไปใช้ดัดแปลงใช้งานได้จึงได้ลองทำดูตามที่แนะนำ ซึ่งจากไฟล์ที่แนบมานั้น พบว่า
รหัสสินค้า 001 นับได้ = 3000 ของใน Stock Lot 1-7 รวมกันมีเพียง 2300 (ตามเงื่อนไข ข้อ4. หากจำนวนดังกล่าวไม่เท่ากันให้ excel คำนวณจำนวนผลต่างไปที่แถวสุดท้ายของรหัสสินค้า) ดังนั้น ที่ E12 ผลคำนวณตามสูตร จึงเท่ากับ 1200

แต่

รหัสสินค้า 002 นับได้ = 157 ของใน Stock Lot 1-4 รวมกันมีเพียง 107 (ตามเงื่อนไข ข้อ4. หากจำนวนดังกล่าวไม่เท่ากันให้ excel คำนวณจำนวนผลต่างไปที่แถวสุดท้ายของรหัสสินค้า) ดังนั้นผลคำนวณตามสูตร ที่ E16 น่าจะเเท่ากับ 50

เมื่อได้ลองพิจารณาตามสูตรดูแล้วอาจเป็นเพราะ ค่าที่ D15 และ D16 เป็นค่าว่าง จึงลองใส่ =0 ดู ปรากฏว่า สูตรคำนวณเพิ่มให้ที่ E16 เท่ากับ 50 จริงตามนั้น

ต้องการสอบถามเพิ่มเติมดังนี้ ค่ะ
สาเหตุ ที่ Lot 3-4 ว่างไว้ เนื่องจาก เคยมีสินค้า Lot ดังกล่าวจริงแต่ก่อนหน้าที่จะนับ Stock สินค้า Lot นั้นได้หมดลง เมื่อ Export ข้อมูลออกมาจากฐานข้อมูล ค่าที่ D15 และ D16 จะเป็นค่าว่างเสมอ หากใช้สูตรนี้ เวลาจะคำนวณ ต้องมาเลือก Cell ที่เป็นค่าว่าง ให้ใส่ค่า 0 ให้หมด จึงจะคำนวณให้ตามความต้องการ
มีวิธีใด จะแก้ไขตรงจุดนี้ได้บ้างคะ

ขอบคุณมากค่ะ
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: เรียนสอบถามวิธีการกระจายข้อมูลรวมไปเป็นข้อมูลย่อยตาม lot

#10

Post by snasui »

:D ที่ E2 ให้ลบ If หน้าสุดที่ใช้ดักค่าว่างออกไป จะเหลือตามด้านล่างครับ

Code: Select all

=IF(AND(SUMIF(A$2:A13,A13,D$2:D13)<=SUMIF(Sheet1!$A$2:$A$4,A13,Sheet1!$C$2:$C$4),A14<>A13),SUMIF(Sheet1!$A$2:$A$4,A13,Sheet1!$C$2:$C$4)-SUMIF(A$1:A12,A13,D$1:D12),IF(SUMIF(A$2:A13,A13,D$2:D13)<=SUMIF(Sheet1!$A$2:$A$4,A13,Sheet1!$C$2:$C$4),D13,MAX(0,SUMIF(Sheet1!$A$2:$A$4,A13,Sheet1!$C$2:$C$4)-SUMIF(A$1:A12,A13,D$1:D12))))
User avatar
kchn_deaw
Member
Member
Posts: 30
Joined: Wed May 21, 2014 11:49 pm

Re: เรียนสอบถามวิธีการกระจายข้อมูลรวมไปเป็นข้อมูลย่อยตาม lot

#11

Post by kchn_deaw »

ได้แล้วค่ะ ขอบคุณมากค่ะ
User avatar
kchn_deaw
Member
Member
Posts: 30
Joined: Wed May 21, 2014 11:49 pm

Re: เรียนสอบถามวิธีการกระจายข้อมูลรวมไปเป็นข้อมูลย่อยตาม lot

#12

Post by kchn_deaw »

สงสัย ต่อนิดนึงค่ะ (นอกเรื่องจากหัวข้อ กระจายจำนวนสินค้า)

เคยเข้าใจมาตลอดว่า ค่า=0 กับ Cell ว่าง ไม่เหมือนกัน เลยลองดูดังนี้
ถ้า D13 ไม่มีข้อมูลใด และที่cell ใด cell นึง คีย์ =IF(D13=0,"มีค่า=0","มันคือ Cell ว่าง") คำตอบคือ "มีค่า=0"
ถ้า D13 =0 และที่cell ใด cell นึง คีย์ =IF(D13=0,"มีค่า=0","มันคือ Cell ว่าง") คำตอบคือ "มีค่า=0"

กรณีนี้ ถ้าเราจะใช้สูตรเช็ค Cell ที่มีค่าว่างจริงๆ ต้องทำอย่างไรคะ
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: เรียนสอบถามวิธีการกระจายข้อมูลรวมไปเป็นข้อมูลย่อยตาม lot

#13

Post by snasui »

:D เซลล์ว่างเปล่า Excel รับรู้ว่ามีค่าเป็น 0

หาก A1 เป็นค่าว่างเปล่าเราต้องการให้แสดงผลลัพธ์เป็นคำว่า "ว่าง" สามารถเขียนได้ทั้งสองแบบคือ

=If(A1=0,"ว่าง","ไม่ว่าง") หรือ =If(A1="","ว่าง","ไม่ว่าง")

แต่หาก A1ไม่ใช่เซลล์ว่างเปล่า แต่เป็นค่าว่างที่ได้จากผลลัพธ์ของสูตรอื่นอีกที เราสามารถใช้สูตรเพื่อเทียบกับค่าว่างได้เพียงประการเดียว หากไปเทียบกับ 0 จะได้คำตอบไม่ถูกต้อง

ยกตัวอย่างที่ A1 มีสูตร

=""

ผลลัพธ์ที่ได้คือค่าที่มองเห็นด้วยตาว่าว่าง แต่ไม่ใช่เซลล์ว่างเปล่า และเมื่อเป็นเช่นนี้ เราจะไปเทียบกับ 0 ไม่ได้ เพราะมันคือค่าว่างชนิด String ไม่ใช่ค่าว่างเปล่าและไม่เท่ากับ 0

กลับมาที่คำถามว่า หากเทียบกับเซลล์ว่างเปล่าจะทำอย่างไร

การทำเช่นนั้นเราสามารถใช้ Isblank เข้ามาช่วยได้ครับ เช่น

=If(Isblank(A1),"ว่างอย่างจริงแท้แน่นอน","ไม่ว่าง จะด้วยเหตุผลใดก็ตาม")
User avatar
kchn_deaw
Member
Member
Posts: 30
Joined: Wed May 21, 2014 11:49 pm

Re: เรียนสอบถามวิธีการกระจายข้อมูลรวมไปเป็นข้อมูลย่อยตาม lot

#14

Post by kchn_deaw »

ขอบคุณสำหรับคำตอบค่ะ

ชอบอันนี้ :arrow: "ว่างอย่างจริงแท้แน่นอน" :thup:
Post Reply