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

Don't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.

Reply
Syndicate_Admin
Administrator
Administrator

DAX para ahorrar en funcionamiento

Estoy trabajando con dos tablas: Tabla1 y Tabla2 , que tienen una relación de muchos a muchos en ID.

La Tabla2 contiene la lista de acciones realizadas en un subconjunto más pequeño de identificadores de la Tabla1 para reducir su costo. La tabla 2 tiene estos campos: ActionDate, ID, Result.

hiba_aziz_0-1706387643428.png

La Tabla1 tiene estos campos: Fecha, ID, costo,.. etc

hiba_aziz_1-1706387665128.png

Mi tarea es calcular el ahorro total de cada acción. Donde para cada acción comprobamos el coste del día anterior a la acción (CostAB) y si el coste de la acción del día es inferior al CostAB calculamos la diferencia para ese día y todos los días hasta la fecha de la siguiente acción.

Por ejemplo:

Acción tomada el 1/10/2023, CostAB= 50 , NextActionDate = 1/13/2023
Ahorro para el 1/10/2023 = 50 - 0 = 50
Ahorro para el 1/11/2023 = 50 - 30 = 20
ahorrando para el 1/12/2023 = 50 - 40 = 10 (nos detenemos aquí porque la próxima fecha de acción es el 1/13/2023)
El ahorro total para la acción tomada el día 10 sería = 50 + 20 +10 = 80

Nota: si no hay NextActionDate, el cálculo continuará hasta que el costo sea mayor que el costo antes de la última acción realizada.
No puedo compartir mi archivo ya que estoy conectado a una base de datos en vivo, cualquier helo con el dax sería muy apreciado.

1 ACCEPTED SOLUTION

@hiba_aziz

En el código ,

Simplemente modifique a esto en línea : 64

Daniel29195_0-1706404211556.png

View solution in original post

16 REPLIES 16
Syndicate_Admin
Administrator
Administrator

Hola @hiba_aziz

Consulte el vínculo siguiente para ver el archivo de Power BI.

https://drive.google.com/file/d/1NK1Ub9VR2XathhaZKKtuHKhsRQxhSgwp/view?usp=sharing

Si mi respuesta te ayudó a resolver las cosas, ¡no dudes en darle un pulgar hacia arriba y marcarla como la solución! Marca la diferencia y también podría ayudar a alguien más. ¡Gracias por difundir las buenas vibraciones! 👍🤠

@hiba_aziz

En el código ,

Simplemente modifique a esto en línea : 64

Daniel29195_0-1706404211556.png

Syndicate_Admin
Administrator
Administrator

Hola @hiba_aziz
salida:

Daniel29195_0-1706393389764.png

Por favor, descargue el archivo PBIX desde aquí.

https://drive.google.com/file/d/1as7AW4DFwVFUN4LdpTgS-0A07Z1nDa4Q/view?usp=sharing

Déjame saber si funciona para ti.

NB:
1.Crear fecha de dimensión.

2.Crear atenuadores

3. Vincule dimdate a ambas tablas en la fecha

4. Vincule los atenuadores a ambas tablas en el usuario.

Si mi respuesta te ayudó a resolver las cosas, ¡no dudes en darle un pulgar hacia arriba y marcarla como la solución! Marca la diferencia y también podría ayudar a alguien más. ¡Gracias por difundir las buenas vibraciones! 👍🤠

Hola Daniel,
El DAX no devuelve el resultado esperado.

Por ejemplo, el resultado correcto para el 1/1/2023 es 15: que es 30 -15. y para el 1/2/2023 es 5.

@Daniel29195

Gracias por la rápida respuesta:

Así que la lógica es la siguiente:

Para cada fecha de acción x:

1. Obtenemos el costo del día anterior

2. Luego iteramos a través de todas las fechas a partir de la fecha X y nos detenemos en la siguiente fecha de acción: Ahorro = costo del día anterior - costo de la fecha.

3. Agrega los ahorros.

Para la fecha 1/1/2023:

Fecha de acción = 1/1/2023 , costAB = 30 , NextActionDate = 1/2/2023

Ahorro = 30 - 15 = 15

solo calculamos los ahorros para el 1/1/2023, ya que la siguiente fecha es una fecha de acción.

@hiba_aziz

Daniel29195_0-1706401034403.png

¿Es este el resultado que desea?

Dada la tabla de la derecha, el resultado debería ser la tabla pequeña de la izquierda:

hiba_aziz_0-1706401882067.png

Hola

¿De qué forma quieres ver el resultado final? ¿En un formato de tabla/tarjeta visual? Por favor, muéstralo claramente.

Formato de tabla

Entonces, si se selecciona 1/10/2023, ¿querrá mostrar una fila para cada fecha hasta el 1/12/2023? ¿Estoy en lo cierto?

¡Tienes razón! continúa hasta la fecha de la siguiente acción, que es 1/13 en este caso.

Al calcular el ahorro para el 13/01/2023, el caso es un poco diferente. donde no hay una acción siguiente, en este caso se calcula el ahorro hasta el final de la tabla o siempre que el coste sea superior a 40.

hiba_aziz_0-1706402462915.png

Hola

No estoy seguro de cuánto puedo ayudar, pero me gustaría intentarlo. Comparta las 3 tablas (2 tablas de entrada y 1 tabla de salida) en formato que se pueda pegar en un archivo de MS Excel.

@hiba_aziz

Estoy confundido.

¿No es la próxima fecha de acción cuando estoy encendido : 2023-01-01 , --> 2023-01-02 ?

Daniel29195_0-1706399608448.png

así

Daniel29195_1-1706399680791.png

10 - 15 = -5

¿O me estoy perdiendo algo de la lógica?

@hiba_aziz

Solucione esto en el código:

Daniel29195_0-1706395355738.png

Reemplácelo con : <

Para la segunda parte:

Nota: si no hay NextActionDate, el cálculo continuará hasta que el costo sea mayor que el costo antes de la última acción realizada.

¿Puede dar un ejemplo?

Saludos

Sí, aquí hay un ejemplo en el que la última acción realizada en x fue el 13/01/2023.

hiba_aziz_0-1706401427708.png

Luego, para calcular los ahorros de esa acción, debemos observar todas las fechas a partir de esa acción hasta el final de la tabla.

Para las medidas realizadas el 13/01/2023, coste del día anterior = 40:

Ahorrar para el 13/01/2023 es = 40 - 30 = 10

Ahorrar para el 14/01/2023 es = 40 - 20 = 20

....

Ahorrar para el 21/01/2023 es = 40 - 20 = 20

El ahorro total para la acción realizada el 13/01/2023 es = 10 + 20+ ....+20 = 170

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!

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