Don't miss your chance to take the Fabric Data Engineer (DP-700) exam on us!
Learn moreWe've captured the moments from FabCon & SQLCon that everyone is talking about, and we are bringing them to the community, live and on-demand. Starts on April 14th. Register now
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.
If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.
A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.
Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.