DAX – Medidas semiaditivas

Cuando trabajamos con tablas que muestran saldos, como fotos de Stock o de Clientes, seguro necesitemos la forma de definir una métrica semi-aditiva, es decir, que no sume en el tiempo. Normalmente se busca que sino se especifica una fecha, muestre el saldo mas actual, o dado un rango de fechas, muestre el valor al final de cada período.

Sino definiera una métrica acorde, un usuario desprevenido podría sumar toda la historia, en la imagen siguiente vemos el problema de Sumar, nuestro Stock valido solo es dada una fecha puntual.

DAX LNE 1

Desde que aparecieron las variables en DAX el como hacer esta métrica es relativamente sencillo.

La primera opción podría ser:

VAR vLastDate =
    LASTDATE ( DimDate[Date] )
RETURN
    CALCULATE ( SUM ( FactProductInventory[UnitsBalance] ), vLastDate )

y aparentemente se ve mas cerca de lo buscando

DAX LNE 2

Esta primera opción tiene la limitación en el año o mes en curso, pues si todavía no tenemos valores mostrará nivel año o mes un valor vacío. Para esto podemos usar otra función que mostraría la ultima fecha disponible.

Para una mejor compresión de la limitación de la primer opción restringí mis datos al importar al 30-01-2011…

UnitsBalance (LastNonBlank) =
VAR vLastNonBlank =
    CALCULATETABLE (
        LASTNONBLANK ( DimDate[Date], CALCULATE ( COUNTROWS ( FactProductInventory ) ) )
    )
RETURN
    CALCULATE ( SUM ( FactProductInventory[UnitsBalance] )vLastNonBlank )

DAX LNE 3

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s