Page 1 of 1

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

Posted: Wed Aug 27, 2014 11:52 pm
by tateep
เรียนสอบถามอาจารย์ครับ
1. หากเราต้องการกระจายจำนวนสินค้าที่นับได้ซึ่งตอนนับเรานับรวมมาทุก lot แยกออกไปเป็นจำนวนในแต่ละ lot
2. เลือกกระจายไปยัง lot ที่มีจำนวนมากที่สุดแล้วไล่เรียงกันลงมา
3. จำนวนที่นับได้ทั้งหมดอาจจะไม่เท่ากันกับจำนวนที่มีใน stock
4. หากจำนวนดังกล่าวไม่เท่ากันให้ excel คำนวณจำนวนผลต่างไปที่แถวสุดท้ายของรหัสสินค้า
รบกวนอาจารย์แนะนำวิธีการทำงานดังกล่าว ด้วยครับ ขอบพระคุณอาจารย์มากครับ

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

Posted: Thu Aug 28, 2014 8:16 pm
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 ลงด้านล่าง

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

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

ทั้งนี้ได้ลองแนบไฟล์ตัวอย่างมาให้อาจารย์ดูครับ
รบกวนอาจารย์ด้วยครับ

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

Posted: Thu Aug 28, 2014 9:22 pm
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)))))

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

Posted: Thu Aug 28, 2014 9:51 pm
by tateep
ขอบพระคุณอาจารย์มากครับ จะลองนำไปปรับใช้ดูครับ

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

Posted: Tue Sep 02, 2014 10:00 pm
by tateep
เรียน รบกวนสอบถามอาจารย์เพิ่มเติมครับ

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

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

ขอขอบพระคุณอย่างสูง

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

Posted: Tue Sep 02, 2014 10:12 pm
by snasui
:D สามารถใช้สูตรเดิมได้ครับ โดยให้เรียงข้อมูลตามสาขาในลำดับแรก และเรียงราคาต่อหน่วยจากมากไปหาน้อยในลำดับถัดมา ลองปรับมาเองให้ตรงกับข้อมูลชุดใหม่ ติดตรงไหนค่อยถามกันต่อ

สำหรับสูตรนั้น ต้องใช้กับไฟล์ที่มีนามสกุลไฟล์เป็น .xlsx ไม่ใช่ .xls ครับ

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

Posted: Tue Sep 02, 2014 10:20 pm
by tateep
ขอบพระคุณอาจารย์มากครับ ที่ให้คำแนะนำที่มีคุณค่า

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

Posted: Sat Sep 06, 2014 10:11 pm
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 ให้หมด จึงจะคำนวณให้ตามความต้องการ
มีวิธีใด จะแก้ไขตรงจุดนี้ได้บ้างคะ

ขอบคุณมากค่ะ

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

Posted: Sat Sep 06, 2014 10:17 pm
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))))

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

Posted: Sat Sep 06, 2014 10:21 pm
by kchn_deaw
ได้แล้วค่ะ ขอบคุณมากค่ะ

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

Posted: Sat Sep 06, 2014 10:41 pm
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 ที่มีค่าว่างจริงๆ ต้องทำอย่างไรคะ

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

Posted: Sat Sep 06, 2014 11:07 pm
by snasui
:D เซลล์ว่างเปล่า Excel รับรู้ว่ามีค่าเป็น 0

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

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

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

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

=""

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

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

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

=If(Isblank(A1),"ว่างอย่างจริงแท้แน่นอน","ไม่ว่าง จะด้วยเหตุผลใดก็ตาม")

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

Posted: Sat Sep 06, 2014 11:23 pm
by kchn_deaw
ขอบคุณสำหรับคำตอบค่ะ

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