DAX Error: Expressions that yield variant data-type cannot be used to define calculated columns
DAX Error: Expressions that yield variant data-type cannot be used to define calculated columns
伙计们,我又回来了,有一个新问题...我不明白这个 power bi,excel 哈哈。
我收到以下错误:
Expressions that yield variant data-type cannot be used to define
calculated columns.
SLASERV1 = IF('DIARIO Backlog de incidencias'[Prioridad];"";
IF(OR('DIARIO Backlog de incidencias'[Prioridad]="Crítica";'DIARIO Backlog de incidencias'[Prioridad]="Máxima");4-('DIARIO Backlog de incidencias'[Horas totales sin Pending]*24);
IF(OR('DIARIO Backlog de incidencias'[Prioridad]="Alta";'DIARIO Backlog de incidencias'[Prioridad]="High");8-('DIARIO Backlog de incidencias'[Horas totales sin Pending]*24);
IF(OR('DIARIO Backlog de incidencias'[Prioridad]="Media";'DIARIO Backlog de incidencias'[Prioridad]="Medium");24-('DIARIO Backlog de incidencias'[Horas totales sin Pending]*24);
IF(OR('DIARIO Backlog de incidencias'[Prioridad]="Baja";'DIARIO Backlog de incidencias'[Prioridad]="Low");48-('DIARIO Backlog de incidencias'[Horas totales sin Pending]*24)
)))))
POWER BI 列
如何在excel中完成(P列是我需要的结果):
=IF(K3<>"";IF(E3="";"";
IF(OR(E3="Crítica";E3="Máxima";E3="Urgent");4-(Q3*24);
IF(OR(E3="Alta";E3="High");8-(Q3*24);
IF(OR(E3="Media";E3="Medium");24-(Q3*24);
IF(OR(E3="Baja";E3="Low");48-(Q3*24)
))))))
我做错了什么?
这个错误是不言自明的,不是吗?
Powerbi 列需要单一数据类型,即数字或文本。不能两者都做。
如果您想要单列,请将 else 部分包装在 Format 函数中,如下所示:
format(48-('DIARIO Backlog de incidencias'[Horas totales sin Pending]*24), "")
更多关于格式的信息:https://docs.microsoft.com/en-us/dax/format-function-dax
但我建议您创建两列,一列带有标签,第二列带有数字
错误似乎与第一个 IF
语句有关:
SLASERV1 = IF('DIARIO Backlog de incidencias'[Prioridad];"";
您在某些情况下返回文本,在其他情况下返回数字。
但是:像这样嵌套 IF
语句并不是最好的方法 - SWITCH
语句会更清楚。类似于:
SLASERV1 =
VAR SLA_Horas =
SWITCH (
'DIARIO Backlog de incidencias'[Prioridad],
"Crítica", 4,
"Máxima", 4,
"Alta", 8,
"High", 8,
"Media", 24,
"Medium", 24,
"Baja", 48,
"Low", 48,
BLANK()
)
RETURN
IF (
ISBLANK ( SLA_Horas ),
BLANK(),
SLA_Horas - ( 'DIARIO Backlog de incidencias'[Horas totales sin Pending] * 24 )
)
更好的办法是有一个单独的 table 来维护优先级/SLA 时间。类似于:
在字段 Prioridad
上创建此 table 和您的事实 table 之间的关系,然后您可以使用以下方法创建计算列:
SLASERV2 = RELATED ( SLA[SLA Hours] ) - ( 'DIARIO Backlog de incidencias'[Horas totales sin Pending] * 24 )
有关示例 PBIX 文件,请参阅 https://pwrbi.com/so_55396655/。
伙计们,我又回来了,有一个新问题...我不明白这个 power bi,excel 哈哈。
我收到以下错误:
Expressions that yield variant data-type cannot be used to define calculated columns.
SLASERV1 = IF('DIARIO Backlog de incidencias'[Prioridad];"";
IF(OR('DIARIO Backlog de incidencias'[Prioridad]="Crítica";'DIARIO Backlog de incidencias'[Prioridad]="Máxima");4-('DIARIO Backlog de incidencias'[Horas totales sin Pending]*24);
IF(OR('DIARIO Backlog de incidencias'[Prioridad]="Alta";'DIARIO Backlog de incidencias'[Prioridad]="High");8-('DIARIO Backlog de incidencias'[Horas totales sin Pending]*24);
IF(OR('DIARIO Backlog de incidencias'[Prioridad]="Media";'DIARIO Backlog de incidencias'[Prioridad]="Medium");24-('DIARIO Backlog de incidencias'[Horas totales sin Pending]*24);
IF(OR('DIARIO Backlog de incidencias'[Prioridad]="Baja";'DIARIO Backlog de incidencias'[Prioridad]="Low");48-('DIARIO Backlog de incidencias'[Horas totales sin Pending]*24)
)))))
POWER BI 列
如何在excel中完成(P列是我需要的结果):
=IF(K3<>"";IF(E3="";"";
IF(OR(E3="Crítica";E3="Máxima";E3="Urgent");4-(Q3*24);
IF(OR(E3="Alta";E3="High");8-(Q3*24);
IF(OR(E3="Media";E3="Medium");24-(Q3*24);
IF(OR(E3="Baja";E3="Low");48-(Q3*24)
))))))
我做错了什么?
这个错误是不言自明的,不是吗?
Powerbi 列需要单一数据类型,即数字或文本。不能两者都做。
如果您想要单列,请将 else 部分包装在 Format 函数中,如下所示:
format(48-('DIARIO Backlog de incidencias'[Horas totales sin Pending]*24), "")
更多关于格式的信息:https://docs.microsoft.com/en-us/dax/format-function-dax
但我建议您创建两列,一列带有标签,第二列带有数字
错误似乎与第一个 IF
语句有关:
SLASERV1 = IF('DIARIO Backlog de incidencias'[Prioridad];"";
您在某些情况下返回文本,在其他情况下返回数字。
但是:像这样嵌套 IF
语句并不是最好的方法 - SWITCH
语句会更清楚。类似于:
SLASERV1 =
VAR SLA_Horas =
SWITCH (
'DIARIO Backlog de incidencias'[Prioridad],
"Crítica", 4,
"Máxima", 4,
"Alta", 8,
"High", 8,
"Media", 24,
"Medium", 24,
"Baja", 48,
"Low", 48,
BLANK()
)
RETURN
IF (
ISBLANK ( SLA_Horas ),
BLANK(),
SLA_Horas - ( 'DIARIO Backlog de incidencias'[Horas totales sin Pending] * 24 )
)
更好的办法是有一个单独的 table 来维护优先级/SLA 时间。类似于:
在字段 Prioridad
上创建此 table 和您的事实 table 之间的关系,然后您可以使用以下方法创建计算列:
SLASERV2 = RELATED ( SLA[SLA Hours] ) - ( 'DIARIO Backlog de incidencias'[Horas totales sin Pending] * 24 )
有关示例 PBIX 文件,请参阅 https://pwrbi.com/so_55396655/。