Page 1 of 1

ช่วยแก้ไข File นี้อีกครั้งครับ

Posted: Tue Aug 03, 2010 10:02 pm
by ekkaluk_suk
ไม่ทราบว่ายังจำไฟล์นี้ได้หรือเปล่า มีปัญหาว่า มีบาง cell ที่มันติดลบแล้วทำให้สูตรมันทำงานผิดพลาด
จะเขียนสูตรอย่างไร ไม่ให้มันติดค่าลบ บ้างครับ
ประเด็นคือ ยอดที่ได้ ต้องไม่เกิน target ด้านล่าง ถ้าเกิน ให้ขยับไปวันถัดไป

Re: ช่วยแก้ไข File นี้อีกครั้งครับ

Posted: Tue Aug 03, 2010 11:16 pm
by snasui
:D ลองตามนี้ครับ

ที่ AB6 คีย์

=MAX(0,IF($Z6-SUM($AA6:AA6)>=AB$29*$U6-SUM(AB$5:AB5),AB$29*$U6-SUM(AB$5:AB5),$Z6-SUM($AA6:AA6)))

Enter > Copy ไปทางขวาและลงด้านล่าง :mrgreen:

Re: ช่วยแก้ไข File นี้อีกครั้งครับ

Posted: Wed Aug 04, 2010 7:40 am
by ekkaluk_suk
ขอคำอธิบายของคำสั่ง MAX , MIN หน่อยซิครับ ว่าทำหน้าที่อย่างไร :D

Re: ช่วยแก้ไข File นี้อีกครั้งครับ

Posted: Wed Aug 04, 2010 10:58 am
by snasui
:D สำหรับ Min และ Max ดูตาม Link ด้านล่างจะอธิบายได้ละเอียดครับ

Max ==> http://office.microsoft.com/th-th/excel ... aspx?CTT=3
Min ==> http://office.microsoft.com/th-th/excel ... aspx?CTT=3

Re: ช่วยแก้ไข File นี้อีกครั้งครับ

Posted: Wed Aug 04, 2010 12:32 pm
by ekkaluk_suk
ตอนนี้ เจอปัญหาว่าถ้า Column Productivity เปลี่ยนไปจาก 100%
สูตรจะทำงานผิดพลาด ที่ถูกต้องเป็นการเรียงแบบตารางหมากฮอส
คือลงล่าง แล้วไปทางขวา เท่านั้น เมื่อมีการขึ้นแถวใหม่ โดยต่อ
จากตัวสุดท้ายเหมือน AF-AJ

Re: ช่วยแก้ไข File นี้อีกครั้งครับ

Posted: Wed Aug 04, 2010 7:12 pm
by snasui
:D อันนี้คงต้องทบทวนสูตรการคำนวณครับ

เพราะสูตรใช้ยอดสะสมมาคำนวณเทียบกับค่าเดี่ยวซึ่งเปลี่ยนไปเรื่อย ๆ (คอลัมน์ Z) หากค่าเดี่ยวคูณด้วยอัตราเปอร์เซ็นต์ที่กำหนดแล้วมีมากกว่ายอดสะสมก็จะแสดงผลต่าง โดยธรรมชาติของสูตรนี้มันเป็นเช่นนั้นครับ :mrgreen:

Re: ช่วยแก้ไข File นี้อีกครั้งครับ

Posted: Thu Aug 05, 2010 8:00 pm
by snasui
:D ผมปรับสูตรมาให้ใหม่ บังคับการแสดงผลโดยเพิ่มเงื่อนไขว่า

1. ถ้านับเซลล์คำนวณก่อนหน้าแล้วมีที่เกินกว่า 0 และ
2. เซลล์ก่อนหน้านี้เป็น 0 และ
3. จำนวนบรรทัดนับจากบรรทัดที่ 6 แล้วมากกว่า 1

เมื่อเ้ข้า 3 เงื่อนไขจะให้แสดงค่าเป็น 0

โดยคีย์ที่ AB6 ตามข้างล่างครับ

=IF(AND(ROWS(AB$6:AB6)>1,LOOKUP(9.99999999999999E+307,AB$4:AB5)=0,COUNTIF(AB$5:AB5,">0")>0),0,MAX(0,IF($Z6-SUM($AA6:AA6)>=AB$29*$U6-SUM(AB$5:AB5),AB$29*$U6-SUM(AB$5:AB5),$Z6-SUM($AA6:AA6))))

Enter > Copy ไปทางขวาและลงด้านล่าง :mrgreen:

Re: ช่วยแก้ไข File นี้อีกครั้งครับ

Posted: Thu Aug 05, 2010 9:01 pm
by ekkaluk_suk
ต้องเข้าห้องผ่าตัดอีกครั้งครับ

Re: ช่วยแก้ไข File นี้อีกครั้งครับ

