首页 > 解决方案 > 正确计算员工年龄

问题描述

我似乎无法在任何地方找到答案!我正在尝试计算报告中员工的年龄。

所以我有一个日期表,用于选择月份年份(2020 年 8 月)等,它返回该特定月份的数据。我有一个员工表,其中包含员工姓名、开始日期、结束日期、出生日期等。

我正在尝试计算从出生日期到所选月份年份的员工年龄。但它总是给我不正确的价值。

我想显示,当我选择 2020 年 7 月和 1991 年 8 月 15 日出生的员工时,这应该显示为 28。但是当我选择 2020 年 8 月时,这应该显示为 29。但无论哪个月份,我都只能返回 29我选择。

任何帮助,将不胜感激!

亚西尔


Employee Age =
VAR SelectedDate =
    MAX ( 'Date'[Date] )
VAR CurrentEmployee =
    MAX ( Query1[DATE_OF_BIRTH] )
RETURN
    DATEDIFF ( CurrentEmployee, SelectedDate, YEAR )

标签: powerbidax

解决方案


要计算员工在所选日期的年龄,一种简单的方法是计算两个日期之间的差值(以天为单位),然后将结果除以 365.25

Employee Age =
VAR SelectedDate =
    MAX( 'Date'[Date] )
VAR CurrentEmployee =
    MAX( Query1[DATE_OF_BIRTH] )
RETURN
     INT( ( SelectedDate - CurrentEmployee ) / 365.25 )

更精确的公式可以在 SQLBI.COM 的这篇文章中找到

从生日开始正确计算 DAX 中的年龄

usingDATEDIFF(CurrentEmployee, SelectedDate, YEAR)仅计算两个日期的年份之间的差异,这不适用于计算年龄。


推荐阅读