Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Be one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now

Reply
Syndicate_Admin
Administrator
Administrator

Error de retorno de la función Dateadd

Hola

Estoy intentando crear un cálculo de dcolumn usando valores en la columna Año de calandra. Para calcular YTDLY estoy usando la línea de función dateadd debajo, pero devuelve el siguiente error. ¿Alguien puede resolver este problema?

"La sintaxis de '', es incorrecta. (DAX(var maxdate = calculate(max(CY[Calendar Year]),all())return switch(true(), CY[Calendar Year]= maxdate,"YTD",CY[Calendar Year]= dateadd(var maxdate, -1,year),"YTDLY")))."

CY[Año calendario]= dateadd(Dónde maxdate, -1,año),"YTDLY") -> sin embargo da

Slicer = var maxdate = calculate(max(CY[Calendar Year]),all())return switch(true(), 
CY[Calendar Year]= maxdate,"YTD",
CY[Calendar Year]= dateadd(var maxdate, -1,year),"YTDLY")

1 ACCEPTED SOLUTION

@PhilipTreacy Por favor, haga caso omiso de mis preguntas. Modifiqué el código y abajo funcionó para mí.

Slicer = var maxdate = calculate(max(CY[Calendar Year]),all())return switch(true(), 
CY[Calendar Year]= maxdate,"YTD",
CY[Calendar Year]= maxdate-365,"YTDLY",
CY[Calendar Year]= DATE ( YEAR (maxdate)-1, 12, 31 ),"Last Year",
CY[Calendar Year]= DATE ( YEAR (maxdate)-2, 12, 31 ),"Last YearLY",
and(MONTH(CY[Calendar Year]) = month(maxdate),YEAR(CY[Calendar Year]) = YEAR(maxdate)),"Last Month",
and(MONTH(CY[Calendar Year]) = month(maxdate),YEAR(CY[Calendar Year]) = Year(maxdate)-1),"Last MonthLY")

View solution in original post

8 REPLIES 8
Syndicate_Admin
Administrator
Administrator

@dokat

Por favor, proporcione su archivo, de lo contrario, tenemos que recrear todo a mano.

saludos

Phil

@PhilipTreacy Por favor, haga caso omiso de mis preguntas. Modifiqué el código y abajo funcionó para mí.

Slicer = var maxdate = calculate(max(CY[Calendar Year]),all())return switch(true(), 
CY[Calendar Year]= maxdate,"YTD",
CY[Calendar Year]= maxdate-365,"YTDLY",
CY[Calendar Year]= DATE ( YEAR (maxdate)-1, 12, 31 ),"Last Year",
CY[Calendar Year]= DATE ( YEAR (maxdate)-2, 12, 31 ),"Last YearLY",
and(MONTH(CY[Calendar Year]) = month(maxdate),YEAR(CY[Calendar Year]) = YEAR(maxdate)),"Last Month",
and(MONTH(CY[Calendar Year]) = month(maxdate),YEAR(CY[Calendar Year]) = Year(maxdate)-1),"Last MonthLY")

@PhilipTreacy Subí el archivo a Dropbox. Por favor, vea a continuación

https://www.dropbox.com/s/lj93ly0uw1utq20/Test.pbix?dl=0

Syndicate_Admin
Administrator
Administrator

¿ @dokat

¿Hay alguna razón por la que la función "ALL" no tenga un nombre de tabla o columna (justo antes del RETURN en su primera línea de código)?

Bien

Seguir

@TheoC Modifiqué el código ligeramente y funcionó PARA ytdly, sin embargo, ahora no puedo averiguar el valor de Last MonthLY. Por favor, vea a continuación la captura de pantalla. Estoy tratando de 01/01/2021 debería ser Último MesLY

Slicer = var maxdate = calculate(max(CY[Calendar Year]),all())return switch(true(), 
CY[Calendar Year]= maxdate,"YTD",
CY[Calendar Year]= maxdate-365,"YTDLY",
CY[Calendar Year]= DATE ( YEAR (maxdate)-1, 12, 31 ),"Last Year",
CY[Calendar Year]= DATE ( YEAR (maxdate)-2, 12, 31 ),"Last YearLY",
and(MONTH(CY[Calendar Year]) = month(maxdate),YEAR(CY[Calendar Year]) = YEAR(maxdate)),"Last Month", 
and(MONTH(CY[Calendar Year]) = month(maxdate)-12,YEAR(CY[Calendar Year]) = YEAR(maxdate)),"Last MonthLY")

dokat_0-1645762359971.png

Estoy tratando de obtener la fecha máxima basada en la selección de rebanadoras que es wy no hay tabla para todos.

Syndicate_Admin
Administrator
Administrator

¿ @dokat

No tengo claro el código que has escrito, siempre es mejor proporcionar el archivo que estás usando, pero, cuando declaras un VAR, no lo referencias posteriormente usando la palabra clave VAR. También debe proporcionar un valor devuelto predeterminado para SWITCH. Pruebe esto

Slicer = 

VAR maxdate = calculate(max(CY[Calendar Year]),all())

RETURN SWITCH( TRUE(), 

    CY[Calendar Year]= maxdate,"YTD",

    CY[Calendar Year] = dateadd(maxdate, -1,year),"YTDLY",

    "DEFAULT VALUE"

)

saludos

Phil

@PhilipTreacy Gracias por su respuesta. Sigue recibiendo el siguiente mensaje de error

El primer argumento de 'DATEADD' debe especificar una columna.

La línea de abajo funcionó para mí

CY[Calendar Year]= maxdate-365,"YTDLY"

.

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

ArunFabCon

Microsoft Fabric Community Conference 2025

Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.

Top Solution Authors
Top Kudoed Authors