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
jkesavan
Frequent Visitor

Adición de dos celdas individuales para crear un total continuo.

Hola a todos, esto es muy fácil de hacer en Excel. He incluido algunos datos de ejemplo de lo que estoy tratando de lograr. Necesito un número de balanceo para HRS donde se agrega desde el ROL DE HRS y HRS trabajado. Espero que esto sea suficiente información.

Gracias

jkesavan_0-1600918484108.png

1 ACCEPTED SOLUTION
TomMartens
Super User
Super User

Hey @jkesavan ,

por desgracia, no hay nada como una celda en Power BI, sin mencionar que no existe tal concepto como una secuencia. Esto se debe al hecho de que los datos se almacenan en tablas, e incluso si la mayoría de las veces hacemos referencia a columnas en medidas y columnas calculadas, tenemos que hacer frente al desafío de filas no ordenadas dentro de estas tablas.

Por esta razón, la solución para su requisito puede parecer un poco exagerada, pero tenga la seguridad de que es sin embargo increíblemente rápido, al menos la mayor parte del tiempo.

Aquí hay una instrucción DAX que estoy usando para calcular una medida que estoy llamando "SalesAmount cumulado":

SalesAmount cumulated = 
CALCULATE(
    SUM('FactSales'[SalesAmount])
    , FILTER(
        ALL('DimDate'[Datekey])
        , 'DimDate'[Datekey] <= MAX('DimDate'[Datekey])
    )
) 

Esto es exactamente hacer lo que desea, vea la siguiente captura de pantalla:

TomMartens_0-1600920390032.png

Lo que es esencial para una solución de trabajo es una columna con valores que se pueden ordenar implícitamente, como fechas, enteros, etc. Esto se debe a que no existe tal cosa como un índice que se puede utilizar para ordenar.

La medida anterior funciona así: agrega (usando la función de agregación SUM) todos los valores de la columna SalesAmount en todas las filas que se filtran. Las filas se filtran, por esta expresión de filtro (el 2o parámetro de la función CALCULATE de la expresión DAX anterior): filtre todas las filas donde la clave de fecha es menor o igual a la clave de fecha actual. La clave de fecha actual viene determinada por la expresión en el lado derecho de fcondition MAX(...).

Como muchos de estos requisitos de balanceo, deslizamiento, acumulación están relacionados con el tiempo, recomiendo leer este artículo sobre cálculos relacionados con el tiempo: https://www.daxpatterns.com/time-patterns/

Con suerte, esto proporciona lo que está buscando.

saludos

Tom



Did I answer your question? Mark my post as a solution, this will help others!

Proud to be a Super User!
I accept Kudos 😉
Hamburg, Germany

View solution in original post

4 REPLIES 4
Ashish_Mathur
Super User
Super User

Hola

Asumiendo:

  1. EL HRS trabajado es una medida; Y
  2. Mes en el objeto visual se había arrastrado desde la tabla de calendario; Y
  3. Hay una relación entre la columna Fecha de la tabla de datos con la columna Fecha de la tabla de calendario

probar esta medida

