มาดูหลักในการคิดคำนวณผลต่างของเดือนระหว่างวันเริ่มต้นถึงวันสิ้นสุดกันครับ จากบทความที่ผ่านมาได้กล่าวถึงการใช้ฟังก์ชัน Date ใน Excel ไปแล้วมาดูกันต่อเลยในส่วนผลต่างของเดือน
3 แนวคิดก็เริ่มจาก นำลำดับเดือนในวันสิ้นสุดลบด้วยลำดับเดือนในวันเริ่มต้น และพิจารณาผลต่างที่คำนวณได้ดังนี้
3.1 หากผลต่างมีค่ามากกว่า 0 แสดงว่าเกินรอบปีไปแล้ว และให้พิจารณาเปรียบเทียบลำดับวันของวันสิ้นสุดและวันเริ่มต้น โดยมีเงื่อนไขว่า
3.1.1 หากลำดับวันในของวันสิ้นสุดมากกว่าหรือเท่ากับวันเริ่มต้นหมายถึงว่าครบรอบเดือนใหม่แล้ว ดังนั้น ผลต่างของเดือนจะเท่ากับ ลำดับเดือนในวันสิ้นสุดลบด้วยลำดับเดือน
3.1.2 หากลำดับวันในของวันสิ้นสุดน้อยกว่าวันเริ่มต้นหมายถึงว่ายังไม่ครบรอบเดือนใหม่ ดังนั้น ผลต่างของเดือนจะเท่ากับ ลำดับเดือนในวันสิ้นสุดลบด้วยลำดับเดือนลบด้วย 1
3.2 หากผลต่างมีค่าน้อยกว่าหรือเท่ากับ 0 แสดงว่ามีโอกาสที่จะยังไม่ถึงรอบปีหรือครบรอบปี ให้พิจารณาเปรียบเทียบลำดับวันของวันสิ้นสุดและวันเริ่มต้น โดยมีเงื่อนไขว่า
3.2.1 หากลำดับวันในของวันสิ้นสุดมากกว่าหรือเท่ากับวันเริ่มต้นหมายถึงว่าครบรอบเดือนแล้ว ให้พิจารณาค่าผลต่างลำดับเดือน + 12 หาก มีค่าเท่ากับ 12 หมายถึงว่าครบรอบปีพอดี ดังนั้น ผลต่างลำดับเดือน เท่ากับ 0 หากมีค่าไม่เท่ากับ 12 ผลต่างลำดับเดือนเท่ากับ ค่าผลต่างลำดับเดือน + 12
3.2.2 หากลำดับวันในของวันสิ้นสุดมากกว่าหรือเท่ากับวันเริ่มต้นหมายถึงว่ายังไม่ครบรอบเดือนถัดไปและไม่ครบรอบปีด้วยดังนั้น ผลต่างลำดับเดือนเท่ากับ ค่าผลต่างลำดับเดือน + 11
จากที่ได้อธิบายมาข้างต้นเราสามารถใช้ฟังก์ชัน date และ ฟังก์ชันในการตรวจสอบเงื่อนไขของ Excel เข้าช่วยในการคำนวณผลต่างของเดือน แสดงได้ดังภาพที่ 1
ภาพที่ 1 การคำนวณ Month Diff ด้วยสูตร Excel
ท่านผู้อ่านลองทดสอบเปลี่ยนวันเริ่มต้นและวันสิ้นสุดในตารางของ Excel เพื่อตรวจสอบความถูกต้องของสูตร Excel ที่เราได้พัฒนาขึ้นนะครับ หากพบ BUG บอกผมด้วยนะครับเพราะเรากำลังเรียนรู้ไปด้วยกันครับ
จากสูตร Excel ที่ได้นำเสนอในเซลล์ C9:C13 จะพบว่าเป็นการพัฒนาสูตรตามหลักการคำนวณที่เราได้คิดไว้ครับ เพราะฉะนั้น Excel จะคำนวณผลการแนวคิดของเรานั่นเองเพียงแต่ Excel มีความรวดเร็วและถูกต้องในคำนวณพื้นฐานที่ดีกว่าเราครับ เดี๋ยวบทความต่อไปจะนำเสนอการคำนวณผลต่างของวันที่เหลือจากการนับลำดับปีและลำดับเดือนแล้วครับแน่นอนยังเป็นการใช้สูตรใน Excel อยู่ครับ ท่านใดสนใจจะเห็นการเขียน vba คงต้องรอบทความสุดท้ายของอนุกรมชุดนี้ครับ สวัสดีครับ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น