Check your eligibility for this 50% exam voucher offer and join us for free live learning sessions to get prepared for Exam DP-700.
Get StartedDon'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.
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.
La Tabla1 tiene estos campos: Fecha, ID, costo,.. etc
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.
Solved! Go to Solution.
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! 👍🤠
Hola @hiba_aziz
salida:
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.
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.
Dada la tabla de la derecha, el resultado debería ser la tabla pequeña de la izquierda:
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.
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.
Estoy confundido.
¿No es la próxima fecha de acción cuando estoy encendido : 2023-01-01 , --> 2023-01-02 ?
así
10 - 15 = -5
¿O me estoy perdiendo algo de la lógica?
Solucione esto en el código:
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.
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