ใช้ Excel คำนวณอายุเป็น ปี เดือน วัน รวมไว้ในเซลล์เดียวกัน

ถ้าต้องการคำนวณอายุของบุคคลให้แสดงผลแบบ ปี เดือน วัน เราสามารถใช้ฟังก์ชัน IF() รวมกับฟังก์ชัน DATEDIF() มาช่วยเราทำงานได้

สมมติว่าเราต้องการข้อมูลดังภาพด่านล่าง

จากตัวอย่าง ถ้าอายุเป็นจำนวนปีบริบูรณ์ เราจะแสดงเฉพาะปี ถ้าอายุมีเศษเป็นเดือน แต่ไม่มีเศษเป็นวัน เราก็จะแสดงเฉพาะปีและเดือน สรุปว่า แสดงเฉพาะข้อมูลที่ไม่เป็น 0 นั่นเอง

จากข้อมูลตัวอย่าง เราเก็บข้อมูลวันเกิดไว้ที่คอลัมน์ B เราจะเขียนสูตรคำนวณอายุของคนแรกก่อน โดยการเขียนสูตรที่เซลล์ C2 ดังนี้

=IF(DATEDIF(B2, TODAY(), "Y") > 0, DATEDIF(B2, TODAY(), "Y") & " ปี ", "") & IF(DATEDIF(B2, TODAY(), "YM") > 0, DATEDIF(B2, TODAY(), "YM") & " เดือน ", "") & IF(DATEDIF(B2, TODAY(), "MD") > 0, DATEDIF(B2, TODAY(), "MD") & " วัน", "")

จากสูตร ขออธิบายไล่ตามลำดับดังนี้

  • IF(DATEDIF(B2, TODAY(), "Y") > 0, DATEDIF(B2, TODAY(), "Y") & " ปี ", "") นำวันเกิดมาเปรียบเทียบกับวันปัจจุบัน (ฟังก์ชัน TODAY()) แล้วแสดงผลออกมาเป็นตัวเลขจำนวนปี ถ้าจำนวนปีมากกว่า 0 ให้แสดงจำนวนปี ตามด้วยคำว่า “ปี” แต่ถ้าไม่ใช่ ก็ไม่ต้องแสดงข้อความใด ๆ
  • IF(DATEDIF(B2, TODAY(), "YM") > 0, DATEDIF(B2, TODAY(), "YM") & " เดือน ", "") นำวันเกิดมาเปรียบเทียบกับวันปัจจุบัน (ฟังก์ชัน TODAY()) แล้วแสดงผลออกมาเป็นตัวเลขจำนวนเดือนที่เป็นเศษจากปี ถ้าจำนวนเดือนมากกว่า 0 ให้แสดงจำนวนเดือน ตามด้วยคำว่า “เดือน” แต่ถ้าไม่ใช่ ก็ไม่ต้องแสดงข้อความใด ๆ
  • IF(DATEDIF(B2, TODAY(), "MD") > 0, DATEDIF(B2, TODAY(), "MD") & " วัน", "") นำวันเกิดมาเปรียบเทียบกับวันปัจจุบัน (ฟังก์ชัน TODAY()) แล้วแสดงผลออกมาเป็นตัวเลขจำนวนวันที่เป็นเศษจากเดือน ถ้าจำนวนวันมากกว่า 0 ให้แสดงจำนวนวัน ตามด้วยคำว่า “วัน” แต่ถ้าไม่ใช่ ก็ไม่ต้องแสดงข้อความใด ๆ
  • เชื่อมเงื่อนไขทั้ง 3 ข้างต้นด้วยเครื่องหมาย &

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

เมื่อคัดลอกสูตรไปยังเซลล์อื่น ๆ ก็จะได้ข้อมูลที่สมบูรณ์แบบตามที่เราต้องการ

ลองนำไปปรับใช้ดูนะครับ