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.
Hola a todos
¡Esperando que alguien pueda ayudar!
Nuevo en DAX / M (más de un tipo SQL!)
Esto debería ser fácil... pero no puedo encontrar la sintaxis correcta!
Tengo una tabla de auditoría que siempre genera el valor más reciente para cada producto de inventario cada vez que se mueve (vendido, comprado, etc.).
No todos los artículos de inventario se mueven en una fecha determinada.
Por lo tanto, el último registro de cada producto de inventario representa el valor actual del Producto.
Estoy intentando mostrar un objeto visual de matriz que permite pasar una fecha al objeto visual y al valor más reciente (antes de la fecha dada por el filtro) para cada producto de inventario que se va a mostrar.
He probado muchas soluciones ofrecidas por los usuarios aquí, pero no puedo clavarlo!
Aquí hay algunos datos de muestra (el formato de fecha es dd/mm/aaaa).
Sitio se usará como un filtro de página para agrupar los resultados por sitio.
Así que es realmente sólo el último valor para cada producto de inventario usando una fecha pasada al objeto visual.
InventoryProduct | Sitio | Fecha | Valor |
1 | 1 | 1/02/2020 | 15 |
2 | 2 | 25/01/2020 | 18 |
3 | 1 | 2/02/2020 | 16 |
4 | 2 | 27/01/2020 | 5 |
1 | 1 | 5/02/2020 | 14 |
3 | 1 | 5/02/2020 | 17 |
2 | 2 | 3/02/2020 | 20 |
4 | 2 | 10/02/2020 | 19 |
1 | 1 | 10/02/2020 | 18 |
1 | 1 | 11/02/2020 | 1 |
2 | 2 | 11/02/2020 | 0 |
3 | 1 | 12/02/2020 | 12 |
4 | 1 | 14/02/2020 | 20 |
1 | 1 | 15/02/2020 | 12 |
2 | 2 | 15/02/2020 | 5 |
¡Gracias de antemano!
Hola @TVI7
Por favor, compruebe si lo siguiente le ayuda.
Crear medidas
Measure =
VAR lastdate1 =
CALCULATE (
MAX ( 'Table'[Date] ),
FILTER (
ALLSELECTED ( 'Table' ),
'Table'[InventoryProduct]
= MAX ( 'Table'[InventoryProduct] )
)
)
RETURN
CALCULATE (
SUM ( 'Table'[Value] ),
FILTER (
ALLSELECTED ( 'Table' ),
'Table'[InventoryProduct]
= MAX ( 'Table'[InventoryProduct] )
&& 'Table'[Date] = lastdate1
)
)
total_sum = IF(ISINSCOPE('Table'[InventoryProduct]),[Measure],SUMX(ALL('Table'[InventoryProduct]),[Measure]))
Saludos
Maggie
Equipo de Apoyo Comunitario _ Maggie Li
Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Gracias @v-juanli-msft @amitchandak ,
Ambas soluciones no me dan exactamente lo que estoy buscando.
En realidad, necesito encontrar el registro más alto (fila) cuando se le da una fecha.
Esto se agrupará en el objeto visual por el producto Sitio e inventario.
así que si fuera a añadir un filtro de fecha al objeto visual para '10/2/2020', contendría el registro máximo para cada inventarioproducto antes de esa fecha.
He probado las funciones EARLIEST (tengo un índice en los datos), pero no puedo hacer que funcione.
@TVI7 , Suponiendo que el sitio esté filtrado
Measure =
VAR __id = MAX ( 'Table'[InventoryProduct] )
VAR __date = CALCULATE ( MAX( 'Table'[Date] ), ALLSELECTED ( 'Table' ), 'Table'[InventoryProduct] = __id )
RETURN CALCULATE ( sum ( 'Table'[Value] ), VALUES ( 'Table'[InventoryProduct ), 'Table'[InventoryProduct] = __id, 'Table'[Date] = __date )
Utilice esta medida en
Gracias @amitchandak
Eso ha resuelto las líneas perfectamente, sin embargo, los totales de la columna (agrupados o planos) se enumeran como cero.
Han comprobado dos veces los tipos de datos y confirmado que están establecidos en Moneda para la columna Valor.
Sin embargo, el total se mantiene en 0,00.
@TVI7 ,Pruebe esto en la medida antigua
Medida 2o
sumx(summarize(Table,Table[InventoryProduct],Table[Date],"_1", [Measure]),[_1])
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |