Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Hola, a continuación se muestran mis datos de muestra:
Si se selecciona Año Mes - Febrero 2020 | columnas de mes a continuación no existen en el modelo, se muestran para mostrar la lógica deseada | ||||||||||||||||||||||
2019 | 2019 | 2019 | 2020 | 2020 | 2020 | 2020 | 2020 | 2020 | 2020 | 2020 | 2020 | 2020 | 2020 | 2020 | 2021 | 2021 | 2021 | ||||||
Id. de contrato | Duración del contrato (meses) | Fecha de inicio del contrato | Fecha de finalización del contrato | Valor mensual del contrato | 1.10.2019 | 1.11.2019 | 1.12.2019 | 1.1.2020 | 1.2.2020 | 1.3.2020 | 1.4.2020 | 1.5.2020 | 1.6.2020 | 1.7.2020 | 1.8.2020 | 1.9.2020 | 1.10.2020 | 1.11.2020 | 1.12.2020 | 1.1.2021 | 1.2.2021 | 1.3.2021 | Importe total esperado |
7 | 38 | 2020-01-01 | 2023-03-01 | 160 | 0 | 0 | 0 | 160 | 160 | 160 | 160 | 160 | 160 | 160 | 160 | 160 | 160 | 160 | 160 | 0 | 0 | 0 | 1.920,00 |
11 | 3 | 2020-01-01 | 2020-04-01 | 200 | 0 | 0 | 0 | 200 | 200 | 200 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 600,00 |
26 | 36 | 2020-01-01 | 2023-01-01 | 350 | 0 | 0 | 0 | 350 | 350 | 350 | 350 | 350 | 350 | 350 | 350 | 350 | 350 | 350 | 350 | 0 | 0 | 0 | 4.200,00 |
30 | 36 | 2020-01-01 | 2023-01-01 | 390 | 0 | 0 | 0 | 390 | 390 | 390 | 390 | 390 | 390 | 390 | 390 | 390 | 390 | 390 | 390 | 0 | 0 | 0 | 4.680,00 |
8 | 12 | 2020-02-01 | 2021-02-01 | 170 | 0 | 0 | 0 | 0 | 170 | 170 | 170 | 170 | 170 | 170 | 170 | 170 | 170 | 170 | 170 | 0 | 0 | 0 | 1.870,00 |
12 | 36 | 2020-02-01 | 2023-02-01 | 210 | 0 | 0 | 0 | 0 | 210 | 210 | 210 | 210 | 210 | 210 | 210 | 210 | 210 | 210 | 210 | 0 | 0 | 0 | 2.310,00 |
29 | 23 | 2020-02-01 | 2022-01-01 | 380 | 0 | 0 | 0 | 0 | 380 | 380 | 380 | 380 | 380 | 380 | 380 | 380 | 380 | 380 | 380 | 0 | 0 | 0 | 4.180,00 |
19 | 24 | 2020-02-24 | 2022-02-24 | 280 | 0 | 0 | 0 | 0 | 0 | 280 | 280 | 280 | 280 | 280 | 280 | 280 | 280 | 280 | 280 | 0 | 0 | 0 | 2.800,00 |
27 | 24 | 2020-02-24 | 2022-02-24 | 360 | 0 | 0 | 0 | 0 | 0 | 360 | 360 | 360 | 360 | 360 | 360 | 360 | 360 | 360 | 360 | 0 | 0 | 0 | 3.600,00 |
28 | 2 | 2020-02-27 | 2020-04-27 | 370 | 0 | 0 | 0 | 0 | 0 | 370 | 370 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 740,00 |
1 | 22 | 2020-03-01 | 2022-01-01 | 100 | 0 | 0 | 0 | 0 | 0 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 0 | 0 | 0 | 1.000,00 |
21 | 12 | 2020-03-01 | 2021-03-01 | 300 | 0 | 0 | 0 | 0 | 0 | 300 | 300 | 300 | 300 | 300 | 300 | 300 | 300 | 300 | 300 | 0 | 0 | 0 | 3.000,00 |
17 | 3 | 2020-03-02 | 2020-06-02 | 260 | 0 | 0 | 0 | 0 | 0 | 0 | 260 | 260 | 260 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 780,00 |
15 | 3 | 2020-03-09 | 2020-06-09 | 240 | 0 | 0 | 0 | 0 | 0 | 0 | 240 | 240 | 240 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 720,00 |
Mi objetivo es calcular los ingresos anuales esperados en función del año del mes seleccionado. Actualmente estoy usando la tabla de fechas desconectada según el mes seleccionado necesito seleccionar todos los meses en el año (y más tarde necesito mostrar gráficos con cantidades acumuladas por mes).
Aquí está la lógica: obtener el año del mes seleccionado y sólo hacer cálculos para meses en el año del mes seleccionado.
Ejemplo 1: si el contrato comienza en febrero de 2020 y termina en febrero de 2021, calcule solo para meses en 2020.
Ejemplo 2: si el contrato comienza en febrero de 2020 y termina en junio de 2020, calcule para todos los meses como están todos en 2020.
Ejemplo 3: comparar el inicio del mes con el primero del mes. Si la fecha de inicio del contrato es el 1 de marzo de 2020, el primer mes en tener valor es marzo de 2020. Si el inicio del contrato es el 2 de marzo de 2020, a partir de abril de 2020.
El último paso es sumar todos estos valores (última columna sobre los datos por encima de "Importe total esperado").
Notas:
- Existen primeras cinco columnas (encabezado en color verde) y están en una tabla.
Las columnas de mes se utilizan para describir la lógica, pero no tengo ese diseño, por lo que no es puro If Then Else instrucción. Por lo tanto, estas columnas deben crearse virtualmente o utilizar algún tipo de tabla desconectada.
Usé la función generate para generar meses en la variable de medida, pero algo no está funcionando correctamente en la salida final.
¡Gracias de antemano!
saludos
Nemanja
Solved! Go to Solution.
@nandic , Parece que un approch similar a mi blog de RRHH debería funcionar
ot este blog, Simplemente no dividir el valor por días
No @nandic,
Convierto datos de simulación en datos de prueba de acuerdo con columnas no depnítes
Formar una nueva tabla 2:
Estos son los pasos que puede seguir:
1. Cree una columna calculada en la tabla
Column =
var _startdate=
IF(DAY([Contract Start Date])=1,[Contract Start Date],DATE(YEAR([Contract Start Date]),MONTH([Contract Start Date])+1,1))
var _enddate=
DATE(YEAR([Contract Start Date]),12,31)
return
CALCULATE(SUM('Table (2)'[Value]),FILTER('Table (2)',[Date]>=_startdate&&[Date]<=_enddate&&[Contract ID]=EARLIER('Table'[Contract ID])))
2. Resultado.
Puede descargar el archivo PBIX desde aquí.
Si mi respuesta no es la que necesita, ¿puede compartir datos de ejemplo y salida de ejemplo en formato de tabla? O una muestra de pbix después de eliminar datos confidenciales.
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.
@nandic , Parece que un approch similar a mi blog de RRHH debería funcionar
ot este blog, Simplemente no dividir el valor por días
Hola @amitchandak ,
Gracias por los enlaces proporcionados, segundo ejemplo es exactamente lo que necesitaba!
Resumir parte de su función funciona exactamente como quería (he comprobado los resultados), genera fila para cada mes que está en el rango entre la fecha de inicio y la fecha de finalización. Y acabo de agregar una columna más que devuelve el valor que se va a sumar.
Pero cuando agrego parte de la función para sumar estos valores: calculate(sumx(.....)), en lugar de sumar valores solo devuelve el valor de una fila (como calcula min/max y no sum).
He probado la misma lógica en su archivo y funciona muy bien!
Ejemplo en su archivo:
Para el ID 1, hay 14 días y el valor para cada día es 200, por lo que sumx es 14 * 200 x 2800.
Pero en mi informe en lugar de 2800 devuelve 200. ¿Tienes idea de lo que podría causar esto?
Al final encontré una solución que funciona que tiene mucho más código que su solución (tiene generar función, naturalinnerjoin, filtros).
Su solución es mucho más amigable, sólo para averiguar por qué estos valores no se resumen como se esperaba.
En mi informe hay 2 tablas y la estructura es la misma que en su archivo:
1) tabla de datos donde tengo : id, fecha de inicio, fecha de finalización, valor
2) tabla de fechas: fecha que se utiliza para filtrar
saludos
Nemanja Andic
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |