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, estoy tratando de averiguar la fórmula para mostrar el total mensual entre dos fechas para un registro. Muestra de datos:
Cliente | FECHA DE INICIO | FECHA DE FINALIZACIÓN | GP MENSUAL |
99555 | 27/01/2020 | 27/04/2020 | 10 |
99778 | 09/01/2020 | 27/08/2020 | 20 |
99816 | 01/04/2020 | 27/10/2020 | 15 |
7111 | 15/04/2020 | 27/10/2020 | 10 |
7147 | 10/04/2020 | 31/12/2020 | 15 |
715 | 01/04/2020 | 27/08/2020 | 30 |
El resultado debe ser
Cliente | FECHA DE INICIO | FECHA DE FINALIZACIÓN | GP MENSUAL | 2020-01 | 2020-02 | 2020-03 | 2020-04 | 2020-05 | 2020-06 | 2020-07 | 2020-08 | 2020-09 | 2020-10 | 2020-11 | 2020-12 |
99555 | 27/01/2020 | 27/04/2020 | 10 | 10 | 10 | 10 | 10 | ||||||||
99778 | 09/01/2020 | 27/08/2020 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | ||||
99816 | 01/04/2020 | 27/10/2020 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | |||||
7111 | 15/04/2020 | 27/10/2020 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | |||||
7147 | 10/04/2020 | 31/12/2020 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | 15 | |||
715 | 01/04/2020 | 27/08/2020 | 30 | 30 | 30 | 30 | 30 | 30 |
Idealmente sería
CumulativeBetweenDates:=TOTALYTD(SUM(Opportunity[BaseYear_MonthAGP]),
'Calendar'[Day],USERELATIONSHIP([START DATE],'Calendar'[Day]),[END DATE]])
Desgraciadamente último parámetro es una cadena y no se puede utilizar de esta manera.
Esto se ejecutaría en SSAS antes de que haya algunas limitaciones en su lugar (Consulta directa, VAR no disponible)
Señalar la dirección correcta se aplicaría
Gracias de antemano
Michal
Solved! Go to Solution.
Hola @v-alq-msft y @amitchandak ,
Gracias por su apoyo en esto. Desafortunadamente, ambas soluciones no resolvieron el cálculo en el entorno de SSAS, pero teniendo en cuenta tanto los comentarios como los consejos del gurú local al que llegué anteriormente, que sí asignó gp a través de los meses.
CumulativeBetweenDates:=CALCULATE(
SUM(Customer[DAY_AGP]),
FILTER(CALCULATETABLE(Customer,ALL('Calendar')),
Customer[START_DATE] <=MAX('Calendar'[Day])&&
Customer[END_DATE]>MIN('Calendar'[Day])
))
Ahí, @Mich_J
En función de su descripción, he creado datos para reproducir su escenario. El archivo pbix se adjunta al final.
mesa:
Calendario (una tabla calculada):
Calendar = CALENDARAUTO()
No hay ninguna relación entre dos tablas. Puede crear tres columnas calculadas y una medida como se indica a continuación.
Calculated column:
Year-Month = VALUE(FORMAT('Calendar'[Date],"yyyymm"))
StartYearMonth = VALUE(FORMAT('Table'[START DATE],"yyyymm"))
EndYearMonth = VALUE(FORMAT('Table'[END DATE],"yyyymm"))
Measure:
Result =
var _cYearMonth = SELECTEDVALUE('Calendar'[Year-Month])
var _startYearMonth = SELECTEDVALUE('Table'[StartYearMonth])
var _endYearMonth = SELECTEDVALUE('Table'[EndYearMonth])
return
IF(
_cYearMonth>=_startYearMonth&&_cYearMonth<=_endYearMonth,
SUM('Table'[MONTHLY GP])
)
resultado:
Saludos
Allan
Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Hola @v-alq-msft y @amitchandak ,
Gracias por su apoyo en esto. Desafortunadamente, ambas soluciones no resolvieron el cálculo en el entorno de SSAS, pero teniendo en cuenta tanto los comentarios como los consejos del gurú local al que llegué anteriormente, que sí asignó gp a través de los meses.
CumulativeBetweenDates:=CALCULATE(
SUM(Customer[DAY_AGP]),
FILTER(CALCULATETABLE(Customer,ALL('Calendar')),
Customer[START_DATE] <=MAX('Calendar'[Day])&&
Customer[END_DATE]>MIN('Calendar'[Day])
))
@Mich_J, no obtuve lo que quieres dar el último parámetro. Tienes que decir dónde va a terminar el año. En caso de que termine en 12/31 no hay necesidad de eso. Es opcional.
Como
TOTALYTD(SUM(Opportunity[BaseYear_MonthAGP]),
'Calendar'[Day],USERELATIONSHIP([START DATE],'Calendar'[Day]),"12/31")
TOTALYTD(SUM(Opportunity[BaseYear_MonthAGP]),
'Calendar'[Day],USERELATIONSHIP([START DATE],'Calendar'[Day]),"3/31") // Año que termina marzo
@amitchandak Esto tiene que ser un parámetro dinámico y su diferente para cada registro para lograr el total entre dos fechas, por lo tanto, no funcionará. Tiene que ser un cálculo de inteligencia de tiempo, pero no puedo encontrar ninguna referencia en la web. La mayoría de los cálculos funcionarían para resumir para cada mes en función de la fecha en una columna. Donde aquí me gustaría presentar mensualmente acumulado entre dos fechas.
@Mich_J, consulte si esto puede ayudar a
O este archivo suma días entre fechas
https://www.dropbox.com/s/bqbei7b8qbq5xez/leavebetweendates.pbix?dl=0
@amitchandak Voy a tratar de evaluar su solución más allá, pero tomando mi requisito y su ejemplo que le gustaría mostrar
Empleado | Empezar | Final | 2020-1 | 2020-2 | 2020-3 | 2020-4 | 2020-5 | 2020-6 | 2020-7 |
A | 03/03/2020 | 03/05/2020 | 0 | 0 | 1 | 1 | 1 | 0 | 0 |
B | 10/02/2020 | 04/04/2020 | 0 | 1 | 1 | 1 | 0 | 0 | 0 |
¿Sus cálculos cubrirán esta vista?
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 |