•calculate([HRS worked],datesbetween(Calendar[Date],minx(all(calendar),calendar[date]),max(calendar[date]))

Espero que esto ayude.


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/
v-easonf-msft
Community Support
Community Support

Hola, @jkesavan

Puedes probar la medición como se indica a continuación si no consideras el año:

HRS Rolling = 
var MyMonth=MAX('Table'[Month])
return
CALCULATE(
            SUM('Table'[HRS Worked])
            ,FILTER(
                ALL('Table')
                ,'Table'[Month]<=MyMonth 
            )
      )
LTI Rolling = 
var MyMonth=MAX('Table'[Month])
return
CALCULATE(
            SUM('Table'[LTI's])
            ,FILTER(
                ALL('Table')
                ,'Table'[Month]<=MyMonth 
            )
      )

También puede probar la columna calculada como se indica a continuación:

Column_HRS Worked = CALCULATE(SUM('Table'[HRS Worked]),FILTER( 'Table','Table'[Month]<=EARLIER('Table'[Month])))
Column_LTI Rolling = CALCULATE(SUM('Table'[LTI's]),FILTER( 'Table','Table'[Month]<=EARLIER('Table'[Month])))

El resultado se mostrará como se muestra a continuación:

83.png

Consulte el archivo adjunto para obtener más detalles.

Saludos
Equipo de soporte de la comunidad _ Eason

TomMartens
Super User
Super User

Hey @jkesavan ,

por desgracia, no hay nada como una celda en Power BI, sin mencionar que no existe tal concepto como una secuencia. Esto se debe al hecho de que los datos se almacenan en tablas, e incluso si la mayoría de las veces hacemos referencia a columnas en medidas y columnas calculadas, tenemos que hacer frente al desafío de filas no ordenadas dentro de estas tablas.

Por esta razón, la solución para su requisito puede parecer un poco exagerada, pero tenga la seguridad de que es sin embargo increíblemente rápido, al menos la mayor parte del tiempo.

Aquí hay una instrucción DAX que estoy usando para calcular una medida que estoy llamando "SalesAmount cumulado":

SalesAmount cumulated = 
CALCULATE(
    SUM('FactSales'[SalesAmount])
    , FILTER(
        ALL('DimDate'[Datekey])
        , 'DimDate'[Datekey] <= MAX('DimDate'[Datekey])
    )
) 

Esto es exactamente hacer lo que desea, vea la siguiente captura de pantalla:

TomMartens_0-1600920390032.png

Lo que es esencial para una solución de trabajo es una columna con valores que se pueden ordenar implícitamente, como fechas, enteros, etc. Esto se debe a que no existe tal cosa como un índice que se puede utilizar para ordenar.

La medida anterior funciona así: agrega (usando la función de agregación SUM) todos los valores de la columna SalesAmount en todas las filas que se filtran. Las filas se filtran, por esta expresión de filtro (el 2o parámetro de la función CALCULATE de la expresión DAX anterior): filtre todas las filas donde la clave de fecha es menor o igual a la clave de fecha actual. La clave de fecha actual viene determinada por la expresión en el lado derecho de fcondition MAX(...).

Como muchos de estos requisitos de balanceo, deslizamiento, acumulación están relacionados con el tiempo, recomiendo leer este artículo sobre cálculos relacionados con el tiempo: https://www.daxpatterns.com/time-patterns/

Con suerte, esto proporciona lo que está buscando.

saludos

Tom



Did I answer your question? Mark my post as a solution, this will help others!

Proud to be a Super User!
I accept Kudos 😉
Hamburg, Germany
amitchandak
Super User
Super User

@jkesavan, tengo fecha puedes hacerlo así. otro uso allselected /all en la mesa en lugar de la tabla de fechas

Ventas de Cumm: CALCULATE(SUM(Table[Hours Worked]),filter(allselected (date),date[date] <-maxx(date,date[date])))
Ventas de Cumm: CALCULATE(SUM(Table[Hours Worked]),filter(allselected (date),date[date] <-max(Table[Sales Date]))
Ventas de Cumm: CALCULATE(SUM(Table[Hours Worked]),filter(allselected (date),date[date] <-maxx(date,max(dateadd(date[date]),-1,year))))

Ventas de Cumm: CALCULATE(SUM(Table[LTI's]),filter(allselected (date),date[date] <-maxx(date,date[date])))
Ventas de Cumm: CALCULATE(SUM(Table[LTI's]),filter(allselected (date),date[date] <-max(Table[Sales Date])))

Ventas de Cumm: CALCULATE(SUM(Table[LTI's]),filter(allselected (date),date[date] <-maxx(date,max(dateadd(date[date]),-1,year))))

En lugar de la fecha se puede utilizar mes en formato AAAAM

o convertir el formato actual a la fecha

Fecha: "01-" & [mes] //Cambiar el tipo de datos hasta la fecha

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.