Filtro de fecha en la función Calcular

Un usuario Pregunto ✅

joseluis1969

Buenas tardes:
Estoy tratando de hacer una medida que refleje en una tabla el costo total presupuestado por día, mes y año SOLO HASTA la última fecha de la tabla «Real». Tengo (entre otras) las siguientes tablas en mi modelo de datos:
– calendario
– Ppto: Tabla de costes presupuestados del 01/01/2019 al 31/12/2019
– Real: Tabla de costos contables reales de 01/01/2019 al 28/06/2019
El resultado que pretendo obtener debe ser igual al que me daría la siguiente medida:

Total = calcular (suma (Ppto[importe]); filtrar (Calendario; Calendario[Date]<= VALOR (28/06/2019)))

La pregunta es: ¿Con qué expresión dax puedo sustituir VALOR (28/06/2019) por la FECHA FINAL de la tabla «Real»? (28/06/2019 es la última fecha de la tabla «Real»).

Por ejemplo, si utilizo esta medida: «calcular (suma (Ppto [importe); filter (Calendario; Calendario [Date] <= máx. (Real [date])) "el resultado que obtengo es incorrecto porque en la tabla «Real» no están todas las fechas que existen en la tabla «Calendario».

Gracias por adelantado,

José Luis

Anónimo

«La pregunta es: ¿Con qué expresión dax puedo sustituir VALOR (28/06/2019) por la FECHA FINAL de la tabla «Real»? (28/06/2019 es la última fecha de la tabla «Real») «.

Bueno, eso es bastante simple:

[Very Last Date in Real] :=
calculate(
    max( Real[Date] ),
    all( Real )
)

y así es como lo usarías:

var __lastDateInReal = [Last Date in Real]
return
calculate (
	sum ( Ppto[importe] );
	KEEPFILTERS( Calendario[Date] <= __lastDateInReal )
)

si desea cruzar filtros en Calendario que provienen del contexto externo … y esto es probablemente lo que desea hacer.

Mejor

Darek

Anónimo

«La pregunta es: ¿Con qué expresión dax puedo sustituir VALOR (28/06/2019) por la FECHA FINAL de la tabla «Real»? (28/06/2019 es la última fecha de la tabla «Real») «.

Bueno, eso es bastante simple:

[Very Last Date in Real] :=
calculate(
    max( Real[Date] ),
    all( Real )
)

y así es como lo usarías:

var __lastDateInReal = [Last Date in Real]
return
calculate (
	sum ( Ppto[importe] );
	KEEPFILTERS( Calendario[Date] <= __lastDateInReal )
)

si desea cruzar filtros en Calendario que provienen del contexto externo … y esto es probablemente lo que desea hacer.

Mejor

Darek

contestador

En respuesta a Anónimo

Hola a todos,

Cómo puedo usar una fórmula que me ayude a obtener el mismo período el mes pasado.

Ahora uso esto, pero es un error (texto rojo)

SPLM = CALCULAR ([mln st]; REPORT_IMS[VISIT YEAR]= AÑO (HOY ()); ‘REPORT_IMS'[VISIT MONTH]= MES (HOY ()) – 1; INFORME_IMS[WORKING DAY]<= CALCULAR(MAX (REPORT_IMS[WORKING DAY]; DATESMTD (REPORT_IMS[VISIT DATE]))))
¿Cómo puedo solucionarlo?
Básicamente necesito ventas (millones st) en el mes anterior en el mismo recuento de días hábiles en este mes

avanderschilden

Hola,

¿Qué pasa con esto?

Medida =

VAR MaxDateBalance = MAX (‘Tabla'[Date])

DEVOLUCIÓN CALCULAR (SUM (‘Tabla'[Column]), FILTRO (TODOS (‘Fecha’), ‘Fecha'[Date]

joseluis1969

En respuesta a avanderschilden

Hola:

Muchas gracias por su respuesta. La medida que indicas no funciona correctamente, trato de explicarlo con la siguiente imagen:

¿Algunas ideas?¿Algunas ideas?

avanderschilden

En respuesta a joseluis1969

No estoy seguro de haberlo entendido correctamente, pero la siguiente medida también muestra valores para períodos que no existen en la tabla de datos reales;

Importe real acumulado =

CALCULAR (SUMA (Real[Actual_Amount] ),
FILTRO (TODOS (‘Calendario’), ‘Calendario’ [Date] <= MAX ('Calendario'[Date] ))) Capture.PNG

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *