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

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

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

ใช้ 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 ข้างต้นด้วยเครื่องหมาย &

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

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

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