The ultimate Fabric, Power BI, SQL, and AI community-led learning event. Save €200 with code FABCOMM.
Get registeredEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
hola amigos,
Sería realmente útil si pudieras ayudarme con la siguiente consulta. Puede sonar simple, pero aún así se atascó un poco.
Estoy haciendo un informe de precios en Power BI y la comparación de los precios se basa en el mismo cliente / mismo artículo vendido. La comparación de la línea de base se basa en todo el precio / unidad del año pasado frente al mes seleccionado para el año en curso. Principalmente porque no todos los artículos se compran y compran todos los meses igual que LY.
En ese sentido, cuál es la función dax de fecha correcta que me gustaría usar. Muy cualquier comentario / consejo.
SM
muchas gracias amit por su respuesta tamizada. Creo que la que me sería útil es la función del año anterior. Solo para darte un ejemplo, este es mi objetivo final.
1. Precio AVG CY_ mes (Ene'22) - 50
2. AVG Price LY (ene'21 - dic'21) - 42
Desviación de precios (50/(42-1))
La línea base 2 siempre seguirá siendo la misma durante todo el año, sin importar qué mes esté comparando en 2022.
¿Crees que el dax del año anterior es el adecuado para esto?
@sandeep_me, pocas medidas utilizando la inteligencia del tiempo que, puedes probar
Ventas YTD = CALCULATE(SUM(Sales[Sales Amount]),DATESYTD('Date'[Date],"12/31"))
Últimas ventas YTD = 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"))
Últimas a las últimas ventas de YTD = CALCULATE(SUM(Sales[Sales Amount]),DATESYTD(dateadd('Date'[Date],-2,Year),"12/31"))
Año detrás de las ventas = CALCULATE(SUM(Sales[Sales Amount]),dateadd('Date'[Date],-1,Year))
Año detrás de las ventas = CALCULATE(SUM(Sales[Sales Amount]),SAMEPERIODLASTYEAR('Date'[Date]))
ventas del año pasado = CALCULATE(SUM(Sales[Sales Amount]),previousyear('Date'[Date]))
PY promedio = IF([Average CY]=0,BLANK(),CALCULATE([Average CY],SAMEPERIODLASTYEAR("dCalendar"[Date])))
Solo año vs año, no un nivel por debajo
Este año = CALCULATE(sum('Table'[Qty]),filter(ALL('Date'),'Date'[Year]=max('Date'[Year])))
Último año = CALCULATE(sum('Table'[Qty]),filter(ALL('Date'),'Date'[Year]=max('Date'[Year])-1))
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
https://www.youtube.com/watch?v=km41KfM_0uA
Muchas gracias amit. Tengo un dilema relacionado con esto. Tratará de explicarlo lo máximo posible para que quede claro.
Entonces, lo que estoy tratando de hacer es comparar este año el valor de ventas de MTD vendido al mismo cliente y el mismo artículo frente al valor de ventas de todo el año LY vendido al mismo cliente y artículo. Si el mismo artículo se vende al mismo cliente en ambos períodos de tiempo, entonces quiero devolver el valor de ventas para el MTD del año en curso. A continuación se muestra la lógica de Excel
Aquí está mi función DAX para esto, pero no parece que obtenga el mismo valor que la versión de Excel (que es la lógica correcta). Pensé que podrías tener algún consejo.
De acuerdo con su código, sé que creará dos tablas virtuales ItemTable y Customertable y luego calculará [Sales MTD] en función de estas tablas. Creo que usas la función ALL en tablas virtuales. Por lo tanto, agregue algún filtro en el último calcualte para filtrar las tablas virtuales por tabla de hechos.
Pruebe este código.
Sales MTD for Customers/Items sold both Years =
VAR ItemTable =
CALCULATETABLE (
ADDCOLUMNS (
VALUES ( Attributes[Item] ),
"Sales Two Years",
CALCULATE (
IF (
AND (
[Sales LY] > 0,
AND ( [Sales MTD] > 0, AND ( [Sales Qty LY] > 0, [Sales Qty MTD] > 0 ) )
),
TRUE,
FALSE
)
)
),
ALL ( 'Date' ),
DATESMTD ( 'Date'[Day] )
)
VAR Customertable =
CALCULATETABLE (
ADDCOLUMNS (
VALUES ( Attributes[Customer] ),
"Sales Two Years Customer",
CALCULATE (
IF (
AND (
[Sales LY] > 0,
AND ( [Sales MTD] > 0, AND ( [Sales Qty LY] > 0, [Sales Qty MTD] > 0 ) )
),
TRUE,
FALSE
)
)
),
ALL ( 'Date' ),
DATESMTD ( 'Date'[Day] )
)
VAR CALC =
CALCULATE (
[Sales MTD],
FILTER (
ItemTable,
AND ( [Sales Two Years] = TRUE, [Item] = MAX ( Attributes[Item] ) )
),
FILTER (
Customertable,
AND (
[Sales Two Years Customer] = TRUE,
[Customer] = MAX ( Attributes[Customer] )
)
)
)
RETURN
CALC
Saludos
Rico Zhou
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
Gracias Rico, fue servicial. Mi fórmula inicial parece estar funcionando.
Me tenía la consulta mutua. El cálculo de MTD anterior (que compartí primero) parece estar funcionando y me gustaría usar la misma fórmula para hacer el cálculo de YTD. A continuación se muestra el cálculo actual de YTD
Muchas gracias amit. Tengo un dilema relacionado con esto. Tratará de explicarlo lo máximo posible para que quede claro.
Entonces, lo que estoy tratando de hacer es comparar este año el valor de ventas de MTD vendido al mismo cliente y el mismo artículo frente al valor de ventas de todo el año LY vendido al mismo cliente y artículo. Si el mismo artículo se vende al mismo cliente en ambos períodos de tiempo, entonces quiero devolver el valor de ventas para el MTD del año en curso. A continuación se muestra la lógica de Excel
Aquí está mi función DAX para esto, pero no parece que obtenga el mismo valor que la versión de Excel (que es la lógica correcta). Pensé que podrías tener algún consejo.