创建包含动态值的月度图表
Create a monthly graph containing dynamical values
我几个小时前发现了 PowerBI,我正在尝试根据我的数据呈现一个非常复杂的新图形。
我的主题:
我在名为 Suivis de mission
的 table 中有一份来自我的社会的员工名单,其中包含一些信息(姓名、位置、资历......)。
我专注于资历专栏。我必须每月显示工龄少于 3 年、多于 3 年、多于 5 年和多于 8 年的员工人数。
这个字段是通过下一个公式通过另一个字段(date_de_changement_de_mission
)计算的:
(today - date_de_changement_de_mission) / 365
它根据工龄给了我一个数字(上面是法语)
我的实验作品:
我试着做了一些东西,这就是我目前所做的。
我创建了一个新的table,其中包含月份(string column1 和int column2),第三列是根据每个月工龄少于3 年的员工人数计算的。
这是我为获取数字而尝试实施的公式,但我有很多错误:
Nbr_inf_3_ans = SUMX('Suivis de mission';
IF(
'Suivis de mission'[Activité] = "En poste";1 &&
DIVIDE(
DATEDIFF(01/01/2019;'Suivis de mission'[Date de changement de mission].[Date];DAY);365)
;"null"))
公式必须包含几个条件:
- 字段
'Suivis de mission'[Activité]
必须是:"En poste"
- 在我的 table 中循环每个月(如果没有指定月份,则显示 0)
有点迷茫
假设:
- 您想在 Power Query 编辑器中完成
- 您已经创建了 "seniority" 和 "month" ("mois*") 列
- 你不担心年份(你真的只是按月分组)
那么这些步骤可能会帮助您开始:
- 使用以下公式创建自定义列名称 "IsLesserThan3":
if [Seniority] < 3 and [Activité] = "En poste" than 1 else 0
- 更改公式以包含关于 "if the month is not targed" 的要求(抱歉,我不明白它的意思)。
- 选择"Transform"(menu),然后选择"Group By",然后选择basic,设置group by = month,给它起个名字("Nbr_inf_3_ans"),设置operation = sum,设置column =小于3
已编辑
新的额外假设:
- 第二个 table 带有月份描述和月份编号,您想在那里创建新列 ("Nbr_inf_3_ans") 并填充它,可能是为了授予所有月份(包括那些没有出现的人)。
考虑到这个新假设,方法是加入两个 table 并做同样的事情:
- 使用以下公式创建名为 "IsLesserThan3" 的自定义列:
if [Seniority] < 3 and [Activité] = "En poste" than 1 else 0
- 更改公式以包含关于 "if the month is not targed" 的要求(抱歉,我不明白它的意思)。
- 将新列的类型更改为整数(单击列名称左侧的图标)。
- 使用以下公式创建名为 "Mois_int" 的自定义列:
Date.Month([date_de_changement_de_mission])
- 然后按月加入 table。为此,select 另一个 table 并选择 "Transform"(菜单),然后选择 "Merge",然后让第二个 table selected 和select 第一个 table 作为 "bottom" table,select 列 "Mois_int" 在两个 table 中,设置 "join kind" = "left outer".
- PowerBI 将创建一个新列,其名称是第一个 table 的名称。单击该列中的箭头图标 header 并选择 "aggregate" 并仅标记 "sum of LesserThan3".
我几个小时前发现了 PowerBI,我正在尝试根据我的数据呈现一个非常复杂的新图形。
我的主题:
我在名为 Suivis de mission
的 table 中有一份来自我的社会的员工名单,其中包含一些信息(姓名、位置、资历......)。
我专注于资历专栏。我必须每月显示工龄少于 3 年、多于 3 年、多于 5 年和多于 8 年的员工人数。
这个字段是通过下一个公式通过另一个字段(date_de_changement_de_mission
)计算的:
(today - date_de_changement_de_mission) / 365
它根据工龄给了我一个数字(上面是法语)
我的实验作品:
我试着做了一些东西,这就是我目前所做的。
我创建了一个新的table,其中包含月份(string column1 和int column2),第三列是根据每个月工龄少于3 年的员工人数计算的。
这是我为获取数字而尝试实施的公式,但我有很多错误:
Nbr_inf_3_ans = SUMX('Suivis de mission';
IF(
'Suivis de mission'[Activité] = "En poste";1 &&
DIVIDE(
DATEDIFF(01/01/2019;'Suivis de mission'[Date de changement de mission].[Date];DAY);365)
;"null"))
公式必须包含几个条件:
- 字段
'Suivis de mission'[Activité]
必须是:"En poste" - 在我的 table 中循环每个月(如果没有指定月份,则显示 0)
有点迷茫
假设:
- 您想在 Power Query 编辑器中完成
- 您已经创建了 "seniority" 和 "month" ("mois*") 列
- 你不担心年份(你真的只是按月分组)
那么这些步骤可能会帮助您开始:
- 使用以下公式创建自定义列名称 "IsLesserThan3":
if [Seniority] < 3 and [Activité] = "En poste" than 1 else 0
- 更改公式以包含关于 "if the month is not targed" 的要求(抱歉,我不明白它的意思)。
- 选择"Transform"(menu),然后选择"Group By",然后选择basic,设置group by = month,给它起个名字("Nbr_inf_3_ans"),设置operation = sum,设置column =小于3
已编辑
新的额外假设:
- 第二个 table 带有月份描述和月份编号,您想在那里创建新列 ("Nbr_inf_3_ans") 并填充它,可能是为了授予所有月份(包括那些没有出现的人)。
考虑到这个新假设,方法是加入两个 table 并做同样的事情:
- 使用以下公式创建名为 "IsLesserThan3" 的自定义列:
if [Seniority] < 3 and [Activité] = "En poste" than 1 else 0
- 更改公式以包含关于 "if the month is not targed" 的要求(抱歉,我不明白它的意思)。
- 将新列的类型更改为整数(单击列名称左侧的图标)。
- 使用以下公式创建名为 "Mois_int" 的自定义列:
Date.Month([date_de_changement_de_mission])
- 然后按月加入 table。为此,select 另一个 table 并选择 "Transform"(菜单),然后选择 "Merge",然后让第二个 table selected 和select 第一个 table 作为 "bottom" table,select 列 "Mois_int" 在两个 table 中,设置 "join kind" = "left outer".
- PowerBI 将创建一个新列,其名称是第一个 table 的名称。单击该列中的箭头图标 header 并选择 "aggregate" 并仅标记 "sum of LesserThan3".