Cómo calcular PY MTD hasta ayer

Un usuario Pregunto ✅

Nisarahamed

Hola,

Estoy tratando de crear una columna que necesite generar datos PY MTD hasta ayer el año pasado. Estoy usando esta fórmula:

Orden $ PY MTD1 = CALCULAR (SUMA (Órdenes[Order $ PY MTD]), SAMEPERIODLASTYEAR (Pedidos[Cal Day]))

En realidad, la fórmula anterior genera datos PY MTD hasta hoy el año pasado.

¿Alguien puede ayudarme con esto por favor?

Gracias,

Nisar

Anónimo

// You have to have a correct model for this to work.
// Calendar is your date table.
// Orders is your fact table connected to Calendar
// via Orders[Cal Day] and Calendar[Date].

Order $ PY MTD1 =
	CALCULATE (
	    [Total Amount],
	    SAMEPERIODLASTYEAR(
	    	DATESMTD( 
	    		PREVIOUSDAY( 
	    			LASTDATE(Calendar[Date] )
	    		)
	    	)
	    )
	)

Mejor

D

Nisarahamed

En respuesta a Anónimo

Gracias por tu respuesta @Anónimo. Intenté implementar el Dax que me compartiste. Me quedé en blanco como resultado.

Greg_Deckler

No es claro. Consulte esta publicación sobre cómo obtener una respuesta rápida a su pregunta: https://community.powerbi.com/t5/Community-Blog/How-to-Get-Your-Question-Answered-Quickly/ba-p/38490

Vea si mi Time Intelligence the Hard Way proporciona una forma diferente de lograr lo que está buscando.

https: //community.powerbi.com/t5/Quick-Measures-Gallery/Time-Intelligence-quot-The-Hard-Way-quot-TIT …

Nisarahamed

En respuesta a Greg_Deckler

Hola @Greg_Deckler,

Lo que publiqué en mi pregunta fue que quería encontrar el MTD del año pasado hasta la fecha de ayer, lo que significa que la fecha de hoy es el 21/4/2020. Quiero mostrar los pedidos de MTD del año anterior hasta ayer, que es del 1/4/2019 al 20/4/2019.

Espero haber sido claro en este momento.

Gracias,

Nisar

Greg_Deckler

En respuesta a Nisarahamed

Bien, no conozco una función de inteligencia de tiempo que haga eso. Puede que haya uno, pero lo he comprobado y no veo nada. Entonces, tendrá que ir con https: //community.powerbi.com/t5/Quick-Measures-Gallery/Time-Intelligence-quot-The-Hard-Way-quot-TIT …. Entonces su cálculo será algo parecido a:

Medida =

VAR __CurrentDate = HOY ()

VAR __MinDate = FECHA (AÑO (__ Fecha actual) – 1), MES (__ Fecha actual), 1)

VAR __MaxDate = __CurrentDate – 1

REGRESO

SUMX (FILTER (‘Tabla’,[Date]> = __ MinDate && [Date] <= __MaxDate),[Column])

Nisarahamed

En respuesta a Greg_Deckler

Gracias por responder @Greg_Deckler. Intenté implementar su Dax pero la respuesta no coincide cuando la verifico. Por favor, encuentre la fórmula a continuación.

Orden $ PY MTD2 =

VAR __CurrentDate = HOY ()

VAR __MinDate = FECHA (AÑO (__ Fecha actual) – 1, MES (__ Fecha actual), 1)

VAR __MaxDate = __CurrentDate – 1

REGRESO

SUMX (FILTRO (Órdenes, Órdenes[Cal Day]> = __ MinDate && Orders[Cal Day] <= __MaxDate), Pedidos[Net Order $])
Saludos,
Nisar

Greg_Deckler

En respuesta a Nisarahamed

Extremadamente difícil de solucionar sin datos de muestra y el resultado esperado. Su fórmula parece tener un MinDate del primer día del mes del año pasado, por lo que si hoy es el 22/4/2020, devolverá el 1/4/2020. ¿Es eso lo que quieres? MaxDate en tu caso sería el 21/4/2020, ¿es eso lo que quieres?

Puede verificar que los componentes individuales son lo que desea simplemente devolviéndolos en su declaración RETURN y comentando el SUMX con // delante de él.

Nisarahamed

En respuesta a Greg_Deckler

@Greg_Deckler está bien, déjame agregar una captura de pantalla para una ilustración clara. duda.PNG

En la imagen de arriba, como puede ver, la columna de la orden $ PY MTD muestra los datos del año anterior el mismo día, que es el 22 de abril de 2019. En realidad, quería mostrar datos hasta el 21 de abril de 2019, que es el día anterior del año anterior.

Por favor avíseme si se requiere alguna otra información.

Gracias

Greg_Deckler

En respuesta a Nisarahamed

OK, quizás:

VAR __CurrentDate = HOY ()

VAR __PreviousYearPrevious = FECHA (AÑO (__ Fecha actual) – 1, MES (__ Fecha actual), DÍA (__ Fecha actual) – 1)

VAR __CurrentYearPreviousDay = __CurrentDate – 1

REGRESO

SUMX (FILTRO (Órdenes, Órdenes[Cal Day]> = __ PreviousYearPrevious && Pedidos[Cal Day] <= __CurrentYearPreviousDay), Pedidos[Net Order $])

Nisarahamed

En respuesta a Greg_Deckler

@Greg_Deckler Gracias por tu respuesta. Aún así, el número no se muestra correctamente. Le he pedido al equipo de backend que cree una medida en la propia base de datos SQL. Aprecio tu ayuda.

Gracias,

Nisar

Anónimo

En respuesta a Nisarahamed

Tienes mi medida que funciona perfectamente correctamente pero no la estás haciendo bien. A la cabeza de mi medida hay una pista:

// Tienes que tener un modelo correcto para que esto funcione.
// El calendario es tu tabla de fechas.
// Pedidos es su tabla de hechos conectada a Calendar
// a través de pedidos[Cal Day] y calendario[Date].

Mejor
D

Nisarahamed

En respuesta a Anónimo

Hola @Anónimo

He usado tu dax para implementarlo en el mío.

Orden $ PY MTD1 =
CALCULAR (
SUM (Pedidos[Net Order $]),
SAMEPERIODLASTYEAR (
FECHASMTD (
EL DÍA ANTERIOR(
LASTDATE (‘Fecha'[Date])
)
)
)
)
Esta vez he creado una nueva tabla de fechas y he creado un modelo. Aún así, los números no coinciden.
No tengo muchas tablas aquí en mi informe, son solo 2 tablas. Uno es facturación y otro es fecha. No estoy seguro de qué está causando este problema.
Mientras tanto, lo he rectificado hablando con el equipo de datawarehouse. Todavía quería saber cómo podemos solucionar esto en la interfaz.
De todos modos gracias por tu ayuda.
Gracias,
Nisar

Deja un comentario

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