Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more
Hola compañeros guerreros en casa,
Estoy tratando de construir una fecha diferente medida para tener en cuenta una gama de datos de fechas malas que abarca un par de décadas en total. Sé qué línea está creando el problema, y me está diciendo que tiene algo que ver con el tipo de datos (formato) de la función lógica. He intentado usar las siguientes conversiones para corregir pero obtener errores, por lo general los mismos:
Aquí está mi código:
Test Begin Date =
var YrTo = YEAR( tbl_Orders_DatesDays[BILLTO_DATE] )
var YrFrom = YEAR( tbl_Orders_DatesDays[BILLFROM_DATE] )
var YrToday = YEAR( TODAY() ) + 1
var YrRet = YEAR( tbl_Orders_DatesDays[RETURN_DATE] )
var YrCreated = YEAR( tbl_Orders_DatesDays[CREATED_DATE] )
VAR YrShp = YEAR( tbl_Orders_DatesDays[SHIP_DATE] )
RETURN
DATE(
SWITCH( TRUE() ,
ABS( FORMAT( ( ( YrFrom - ( YrCreated - 5 ) ) ) , "General Number" ) ) > 5 , YrShp ,
AND ( YrFrom < YrCreated , YrShp < YrCreated ) , YrCreated ,
AND ( YrFrom < YrCreated , YrShp > YrCreated ) , YrShp ,
YrFrom > YrToday , YrToday ,
YrFrom ) ,
MONTH( tbl_Orders_DatesDays[BILLFROM_DATE] ) ,
DAY( tbl_Orders_DatesDays[BILLFROM_DATE] )
)
La línea con "ABS" es donde continuamente obtengo errores, si tuviera que quitar esa parte lógica que la medida completa.
El error más común que recibo es: "Un argumento de lafunción 'DATE' tiene el tipo de datos incorrecto o el resultado es demasiado grande o demasiado pequeño."
Gracias por la ayuda.
Así que FORMAT devuelve texto no sé por qué estás usando eso en esa fórmula.
Es uno de los intentos de corregir para el tipo de datos, ya que no estoy seguro de cómo evitarlo. Disparé en la oscuridad.
HI @DataUsurper,
Como Greg_Deckler dicho, la función de formato actual solo admite devolver valores de texto, por lo que no se puede utilizar para convertir texto en número. (obtendrá valores de texto de formato de valor numérico)
Puede intentar utilizar la siguiente fórmula de medida si es adecuada para su escenario:
Test Begin Date =
VAR billFrom =
MAX ( tbl_Orders_DatesDays[BILLFROM_DATE] )
VAR YrFrom =
YEAR ( billFrom )
VAR YrCreated =
YEAR ( MAX ( tbl_Orders_DatesDays[CREATED_DATE] ) )
VAR YrShp =
YEAR ( MAX ( tbl_Orders_DatesDays[SHIP_DATE] ) )
VAR _year =
IF (
ABS ( YrFrom - YrCreated - 5 ) > 5,
YrShp,
IF (
2 * YrCreated > YrShp + YrFrom,
YrCreated,
IF (
YrFrom < YrCreated
&& YrShp > YrCreated,
YrShp,
MIN ( YEAR ( TODAY () ) + 1, YrFrom )
)
)
)
RETURN
DATE ( _year, MONTH ( billFrom ), DAY ( billFrom ) )
Si por encima no ayuda, me gustaría que se probaran algunos datos ficticios. Es difícil probar una fórmula Dax sin ningún dato de muestra.
Cómo obtener respuesta rápida a su pregunta
saludos
Xiaoxin Sheng
The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!