อยากให้ วันครบกำหนด(~DUEDAT) เฉลี่ยDUE ให้

หากท่านใดมีข้อสงสัยหรือคำถามเกี่ยวกับการใช้งานโปรแกรม Express สามารถเข้ามาสอบถามได้ที่นี่ครับ

Moderator: Sutas, CO-Admin, Global Moderator

อยากให้ วันครบกำหนด(~DUEDAT) เฉลี่ยDUE ให้

โพสต์โดย MARS » เสาร์ ก.ค. 22, 2006 10:23 am

ตัวอย่าง

กรณีใบวางบิลมี 3 รายการ วันครบกำหนดจะเป็นดังนี้
ครบกำหนด (~DUEDAT)
05/07/49
10/07/49
15/07/49



*** กรุณาสั่งจ่ายเช็คไม่เกิน 10/07/49 (~????????)

.......................................................................................................
หมายเหตุ : จะมีกี่บิลก็ตาม ตัวแปร (~????????) ก็จะหาค่าเฉลี่ยจาก(~DUEDAT) ออกมาให้ หรือจะมีวิธีใด จะทำให้ได้ผลลัพธ์ตามต้องการ

ผมไม่แน่ใจว่าจะต้องตั้งตัวแปร และเขียนสูตรอย่างไร รบกวนช่วยแนะนำด้วยคับ ขอบคุณครับ
แก้ไขล่าสุดโดย MARS เมื่อ เสาร์ ก.ค. 22, 2006 10:54 am, แก้ไขแล้ว 1 ครั้ง
MARS
 

Re:อยากให้ วันครบกำหนด(~DUEDAT) เฉลี่ยDUE ให้

โพสต์โดย ASAN » เสาร์ ก.ค. 22, 2006 10:50 am

- จริงๆ ก็สามารถทำได้นะครับ แต่มันแปลกใจที่ว่า ถ้าเป็นค่าเฉลี่ยตามตัวอย่างแล้ว จะมีลูกค้ารายไหนชำระเงินก่อนถึง DUE ละครับ เพราะค่าเฉลี่ยต้องมาก่อนวัน DUE สุดท้ายไงครับ
- คงต้องรบกวนโทรเข้าหาฝ่าย support ดีกว่านะครับ
ภาพประจำตัวสมาชิก
ASAN
Hero Member
Hero Member
 
โพสต์: 3477
ลงทะเบียนเมื่อ: อังคาร ก.ค. 15, 2003 9:50 am

Re:อยากให้ วันครบกำหนด(~DUEDAT) เฉลี่ยDUE ให้

โพสต์โดย MARS » เสาร์ ก.ค. 22, 2006 11:06 am

เรียน คุณอาซัน

มันเป็นเรื่องของเครดิตที่ต้องดูแลอย่างไกล้ชิด และตัวแปรเฉลี่ยที่ผมต้องการ จะเป็นตัวบอกผู้แทนขาย หรือพนักงานเก็บเข็ค เวลาไปเก็บเช็ค ว่าลูกค้าจะต้องจ่ายเช็ค ไม่เกินวันที่ตามที่ระบุเอาไว้(นั่นก็คือตีได้ 10/07/49 งัยคับ) หากเกินฝ่ายบัญชีจะไม่ให้ผ่าน น่ะครับ

หมายเหตุ : จากตัวอย่าง ลูกค้ามักจะจ่ายเช็ค 15/07/49 หรือไม่ก็ สิ้นเดือน7 (คือบัญชีมันเกินDUE โดยเฉลี่ย) ผู้แทนขาย กับ พนักงานเก็บเช็ค ก็ไม่ละเอียดพอที่จะคำนวณได้
อันนี้เป็นระเบียบของบริษัทฯ หากตีเช็คเกินนี้ ก็จะมีมาตราการในการคิดดอกเบี้ยเป็นวันต่อไป

รบกวนแนะนำด้วยครับ
แก้ไขล่าสุดโดย MARS เมื่อ เสาร์ ก.ค. 22, 2006 11:18 am, แก้ไขแล้ว 1 ครั้ง
MARS
 

