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, chicos
Me enfrento a un desafío interesante de DAX para visualizar el desarrollo de nuestros valores de inventario basados en categorías de tiempo de almacenamiento predefinidas.
Mis datos se ven como esto (solo columnas relevantes para este problema):
| Id | date_in | storage_time_days | storage_time_category |
| 1 | 01.01.2020 | 189 | E |
| 2 | 04.02.2020 | 155 | D |
| 3 | 06.03.2020 | 124 | D |
| 4 | 20.04.2020 | 79 | C |
| 5 | 20.04.2020 | 79 | C |
| 6 | 21.04.2020 | 78 | C |
| 7 | 05.05.2020 | 64 | C |
| 8 | 06.05.2020 | 63 | C |
| 9 | 30.06.2020 | 8 | A |
| 10 | 02.07.2020 | 6 | A |
Las columnas "storage_time_days" y "storage_category" son columnas calculadas, haciendo referencia al datediff para date_in y today().
Así que en este momento, soy capaz de mostrar nuestros valores de inventario por "storage_time_category" para la fecha de hoy con bastante facilidad.
Pero dado que esas columnas calculadas se basan en la función today(), no puedo mostrar ninguna serie temporal para el valor de inventario por "storage_time_category", respondiendo a preguntas como "¿cómo se desarrolló el valor de inventario para storage_time_category A a lo largo del tiempo?".
Después de algunos intentos y errores, estoy un poco atascado y no puedo encontrar una solución para una nueva tabla calculada o una medida, que transforma la función today() en un rango de fechas flexible.
¡Espero que alguien aquí pueda iluminarme!
Gracias y saludos,
Jano
@Jano - No tengo claro lo que está tratando de lograr. No es realmente suficiente información para seguir adelante, por favor primero compruebe si su problema es un problema común enumerado aquí: https://community.powerbi.com/t5/Community-Blog/Before-You-Post-Read-This/ba-p/1116882
Además, consulte este post sobre cómo obtener respuesta a su pregunta rápidamente: https://community.powerbi.com/t5/Community-Blog/How-to-Get-Your-Question-Answered-Quickly/ba-p/38490
Las partes más importantes son:
1. Datos de muestra como texto, utilice la herramienta de tabla en la barra de edición
2. Salida esperada de los datos de muestra
3. Explicación en palabras de cómo obtener de 1. a 2.
@Greg_Deckler Gracias por su respuesta.
No pude encontrar ningún post relacionado aquí.
Estoy tratando de hacerlo más claro:
La storage_time_days de columna se basa en el date_in de date_in y hoy en día.
Quiero calcular mi tiempo de almacenamiento de inventario para cualquier fecha dada que se remonta.
Por ejemplo, storage_time_days se calculan a partir de today() (2020-07-08), pero ahora quiero saber, cómo fueron esos tiempos de almacenamiento en 2020-07-03.
Esperanza, eso lo hace más claro.
Saludos
Jano
@Jano - OK, así que supongamos que tiene una tabla desconectada para un calendario y va a elegir una fecha en una segmentación de datos de esa tabla como fecha de destino. Entonces podrías escribir una medida como esta:
Measure =
VAR __Today = TODAY()
VAR __Date = MAX('Calendar'[Date])
VAR __StorageTime = MAX('Table'[storage_time])
RETURN
__StorageTime - ( __Today - __Date ) * 1.
Así que esencialmente usted está recibiendo su __StorageTime en contexto y luego simplemente restando el número de días entre hoy y la fecha elegida.
hola @Jano
En primer lugar, usted debe saber que:
1. Columna de cálculo/ tabla no admite cambios dinámicos en función del filtro o la segmentación de datos.
2. La medida puede verse afectada por el filtro/slicer, por lo que puede usarlo para obtener el resultado de resumen dinámico en un objeto visual por su contexto de fila.
https://www.sqlbi.com/articles/calculated-columns-and-measures-in-dax/
En segundo lugar, para su requisito, podría usar una medida para obtenerlo como se indica a continuación:
Paso 1:
Cree una tabla de fechas independiente como segmentación de datos para cambiar cualquier fecha
Step2:
Crear una medida como esta
storage_time_days =
DATEDIFF ( MAX ( 'Table'[date_in] ), MAX ( 'Separate'[date] ), DAY )
Ahora arrastre [id],[date_in] y esta medida a un objeto visual de tabla para mostrar el resultado.
saludos
Lin