Imaginemos el siguiente caso:

Evaluando el contexto en PowerPivot (V). EARLIER (DAX)

Y queremos calcular el stock total que hay por días, siendo el primer día igual al del movimiento, de manera que quede de la siguiente forma:

Evaluando el contexto en PowerPivot (V). EARLIER (DAX)

Para hacer este cálculo vamos a necesitar una nueva función que modifique el contexto. Y esta es EARLIER. EARLIER devuelve el valor actual de la columna especificada en un paso de la evaluación exterior de la columna mencionada. Es decir, devuelve el valor justamente anterior de la columna exigida. Tiene la siguiente sintaxis: EARLIER(<column>, <number>) siendo

  • <column>: Columna o expresion que se resuelve en una columna
  • <num>: Número positivio apra el paso de la evaluación exterior. El siguiente nivel de evaluación exteriro se representa mediante 1; dos mediante el 2. Cuando se omite el valor predeterminado es 1

La función EARLIER requiere un contexto de fila anterior al principio del recorrido de tabla. De manera que nosotros no podemos poner =EARLIER(c,n) ya que el contexto de fila es la propia tabla. Para nuestro calculo, haríamos la siguiente formula.

=SUMX(
FILTER(Tabla,Tabla[Fecha]<=EARLIER(Tabla[Fecha]) && Tabla[Producto] = EARLIER(Tabla[Producto]) && Tabla[Talla] = EARLIER(Tabla[Talla]))
,Tabla[Movimiento Stock] )

De manera que con esta imagen y los colores vamos a verlo mejor:

Evaluando el contexto en PowerPivot (V). EARLIER (DAX)

 

El circulo naranja le esta dando el contexto de evaluación.

Con FILTER le estamos estableciendo el contexto de fila que debe de coger. Ponemos las condiciones de Producto y de talla para que solo compare los que son igual en talla y producto (es decir, el producto A, con el producto A; la talla XL con la talla XL). Con el filtro de fecha le decimos que solo coja las filas cuya fecha sea menor o igual a la fila evaluada. Por último en rojo tenemos el campo a sumar dentro del SUMX (recordar que sumx es para agregados donde el contexto se cambia)

Nos vemos.

Sergio

Índice de contenidos

I. Evaluando el contexto en PowerPivot

II. SUMX. Operaciones de Agregacion dependientes del contexto

III. Funcion ALL, FILTER, CALCULATE

IV. Calculate a fondo

V. EARLIER

 

0 Shares:
2 comments
  1. EXISTE UNA FUNCION CONTRARIA A SUMX()? QUE EN VEZ DE SUMAR RESTE EL VALOR DE UNA CELDA AL POSTERIOR O ANTERIOR DE ESA MISMA COLUMNA.
    DESEO OBTENER LA COLUMNA CALCULADA [DURACIÓN] , QUE SU VALOR SE OBTENGA DE RESTAR EL VALOR DE [MARCA TEMPORAL] AL VALOR POSTERIOR DE [MARCA TEMPORAL] DE LA MISMA PERSONA, TAL COMO MUESTRO EN EL EJEMPLO PARA LOS VALORES[DURACIÓN] DE JUAN[PERSONA]

    https://drive.google.com/file/d/0B9wSBGPHzHWlVE9mSWNNLVRTakk/view?usp=sharing

    https://drive.google.com/file/d/0B9wSBGPHzHWlMDVpVHJBekUzYjA/view?usp=sharing

    [MARCA TEMP] [PERSONA] [SECCIÓN] [DURACIÓN] [FORMULA]
    13/04/2016 5:44 PEPE PEDIDOS
    13/04/2016 5:44 PACO TAR.VAR
    13/04/2016 5:44 JUAN PEDIDOS 3:12:39 ( =A11-A4)
    13/04/2016 5:44 LOLA PEDIDOS
    13/04/2016 5:44 PEDRO REC
    13/04/2016 5:44 SANDRA PEDIDOS
    13/04/2016 5:44 MARIA PEDIDOS
    13/04/2016 6:51 PEPE EXP
    13/04/2016 7:54 PACO TIENDA
    13/04/2016 8:57 JUAN INCI 2:00:51 (=A18-A11)
    13/04/2016 9:59 LOLA TAR.VAR
    13/04/2016 10:02 PEDRO TIENDA
    13/04/2016 8:55 SANDRA REC
    13/04/2016 8:57 MARIA REC
    13/04/2016 9:49 PEPE TIENDA
    13/04/2016 9:54 PACO PEDIDOS
    13/04/2016 10:57 JUAN REC 0:08:00 (=A22-A18)
    13/04/2016 10:59 LOLA PEDIDOS
    13/04/2016 11:01 PEPE ALM.VERT
    13/04/2016 11:03 PACO REC
    13/04/2016 11:05 JUAN PEDIDOS 0:56:44 (=A29-A22)
    13/04/2016 11:07 LOLA ALM.VERT
    13/04/2016 11:08 PEDRO PEDIDOS
    13/04/2016 11:11 SANDRA PEDIDOS
    13/04/2016 12:03 MARIA SALIDA
    13/04/2016 12:02 PEPE SALIDA
    13/04/2016 12:02 PACO SALIDA
    13/04/2016 12:02 JUAN SALIDA 12:02:37 (=A29)
    13/04/2016 12:09 LOLA SALIDA
    13/04/2016 12:02 PEDRO SALIDA
    13/04/2016 12:02 SANDRA SALIDA

  2. ESTIMADO SERGIO ESPERO ME PUEDAS AYUDAR CON ESTE ASUNTO.
    DESEO OBTENER LA COLUMNA CALCULADA [DURACIÓN] , QUE SU VALOR SE OBTENGA DE RESTAR EL VALOR DE [MARCA TEMPORAL] AL VALOR POSTERIOR DE [MARCA TEMPORAL]
    EXISTE UNA FUNCION CONTRARIA A SUMX()? QUE EN VEZ DE SUMAR RESTE EL VALOR DE UNA CELDA AL POSTERIOR O ANTERIOR DE ESA MISMA COLUMNA.

    https://drive.google.com/file/d/0B9wSBGPHzHWlVE9mSWNNLVRTakk/view?usp=sharing

    https://drive.google.com/file/d/0B9wSBGPHzHWlMDVpVHJBekUzYjA/view?usp=sharing

    MIL GRACIAS DE ANTEMANO.
    EDGAR

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

You May Also Like
Leer más

Data Masking de datos sensibles… piénsalo dos veces

Dynamic data masking (enmascaramiento) es una técnica que busca limitar/ocultar información sensible sin requerir cambios en las aplicaciones. Los datos en la base de datos realmente no se modifican, se alteran “al vuelo” de forma que cuando las consultas devuelven resultados se aplican las máscaras apropiadas. Esto hace que esta funcionalidad sea sencilla de implementar ya que no requiere cambios sustanciales y sea bastante transparente para las aplicaciones que utilizan los datos enmascarados.