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

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Anonymous
Not applicable

Problema de DAX.

Hola expertos,

Cuando estoy tratando de crear una medida me quedé con el siguiente problema.

Básicamente aquí estoy tratando de mostrar los valores del año anterior. Puedo usar datediff pero mi columna RPT Year está en formato de número entero

Prueba: CALCULATE(SUM(Query[Jan]),Query2[RPTyear]-2019) ---- Funciona
Pero cuando estoy tratando de hacer como abajo, estoy recibiendo error (básicamente dinámico)
Prueba: CALCULATE(SUM(Query[Jan]),Query2[RPTyear]-(Query2[RPTyear]-1))
Si seleccionamos 2020, necesito pasar 2019. RPTYear se muestra como segmentadora
Gracias
Anand
8 REPLIES 8
v-yangliu-msft
Community Support
Community Support

No @AnandaKali,

Según su descripción, creé los datos:

v-yangliu-msft_0-1608279255001.png

Estos son los pasos que puede seguir:

1. Utilice la tabla calculada para crear una tabla de calendario denominada query2 y cree una columna calculada para mostrar la tabla yearcalculated:

Quert2 = CALENDARAUTO()

columna calculada:

PRTyear = YEAR('Quert2'[Date])

2. Crear medida.

Test =
var _select =SELECTEDVALUE('Quert2'[PRTyear])
return CALCULATE(SUM('Query'[Jan]),FILTER('Query',YEAR('Query'[Date])=_select-1))

3. Resultado

v-yangliu-msft_1-1608279255005.png

Puede descargar el archivo PBIX desde aquí.

Saludos

Liu Yang

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

AllisonKennedy
Super User
Super User

@AnandaKali tiene una tabla DimDate? ¿Es eso lo que es Query2?

Puede hacerlo más fácilmente si tiene una tabla DimDate utilizando inteligencia de tiempo integrada, de lo contrario necesita calcular el año máximo seleccionado en el contexto de todo el informe, puede hacerlo usando una variable, pero ¿necesita trabajar para selecciones de varios años? Si es así, la tabla DimDate es mucho más fácil. https://excelwithallison.blogspot.com/2020/04/dimdate-what-why-and-how.html

De lo contrario, el uso de una variable se vería algo parecido a (he intentado tener en cuenta las selecciones de varios años, e imitado el comportamiento de la función DATEADD utilizando la inteligencia de tiempo y la tabla de fechas:

Prueba de la prueba ( Test)

VAR maxYear á MAX(Query2[RPTyear])

VAR minYear á MIN(Query2[RPTyear])

devolución

CALCULATE(SUM(Query[Jan]),FILTER(ALL(Query2[RPTyear]), Query2[RPTyear]<-maxYear-1 && Query2[RPTyear]>- minYear-1 ))


Please @mention me in your reply if you want a response.

Copying DAX from this post? Click here for a hack to quickly replace it with your own table names

Has this post solved your problem? Please Accept as Solution so that others can find it quickly and to let the community know your problem has been solved.
If you found this post helpful, please give Kudos C

I work as a Microsoft trainer and consultant, specialising in Power BI and Power Query.
www.excelwithallison.com

amitchandak
Super User
Super User

@AnandaKali , En caso de que necesite este año vs el año pasado. Si tiene fecha, utilice la inteligencia de tiempo. otra clase de un año de tabla y utilizar la fórmula utilizando sólo año

Ventas YTD á CALCULATE(SUM(Sales[Sales Amount]),DATESYTD('Date'[Date],"12/31"))
Last YTD Sales á CALCULATE(SUM(Sales[Sales Amount]),DATESYTD(dateadd('Date'[Date],-1,Year),"12/31"))
Este año Ventas: CALCULATE(SUM(Sales[Sales Amount]),DATESYTD(ENDOFYEAR('Date'[Date]),"12/31"))
Ventas del año pasado: CALCULATE(SUM(Sales[Sales Amount]),DATESYTD(ENDOFYEAR(dateadd('Date'[Date],-1,Year)),"12/31"))
Last to last YTD Sales - CALCULATE(SUM(Sales[Sales Amount]),DATESYTD(dateadd('Date'[Date],-2,Year),"12/31"))
Año detrás de Ventas: CALCULATE(SUM(Sales[Sales Amount]),dateadd('Date'[Date],-1,Year))


Sólo año vs año, no un nivel por debajo. Esto puede funcionar sin la tabla de fechas, pero necesita una tabla de años

Este año: CALCULATE(sum('order'[Qty]),filter(ALL('Date'),'Date'[Year]-max('Date'[Year])))
Last Year ? CALCULATE(sum('order'[Qty]),filter(ALL('Date'),'Date'[Year]-max('Date'[Year])-1))
rolling? CALCULATE(sum('order'[Qty]),filter(ALL('Date'),'Date'[Year]>'max('Date'[Year])-2 && 'Date'[Year]<-max('Date'[Year])) )

diff -Este año]-[Año pasado]
diff % á divide([This Year]-[Last Year ],[Last Year ])

Power BI — Año tras año con o sin inteligencia de tiempo
https://medium.com/@amitchandak.1978/power-bi-ytd-questions-time-intelligence-1-5-e3174b39f38a

ryan_mayu
Super User
Super User

@AnandaKali

tal vez usted puede probar esto

Test = CALCULATE(SUM(Query[Jan]),Query2[RPTyear]=SLECTEDVALUE(Query2[RPTyear])-1))




Did I answer your question? Mark my post as a solution!

Proud to be a Super User!




Anonymous
Not applicable

Cuando estoy usando la función selectedvalue que aparece debajo del error

Error:

Se ha utilizado una función 'SELECTEDVALUE' en una expresión True/False que se utiliza como expresión de filtro de tabla. Esto no está permitido.

@AnandaKali

necesita crear una tabla de calendario y usar dateadd

https://docs.microsoft.com/en-us/dax/dateadd-function-dax





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!




Pragati11
Super User
Super User

No @AnandaKali,

Lo primero - No ha mencionado qué error está recibiendo utilizando esta medida. ¿Compartirlo para describir cuál es el problema?

Gracias

Pragati

Best Regards,

Pragati Jain


MVP logo


LinkedIn | Twitter | Blog YouTube 

Did I answer your question? Mark my post as a solution! This will help others on the forum!

Appreciate your Kudos!!

Proud to be a Super User!!

Anonymous
Not applicable

Se muestra el error como No se puede encontrar el año RPT

Helpful resources

Announcements
LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.