Power BI is turning 10! Tune in for a special live episode on July 24 with behind-the-scenes stories, product evolution highlights, and a sneak peek at what’s in store for the future.
Save the dateEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
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
Check out the July 2025 Power BI update to learn about new features.
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.