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

Don't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.

Reply
Anonymous
Not applicable

Calcular días entre dos fechas

Hola a todos,

Quiero calcular el número de días entre la primera y la última fecha de un cliente. La fórmula actual para la columna es:

Número de días 1 * Tabla[Date_end] - Tabla[Date_start]

Esta fórmula no tiene en cuenta Customer_ID. Como consecuencia, la suma y el promedio de días es incorrecto. Algunos clientes tienen muchas filas, y algunos clientes sólo unos pocos (ver tabla).

Y la fórmula debe calcular una fila para cada cliente. Por lo tanto, el resultado de la suma debe ser 333 + 1581 - 1914 y el promedio debe ser 957. Pero este no es el caso, ya que toma la suma de cada fila. ¿De qué manera se puede resolver esto?

Customer_IDDate_endDate_startDías entre fechas
395231-7-20191-9-2018333
395231-7-20191-9-2018333
812131-3-20211-12-20161581
812131-3-20211-12-20161581
812131-3-20211-12-20161581
812131-3-20211-12-20161581
812131-3-20211-12-20161581
812131-3-20211-12-20161581
812131-3-20211-12-20161581
812131-3-20211-12-20161581

2 ACCEPTED SOLUTIONS
amitchandak
Super User
Super User

@Johan94

Para uso visual de una medida como esta

AverageX(summarize(table,table[Customer_ID],"_Avg",average(Table[Days between dates]]),[_Avg])

Join us as experts from around the world come together to shape the future of data and AI!
At the Microsoft Analytics Community Conference, global leaders and influential voices are stepping up to share their knowledge and help you master the latest in Microsoft Fabric, Copilot, and Purview.
️ November 12th-14th, 2024
 Online Event
Register Here

View solution in original post

Ashish_Mathur
Super User
Super User

Hola

Suponiendo que el número de días es una medida, pruebe esta medida para obtener la suma correcta en la fila Grand/subtotal

•IF(HASONEVALUE(Data[Customer_ID]),[Número de días],SUMX(SUMMARIZE(VALUES(Data[Customer_ID]),Data[Customer_ID],"ABCD",1*(MAX(Data[Date_end])-MIN(Data[Date_end]))),[ABCD]))

Si esto no ayuda, entonces comparte el enlace desde donde puedo descargar tu archivo PBI.


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

View solution in original post

5 REPLIES 5
Ashish_Mathur
Super User
Super User

Hola

Suponiendo que el número de días es una medida, pruebe esta medida para obtener la suma correcta en la fila Grand/subtotal

•IF(HASONEVALUE(Data[Customer_ID]),[Número de días],SUMX(SUMMARIZE(VALUES(Data[Customer_ID]),Data[Customer_ID],"ABCD",1*(MAX(Data[Date_end])-MIN(Data[Date_end]))),[ABCD]))

Si esto no ayuda, entonces comparte el enlace desde donde puedo descargar tu archivo PBI.


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/
Anonymous
Not applicable

Gracias, @Ashish_Mathur

Esta fórmula es un poco más de trabajo en comparación con las otras soluciones, pero la fórmula funciona :).

En la fórmula hay un pequeño error; es MIN(Data[Date_start]. Por lo tanto, para evitar confusiones para los demás, la fórmula es la siguiente:

•IF(HASONEVALUE(Data[Customer_ID]),[Número de días],SUMX(SUMMARIZE(VALUES(Data[Customer_ID]),Datos[Customer_ID],"ABCD",1*(MAX(Data[Date_end])-MIN(Datos[Date_start])))[ABCD]))

De nada.


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

hola @Johan94

Esto parece un problema de totales de medida. Muy común. Ver este post al respecto
https://community.powerbi.com/t5/DAX-Commands-and-Tips/Dealing-with-Measure-Totals/td-p/63376

Además, esta medida rápida, medida totales, la palabra final debe obtener lo que necesita:
https://community.powerbi.com/t5/Quick-Measures-Gallery/Measure-Totals-The-Final-Word/m-p/547907

Para su caso, simplemente cree dos medidas como se muestra a continuación:

outcome of the Sum = 
var _table=SUMMARIZE('Table','Table'[Customer_ID],"_value",AVERAGE('Table'[Number of days])) 
return
SUMX(_table,[_value])
outcome of the Avg = 
var _table=SUMMARIZE('Table','Table'[Customer_ID],"_value",AVERAGE('Table'[Number of days])) 
return
AVERAGEX(_table,[_value])

Resultado:

1.JPG

y aquí está el archivo pbix de muestra, por favor pruébelo.

saludos

Lin

Community Support Team _ Lin
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
amitchandak
Super User
Super User

@Johan94

Para uso visual de una medida como esta

AverageX(summarize(table,table[Customer_ID],"_Avg",average(Table[Days between dates]]),[_Avg])

Join us as experts from around the world come together to shape the future of data and AI!
At the Microsoft Analytics Community Conference, global leaders and influential voices are stepping up to share their knowledge and help you master the latest in Microsoft Fabric, Copilot, and Purview.
️ November 12th-14th, 2024
 Online Event
Register Here

Helpful resources

Announcements
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!

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.

Top Solution Authors
Top Kudoed Authors