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
MAbdelRazik
New Member

Distribuir valores entre las fechas de inicio y finalización y obtener el acumulado

Estoy tratando de distribuir valores entre fechas. Tengo una fecha de inicio y finalización y un cierto valor que quiero distribuir entre estas 2 fechas. Por ejemplo,

TareaEmpezarFinalValor
A1/1/20201/10/20201000
B1/11/20201/20/20201000
C1/21/20201/30/2020

1000

Necesito que el resultado sea así:

FechaValorValor acumulado
1/1/2020100100
1/2/2020100200
1/3/2020100300
1/4/2020100400
1/5/2020100500
1/6/2020100600
1/7/2020100700
etcetera....100....800...

Hasta ahora, creé una tabla de fechas y pude usar una medida para calulcar el valor para cada fecha, pero estoy luchando con la parte acumulativa. Esta es la medida que usé para la distribución de valores a lo largo del tiempo:

Valor: CALCULATE(
suma (Datos[valores]),
FILTRO(
Datos
Data[StartDate]<-max( 'DateTable'[Date])
&& Datos[EndDate] > max ('DateTable'[Fecha])))
Cualquier ayuda con esto será muy apreciada.
1 ACCEPTED SOLUTION
v-kelly-msft
Community Support
Community Support

Hola @MAbdelRazik ,

Cree una tabla como se muestra a continuación:

Table 2 = CALENDAR(MIN('Table'[Start]),MAX('Table'[End]))

A continuación, cree 2 medidas como se indica a continuación:

_Value = 
var _table=ADDCOLUMNS('Table 2',"value",CALCULATE(MAX('Table'[Column]),FILTER(ALL('Table'),'Table'[Start]<='Table 2'[Date]&&'Table'[End]>='Table 2'[Date])))
Return
MAXX(_table,[value])
_Cumulative value = SUMX(FILTER(ALL('Table 2'),'Table 2'[Date]<=MAX('Table 2'[Date])),'Table 2'[_Value])

Y verás:

Screenshot 2020-09-15 155143.png

Para el archivo .pbix relacionado, pls ver adjunto.

Saludos
Kelly
¿He respondido a tu pregunta? ¡Marca mi puesto como una solución!

View solution in original post

6 REPLIES 6
v-kelly-msft
Community Support
Community Support

Hola @MAbdelRazik ,

Cree una tabla como se muestra a continuación:

Table 2 = CALENDAR(MIN('Table'[Start]),MAX('Table'[End]))

A continuación, cree 2 medidas como se indica a continuación:

_Value = 
var _table=ADDCOLUMNS('Table 2',"value",CALCULATE(MAX('Table'[Column]),FILTER(ALL('Table'),'Table'[Start]<='Table 2'[Date]&&'Table'[End]>='Table 2'[Date])))
Return
MAXX(_table,[value])
_Cumulative value = SUMX(FILTER(ALL('Table 2'),'Table 2'[Date]<=MAX('Table 2'[Date])),'Table 2'[_Value])

Y verás:

Screenshot 2020-09-15 155143.png

Para el archivo .pbix relacionado, pls ver adjunto.

Saludos
Kelly
¿He respondido a tu pregunta? ¡Marca mi puesto como una solución!
amitchandak
Super User
Super User

@MAbdelRazik, compruebe que he hecho una división en la nueva tabla aquí.

https://www.dropbox.com/s/yuv64v0cneseghx/value%20Split%20between%20months%20start%20end%20date.pbix...

Publicar que se puede ejecutar acumulativo

@amitchandak I have reached a similar outcome to what you have there. I am looking for a next step to have cumulative values. So, in November, the values will be your Oct and Nov added together and so on.

Greg_Deckler
Super User
Super User

@MAbdelRazik ¿Creaste una tabla para romper cosas o una medida? Si una tabla, cree una columna calculada. Si una medida, mida la agregación y agregue una columna mediante ADDCOLUMNS y, a continuación, filtre hasta la fecha actual en contexto. El cálculo de la columna es algo así como:

Column = SUMX(FILTER('Table',[Date]<=EARLIER([Date]),[Value])

¿Usaste algo como Open Tickets para romper las cosas?

https://community.powerbi.com/t5/Quick-Measures-Gallery/Open-Tickets/m-p/409364#M147


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

@Greg_Deckler Por lo tanto, tenía la tabla con StartDate, EndDate y valuePerDay. Llamaré a esto Data_table.

He creado una tabla que tiene fechas y llamaré a este DateSTable. Creé una medida usando este código:

ValuePerDay - CALCULATE(
suma (Data_Table[valuePerDay]),
FILTRO(
Data_Table,
Data_Table[StartDate]<-max( 'DateSTable'[Date])
&& Data_Table[EndDate] > á max ('DateSTable'[Fecha])))
Ahora tengo un objeto visual que tiene todas las fechas de la DateSTable y los valores medidos. Estoy tratando ahora de obtener los valores acumulativos.
No estoy seguro de dónde agregar la columna sugerida en su método a continuación. Tampoco puedo referirme a la medida en una columna calculada. Estoy seguro de que estoy haciendo algo mal, pero no estoy seguro de lo que es.

@MAbdelRazik Ok, si esa es tu medida, iremos por la ruta de la medida. así que:

Cumulative Measure =
  VAR __Date = MAX('DateSTable'[Date])
  VAR __Table = FILTER(ALL('DateSTable'[Date]),[Date]<=__Date)
  VAR __Table1 = 
   ADDCOLUMNS(
      __Table,
      "PerDay",SUMX(FILTER(Data_Table,Date_Table[StartDate]<=[Date]&& Data_Table[EndDate] >=[Date])
   )
   VAR __Table2 =
     ADDCOLUMNS(
       __Table1,
       "Cumulative",SUMX(FILTER(__Table1,[Date]<=EARLIER([Date])),[PerDay])
     )
RETURN
  MAXX(FILTER(__Table2,[Date]=__Date),[Cumulative)


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

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.