Re:อยากให้ วันครบกำหนด(~DUEDAT) เฉลี่ยDUE ให้

โพสต์โดย ASAN » เสาร์ ก.ค. 22, 2006 1:51 pm

อ๋อ.. ครับ ถ้ายังงั้นลองติดต่อที่ฝ่าย support ของบริษัทนะ เขาทำได้
- ตอนนี้ผมมาทำงานอยู่ต่างจังหวัด ไม่สะดวกจะแนะนำครับ

*ผมจะแนะนำคร่าวๆนะครับว่าต้องทำอย่างไร เผื่อคุณทำได้เอง หรืออาจเป็น Sitthidech,ppitaksu มาขยายความให้อีกที
1. สร้างตัวแปรนับ Item ก่อน ถ้ามีอยู่แล้วก็ไม่ต้องทำ
2. สร้างตัวแปรแปลงค่าวันที่ให้เป็นแบบตัวเลข
3. สร้างตัวแปรนับค่าจำนวนของวันรวม และหารด้วยตัว Item
4. ได้ค่าเฉลี่ยแล้วแปลงค่ากลับให้เป็นวันที่ แล้ววางในตำแหน่งที่ต้องการ

* การแปลงค่าวันที่ให้เป็นตัวเลข เช่น
- วันนี้วันที่ 22/07/2006 จะมีค่าตัวเลขเท่ากับ 38,920 วัน
- วันที่ 22/07/2549 จะมีค่าเท่ากับ 237,247 วัน
- ซึ่งคอมพิวเตอร์จะนับวันโดยเริ่มมาจาก 01/01/1900 เป็นวันแรก ซึ่งถือเป็นวันเกิดเครื่องคอมด้วยไงครับ(ถ้าผมจำไม่ผิดนะ)
ภาพประจำตัวสมาชิก
ASAN
Hero Member
Hero Member
 
โพสต์: 3477
ลงทะเบียนเมื่อ: อังคาร ก.ค. 15, 2003 9:50 am

Re:อยากให้ วันครบกำหนด(~DUEDAT) เฉลี่ยDUE ให้

โพสต์โดย ppitaksu » พุธ ก.ค. 26, 2006 11:17 pm