Posted: Fri Aug 06, 2010 5:00 am
by snasui
:lol: ช่วยแสดงข้อมูลเพิ่มเติมด้วยครับว่ามีประเด็นใดที่ยังไม่ถูกต้อง เพราะดูการแสดงผลแล้วน่าจะใช้ได้แล้วครับ :mrgreen:

Re: ช่วยแก้ไข File นี้อีกครั้งครับ

Posted: Fri Aug 06, 2010 10:11 pm
by ekkaluk_suk
JOB ถัดไปต้องต่อวันสุดท้ายของงานแรกที่จบเท่านั้นครับ จึงจะถูกต้อง
เหมือน column AF , AH

Re: ช่วยแก้ไข File นี้อีกครั้งครับ

Posted: Fri Aug 06, 2010 11:08 pm
by snasui
:D ลองตามนี้ครับ

๑. แทรกคอลัมน์ DS โดยให้เป็นคอลัมน์ว่าง

๒. ที่ AB6 คีย์

=IF(AND(ROWS(AB$6:AB6)>1,LOOKUP(9.99999999999999E+307,AB$4:AB5)=0,COUNTIF(AB$5:AB5,">0")>0),0,IF(AC5<>0,0,MAX(0,IF($Z6-SUM($AA6:AA6)>=AB$29*$U6-SUM(AB$5:AB5),AB$29*$U6-SUM(AB$5:AB5),$Z6-SUM($AA6:AA6)))))

Enter > Copy ไปทางขวาถึง DR และลงด้านล่าง :mrgreen:

Re: ช่วยแก้ไข File นี้อีกครั้งครับ

Posted: Sat Aug 07, 2010 8:17 am
by ekkaluk_suk
น่าจะใช้ได้แล้วนะครับ อย่างไรขอทดสอบอย่างละเอียดอีกครั้ง ถ้าไม่ลบกวนเกินไปช่วยอธิบาย
สูตรที่ใช้หน่อยได้ไหมครับ ยิ่ง 9.999999999+307 ยิ่ง งงใหญ่ ว่าทำหน้าที่อย่างไร

Re: ช่วยแก้ไข File นี้อีกครั้งครับ

Posted: Sat Aug 07, 2010 9:39 am
by snasui
:D 9.99999999999999e307 คือค่าที่ใหญ่ที่สุดที่สามารถคีย์ลงในเซลล์ได้ สามารถดูได้ที่ link ด้านล่าง โดยคลิกหัวข้อ Calculation specifications

http://office.microsoft.com/en-us/excel ... 99291.aspx

ดูตัวอย่างการใช้งานเพิ่มเติมได้ที่

http://snasui.blogspot.com/2008/11/blog-post_09.html

การนำ 9.99999999999999e307 มาใช้ในฟังก์ชั่น Lookup เป็นการนำมาประยุกต์ใช้เพื่อหาค่าสุดท้ายที่เป็นตัวเลขในช่วงข้อมูลที่กำหนดครับ

สำหรับความหมายของสูตรในความเห็นข้างบน มีความหมายว่า ถ้าเข้าเงื่อนไข ๓ ข้อตามด้านล่าง
snasui wrote::D ผมปรับสูตรมาให้ใหม่ บังคับการแสดงผลโดยเพิ่มเงื่อนไขว่า

1. ถ้านับเซลล์คำนวณก่อนหน้าแล้วมีที่เกินกว่า 0 และ
2. เซลล์ก่อนหน้านี้เป็น 0 และ
3. จำนวนบรรทัดนับจากบรรทัดที่ 6 แล้วมากกว่า 1

เมื่อเข้า 3 เงื่อนไขจะให้แสดงค่าเป็น 0
ส่วนที่เพิ่มเข้ามาอีกเงื่อนไขคือที่ระบายสีอักษรไว้ด้านล่าง

=IF(AND(ROWS(AB$6:AB6)>1,LOOKUP(9.99999999999999E+307,AB$4:AB5)=0,COUNTIF(AB$5:AB5,">0")>0),0,IF(AC5<>0,0,MAX(0,IF($Z6-SUM($AA6:AA6)>=AB$29*$U6-SUM(AB$5:AB5),AB$29*$U6-SUM(AB$5:AB5),$Z6-SUM($AA6:AA6)))))

รวมเป็น ๔ เงื่อนไข

ถ้าเข้า ๔ เงื่อนไขนี้ให้แสดงค่า ๐ หากไม่เข้าเงื่อนไขก็ให้แสดงค่าที่สูงที่สุดระหว่าง ๐ และผลลัพธ์ที่ได้จากสูตรคำนวณครับ :mrgreen:

Re: ช่วยแก้ไข File นี้อีกครั้งครับ

Posted: Sat Aug 07, 2010 1:56 pm
by ekkaluk_suk
ในที่สุดกำแพงปัญหา ก้อถูกทำลาย โดยคนควนอีกแล้ว
ขอบคุณมาก ๆ ครับ