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

Get certified in Microsoft Fabric—for free! For a limited time, get a free DP-600 exam voucher to use by the end of 2024. Register now

Reply
CailenHutson
Frequent Visitor

Extraer valores de período de una columna total acumulada en una tabla de datos

Estoy intentando extraer el valor del período de un conjunto de datos de instantánea de fecha. La tabla tiene el siguiente aspecto. Hay un par de cosas a tener en cuenta con respecto a esta mesa. La primera es que el Column CostItemID está en el lado de muchos de una relación de uno a varios. La segunda es que la columna de sello de fecha está vinculada a una tabla de fechas. La última columna de la tabla es el valor que estoy intentando extraer de la tabla. Tenga en cuenta que es posible períodos allí el coste de asociado a una posición de coste puede disminuir en un período determinado.

CostItemIDSello de fechaCosto del proyecto hasta la fechaCosto incurrido por sello de fecha anterior
15/8/20100
25/8/20200
35/8/20300
15/9/2015050
25/9/2027575
35/9/2036565
15/10/2017525
25/10/20225-50
35/10/2037510
1 ACCEPTED SOLUTION

Gracias a ambos por ayudar con este desafío. Estoy seguro de que hay una mejor manera que lo que se me ocurrió. Sin embargo, después de algunas investigaciones en Internet pude llegar a una solución que parece darme el resultado deseado y tiene un rendimiento decente. Lo que se me ocurrió es el siguiente:

1. En Power Query ordenar CostItemID en ascendente.

2. El siguiente paso ordena DateStamp en ascendente.

3. A continuación, agregue una columna de índice.

4. Después de cerrar y aplicar pude llegar a una medida de la siguiente manera:

Coste del período ?
var previousrowcost ?
CALCULATE(SUM('Data'[CostToDate]),
FILTRO(ALL('Datos'),
SUMX(
FILTER('Data', 'Data'[Index] ? EARLIER('Data'[Index]) + 1 && 'Data'[CostItemId] ? EARLIER('Data'[CostItemId])),
'Datos'[CostToDate])))
var currentrowcost á SUM('Data'[CostToDate])
devolución
IF(ISBLANK(previousrowcost),BLANK(), currentrowcost - previouserowcost)

View solution in original post

4 REPLIES 4
CailenHutson
Frequent Visitor

@Ashish_Mathur & @mahoneypat Gracias a ambos por cantaren!!! Puede que tengas que ser paciente conmigo, sólo estoy rascando la superficie cuando se trata de Dax. Probé ambos métodos y no parecía obtener el resultado deseado. Probablemente debería haber sido más claro con respecto a la frecuencia de cada sello de fecha. Los nuevos datos se añaden a la tabla semanalmente con un sello de fecha respectivo. No estoy seguro de si esto afectaría a cualquiera de sus expresiones. Encontré una solución torpe pero efectiva con PowerQuery, pero me temo que esto empatará las actualizaciones dado que este conjunto de datos tiene registros 7M. Si podemos encontrar una manera de hacerlo con dax debería mejorar en gran medida el rendimiento. A continuación se muestra un enlace al video que he encontrado (también puede proporcionar algo de claridad en torno a lo que estoy tratando de hacer). Probablemente puedesaltar a 4:30 en el video si lo desea. Me pareció que era un trabajo bastante inteligente.

Un par de cosas a tener en cuenta:

1. Ignore el autor que crea una tabla de usuario. Ya lo tengo en el modelo de datos.

2. Además, no tenga en cuenta la fusión de los ID de usuario en la tabla. El conjunto de datos con el que estoy trabajando ya viene con esos valores (CostItemID)

https://youtu.be/152tPJFu-A8

Una vez más, gracias a ambos por mirar esto. Ha sido una especie de cabeza rascándome el agujero del conejo para mí.

Sinceramente

Cailen

Gracias a ambos por ayudar con este desafío. Estoy seguro de que hay una mejor manera que lo que se me ocurrió. Sin embargo, después de algunas investigaciones en Internet pude llegar a una solución que parece darme el resultado deseado y tiene un rendimiento decente. Lo que se me ocurrió es el siguiente:

1. En Power Query ordenar CostItemID en ascendente.

2. El siguiente paso ordena DateStamp en ascendente.

3. A continuación, agregue una columna de índice.

4. Después de cerrar y aplicar pude llegar a una medida de la siguiente manera:

Coste del período ?
var previousrowcost ?
CALCULATE(SUM('Data'[CostToDate]),
FILTRO(ALL('Datos'),
SUMX(
FILTER('Data', 'Data'[Index] ? EARLIER('Data'[Index]) + 1 && 'Data'[CostItemId] ? EARLIER('Data'[CostItemId])),
'Datos'[CostToDate])))
var currentrowcost á SUM('Data'[CostToDate])
devolución
IF(ISBLANK(previousrowcost),BLANK(), currentrowcost - previouserowcost)
Ashish_Mathur
Super User
Super User

Hola

Para cada CostItemID, si siempre habrá fechas continuas en el campo Sello de fecha, estas medidas funcionarán

Coste hasta la fecha (Datos[Coste del proyecto a fecha])

Coste incremental: [Coste a la fecha]-CALCULATE([Coste a la fecha],PREVIOUSDAY(Calendario[Fecha]))

Espero que esto ayude.


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/
mahoneypat
Microsoft Employee
Microsoft Employee

Cambiar de anterior a var currentday á selectedvalue(Fecha[Fecha])

var todayvalue á sum(Table[Project Cost to Date])

var prevdatevalue á calculate(sum(Table[Project Cost to Date]), all(Date[Date]), Date[Date] - currentday -1)
devolver todayvalue - prevdatevalue

Esto supone que tiene resultados todos los días (es decir, prevdatevalue siempre tiene un valor) y que el objeto visual está en el día y la granularidad de elementos individuales.

Si esto funciona para usted, por favor márquelo como la solución. Los felicitaciones también son apreciados. Por favor, avísame si no.

saludos

palmadita





Did I answer your question? Mark my post as a solution! Kudos are also appreciated!

To learn more about Power BI, follow me on Twitter or subscribe on YouTube.


@mahoneypa HoosierBI on YouTube


Helpful resources

Announcements
November Carousel

Fabric Community Update - November 2024

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

Live Sessions with Fabric DB

Be one of the first to start using Fabric Databases

Starting December 3, join live sessions with database experts and the Fabric product team to learn just how easy it is to get started.

Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early Bird pricing ends December 9th.

Nov PBI Update Carousel

Power BI Monthly Update - November 2024

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

Top Solution Authors
Top Kudoed Authors