Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!The Power BI Data Visualization World Championships is back! It's time to submit your entry. Live now!
Hola a todos, quiero crear una nueva columna calculada que iterará a través de mis filas y devolverá un valor promedio para los valores actuales y pasados 2 para cada nombre único teniendo en cuenta Tiempo
| Nombre | hora | Cantidad | VALOR DEVUELTO ESPERADO |
| A | 10:00 | 4 | (puede ser nulo o 4) |
| B | 10:00 | 5 | (puede ser nulo o 5) |
| A | 11:00 | 3 | (puede ser nulo o 3.5) |
| B | 11:00 | 1 | (puede ser nulo o 6) |
| A | 12:00 | 1 | 8 (4+3+1) / 3 a 8/3 |
| B | 12:00 | 5 | 11(5+1+5) / 3 a 11/3 |
| A | 13:00 | 6 | 10 (3+1+6) / 3 a 10/3 |
| B | 13:00 | 3 | 9 (1+5+3) / 3 á 3 |
| A | 14:00 | 5 | 12 (1+6+5) / 3 á 4 |
¿Por qué necesito esto? Porque quiero crear un gráfico de líneas que usará Tiempo como eje X y para cada hora mostrará un valor promedio para esta hora y dos horas pasadas. Como se puede ver encima de la función para Nombre a y Hora a 14:00 devuelve la base media en Importe de 12:00, 13:00 y 14:00 donde Nombre a A. También es importante tener en cuenta que hay más de una fecha en mis datos, así que tenga en cuenta que el nombre a A, la hora a las 10:00 puede ocurrir varias veces, pero con una fecha diferente. Entonces, supongo que el desafío es crear e indexar que tendrá en cuenta tanto la fecha, la hora y el nombre y luego usar este índice para interatar sobre la cantidad?
@Termigez
Primero debe crear un índice para el [Tiempo], por lo que puede mirar hacia atrás para un rango, porque el tipo de tiempo no es compatible
Index = RANKX('Table',[Time],,ASC,Dense)
Result = CALCULATE(AVERAGE('Table'[Amount]),FILTER('Table',[Name]=EARLIER('Table'[Name])),FILTER('Table','Table'[Index]<=EARLIER('Table'[Index])&&'Table'[Index]>EARLIER('Table'[Index])-3))
Paul Zheng
Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Pruebe uno de los dos como columnas
Avg = avergageX(filter(table,table[Name] =earlier(table[Name]) && table[time] <=earlier(table[time])),table[Amount])
Avg = avergageX(filter(table,table[Name] =earlier(table[Name]) && table[time] <earlier(table[time])),table[Amount])
Desafortunadamente esas fórmulas no funcionan. Agradecería cualquier otra idea.
The Power BI Data Visualization World Championships is back! It's time to submit your entry.
Check out the January 2026 Power BI update to learn about new features.