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

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

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
Employee
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
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

MayPowerBICarousel

Power BI Monthly Update - May 2024

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

LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.

Top Solution Authors