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

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.

Reply
Mich_J
Frequent Visitor

Total acumulado entre dos fechas en la asignación mensual

Hola, estoy tratando de averiguar la fórmula para mostrar el total mensual entre dos fechas para un registro. Muestra de datos:

ClienteFECHA DE INICIOFECHA DE FINALIZACIÓNGP MENSUAL
9955527/01/202027/04/202010
9977809/01/202027/08/202020
9981601/04/202027/10/202015
711115/04/202027/10/202010
714710/04/202031/12/202015
71501/04/202027/08/202030

El resultado debe ser

ClienteFECHA DE INICIOFECHA DE FINALIZACIÓNGP MENSUAL2020-012020-022020-032020-042020-052020-062020-072020-082020-092020-102020-112020-12
9955527/01/202027/04/20201010101010
9977809/01/202027/08/2020202020202020202020
9981601/04/202027/10/202015 15151515151515
711115/04/202027/10/202010 10101010101010
714710/04/202031/12/202015 151515151515151515
71501/04/202027/08/202030 3030303030

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

1 ACCEPTED 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])
				))

View solution in original post

7 REPLIES 7
Syndicate_Admin
Administrator
Administrator

@Mich_J ,

Gracias por compartir esto.

Resolvió mi requisito.

Syndicate_Admin
Administrator
Administrator

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:

c1.png

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:

c2.png

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])
				))

amitchandak
Super User
Super User

@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.

@amitchandak Voy a tratar de evaluar su solución más allá, pero tomando mi requisito y su ejemplo que le gustaría mostrar

EmpleadoEmpezarFinal2020-12020-22020-32020-42020-52020-62020-7
A03/03/202003/05/20200011100
B10/02/202004/04/20200111000

¿Sus cálculos cubrirán esta vista?

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.