ถ้าให้ละเอียดเพิ่มขึ้น หน้าจะใช้ ยอดเงิน เป็นตัว ถ่วงน้ำหนักด้วยนะครับ จะยิ่งดี เพราะ ยิ่งยอดเงินใด มีค่ามากย่อมทำให้มีความสำคัญในการกำหนดวันนั้นมากกว่า ดิว อื่นๆ ตามความสัมพันธ์นี้
DTOS(avr.duedate) = RoundingToZeroDigit of [ ( {Sumation [(amt(i)*DTOS(duedate(i))]} / [Sumation(amt(i))] ) ]
จากนั้นใช้ ฟังก์ชันในการ คอนเวิร์ส ค่ากลับมาเป็น average duedate น่าจะใกล้เคียงความต้องการมากที่สุด ในแง่ของการเงิน
ppitaksu
Sr. Member
Sr. Member
 
โพสต์: 424
ลงทะเบียนเมื่อ: พฤหัสฯ. ม.ค. 15, 2004 11:28 pm

Re:อยากให้ วันครบกำหนด(~DUEDAT) เฉลี่ยDUE ให้

โพสต์โดย sinyorita » พฤหัสฯ. ก.ค. 27, 2006 10:08 am

จำได้ว่าตอนเรียนครูซันเคยสอนวิธีเปลี่ยนฟังค์ชั่นค่าวันที่ให้เป็นตัวอักษรและให้เป็นเลข จากตัวอย่างไฟล์ใบวางบิลนี้คือ .- Val(DTOS(ARTRN->DUEDAT)) ดิฉันลองทำแล้วได้คำตอบอย่างนี้ค่ะ
05/07/49 = 20060705
10/07/49 = 20060710
15/07/49 = 20060715
-------------
เมื่อนำ 3 คำตอบมารวมกันได้ = 60182130
แล้วหารด้วยเอกสาร 3 ใบ = 20060710
sinyorita
 

Re:อยากให้ วันครบกำหนด(~DUEDAT) เฉลี่ยDUE ให้

โพสต์โดย ppitaksu » อาทิตย์ ก.ค. 30, 2006 10:13 pm

[quote="ppitaksu"]
ถ้าให้ละเอียดเพิ่มขึ้น หน้าจะใช้ ยอดเงิน เป็นตัว ถ่วงน้ำหนักด้วยนะครับ จะยิ่งดี เพราะ ยิ่งยอดเงินใด มีค่ามากย่อมทำให้มีความสำคัญในการกำหนดวันนั้นมากกว่า ดิว อื่นๆ ตามความสัมพันธ์นี้
DTOS(avr.duedate) = RoundingToZeroDigit of [ ( {Sumation [(amt(i)*DTOS(duedate(i))]} / [Sumation(amt(i))] ) ]
จากนั้นใช้ ฟังก์ชันในการ คอนเวิร์ส ค่ากลับมาเป็น average duedate น่าจะใกล้เคียงความต้องการมากที่สุด ในแง่ของการเงิน
[/quote]

ปัญหาอาจไม่ง่าย เท่าการคำนวณทางคณิตศาสตร์ข้างต้น เพราะ DTOS ให้ค่าตัวเลขออกมาไม่ใช่เลขฐาน10 แต่เป็นตัวเลขของวันเวลาแบบเรียง ปีเดือนวัน ซึ่งไม่อาจใช้วิธีการคำนวณข้างต้นได้ ต้องหาทางเปลี่ยน ให้เป็นวันเวลาแบบลำดับการนับจากวันเดือนปีเริ่มต้น 1900 ตามที่คุณอาซันได้กล่าวไป ในแบบนี้แล้ว จึงจะใช้ การคำนวณทางคณิตศาสตร์ข้างต้นได้ผลที่ต้องการ
แก้ไขล่าสุดโดย ppitaksu เมื่อ อาทิตย์ ก.ค. 30, 2006 10:14 pm, แก้ไขแล้ว 1 ครั้ง
ppitaksu
Sr. Member
Sr. Member
 
โพสต์: 424
ลงทะเบียนเมื่อ: พฤหัสฯ. ม.ค. 15, 2004 11:28 pm

Re:อยากให้ วันครบกำหนด(~DUEDAT) เฉลี่ยDUE ให้

โพสต์โดย ppitaksu » พฤหัสฯ. ส.ค. 10, 2006 10:10 pm

คิดไปคิดมาแล้ว คิดว่าถ้าใช้ ตัวแปร CR จากบิลแต่ละใบมาทำการเฉลี่ยถ่วงน้ำหนักโดยยอดเงินแต่ละใบ แล้วได้ Average CR จากนั้น นำ DocDate0+Aver.CR=Aver.Duedate ก็เข้าหลักการที่กล่าวไว้ตอนแรกเลยล่ะครับ อย่างไรก็ตามขอทิ้งท้ายไว้ว่า ตัวแปรเวลาในสมการทางการเงินไม่ได้แปรผันเชิงเส้นตรงอย่างที่เรานำมาเฉลี่ยข้างต้น แต่เป็นการแปรผันในลักษณะการยกกำลัง ยิ่งไกลออกไปในอนาคตยิ่งทำให้ค่าของเงินน้อยลงเมื่อเทียบกับเงินปัจจุบัน PV = FV/(1+r)^t การหาค่าเฉลี่ย t แบบ precise จึงไม่ใช่เรื่องง่ายเลย
ppitaksu
Sr. Member
Sr. Member
 
โพสต์: 424
ลงทะเบียนเมื่อ: พฤหัสฯ. ม.ค. 15, 2004 11:28 pm


ย้อนกลับไปยัง ถาม-ตอบปัญหาเกี่ยวกับโปรแกรม Express

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และ บุคคลทั่วไป 10 ท่าน