cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Syndicate_Admin
Administrator
Administrator

Añadir medida calculando diferencia otros dos measxures / columnas para ser utilizados en matriz

Queridos todos,

Trato de reproducir algunas sugerencias hechas aquí en el foro para construir una columna de comparación, que contenga la diferencia de otras dos columnas en una matriz. Se trata del siguiente ejemplo de una matriz:

Power_BI_Adapt_1-1669715620903.png

Construido por:

Power_BI_Adapt_2-1669715964375.png

Traducir:

* Rijen = filas

* Descripción = descripción

* Columnas = columnas

* Valor = Valores

* Historische AIP = precio histórico

* Diff AIP = precio de diferencia

Ya construí una medida llamada 'Diff AIP' para comparar dos columnas (precio histórico para el 1 de marzo y el 1 de noviembre), pero no hay resultado:

Diff AIP =
CALCULAR (
[AIP histórico],
FILTRO (
TODO ( 'Dim Datum' [Fecha real] ),
'Dim Datum'[Fecha real] = 1-11-2022
)
)
- CALCULAR (
[AIP histórico],
FILTRO (
TODO ( 'Dim Datum' [Fecha real] ),
'Dim Datum'[Fecha real] = 1-3-2022
)
)

Gracias de antemano por cualquier sugerencia de cómo resolver esto.

Atentamente

1 ACCEPTED SOLUTION

Acabo de encontrar el soultion:

En lugar de

VAR __DeTE2 = FECHAADD(__Date1, -8MOENÉSIMO)
Lo es:
VAR __Date2 = DATEADD('Dim Datum'[Fecha real], -8, MES)

La medida completa es:

Diff AIP_6 =

DÓNDE __CurrentMonth = MES(HOY())

DÓNDE __CurrentYear = AÑO(HOY())

DÓNDE __Date1 = FECHA(__CurrentYear,__CurrentMonth,1)

DÓNDE __Date2 = FECHAAÑADIR('Dim Datum' [Fecha real], -8, MES)


DEVOLUCIÓN
CALCULAR (
[AIP histórico],
FILTRO (
TODO ( 'Dim Datum' [Fecha real] ),
'Dim Datum'[Fecha real] = __Date1
)
)
- CALCULAR (
[AIP histórico],
FILTRO (
TODO ( 'Dim Datum' [Fecha real] ),
'Dim Datum'[Fecha real] = __Date2
)
)

View solution in original post

12 REPLIES 12
Syndicate_Admin
Administrator
Administrator

Gracias, se han hecho todas las correcciones. Desafortunadamente, la primera columna que se definirá en la función DATEADD todavía no funciona. Dice con la columna '__Date1' (marcada en rojo debajo): 'El parámetro no es el tipo correcto'

Así que dudo si se está reconociendo el nombre o formato de columna correcto.

Diff AIP_6 =

VAR __CurrentMonth = MOENÉSIMO(TODÍA())

DÓNDE __CurrentYear = YOREJA(MUERTEAY())

DÓNDE __Esee1 = ..DATE(__CurrentYear,__CurrentMonth,1)

VAR __DeTE2 = FECHAADD(__Date1, -8MOENÉSIMO)


DEVOLUCIÓN
CALCUTARDE (
[Histor AIP],
FILTRO (
TODO ( 'fecha tenue«[Dato Actual] ),
'Dim Datum'[Fecha Actual] = __Date1
)
)
- GUSTARCULAR (
[Históricoque AIP],
FILTRO (
ALL ( «Den fecha'[fecha Actuarual] ),
'Fumar sítum'[Fecha real] = __Date2
)
)

Syndicate_Admin
Administrator
Administrator

¡Gracias! Esto está funcionando correctamente.

Solo me pregunto: ¿Cómo podría hacer esto de manera más dinámica? Este mes comparo los precios del 1 de noviembre con el 1 de marzo. El próximo mes compararé el 1 de diciembre con el 1 de abril (o 1 de noviembre). ¿Cómo puedo hacerlo dinámicamente, sin ajustar cada monthe la medida 'Diff AIP'?

Syndicate_Admin
Administrator
Administrator

Hola @Power_BI_Adapt !

Debe reemplazar " 1-11-2022" por DATE(2022,11,1) y 1-3-2022 por DATE(2022,3,1). Vea si resuelve el problema 🙂

Solo me pregunto: ¿Cómo podría hacer esto de manera más dinámica? Este mes comparo los precios del 1 de noviembre con el 1 de marzo. El próximo mes compararé el 1 de diciembre con el 1 de abril (o 1 de noviembre). ¿Cómo puedo hacerlo dinámicamente, sin ajustar cada monthe la medida 'Diff AIP'?

Puedes hacer algo como esto:

VAR __CurrentMonth = MES(HOY())

VAR __CurrentYear = AÑO(HOY())

VAR __Date1 = FECHA(1,__CurrentMonth,__CurrentYear)

VAR __Date2 = DATEDADD(Fecha1, -8, MESES)

Y luego use las variables en el foro actual de DAX.

Incluso puede ir más allá creando un parámetro What If para hacer que el número de meses a restar en DATEADD sea dinámico para el usuario.

¡Muchas gracias!

Como no estoy tan familiarizado con la funcionalidad del VAR, ¿cómo encajaría esto en la medida inferior?

Diff AIP =

CALCULAR (
[AIP histórico],
FILTRO (
TODO ( 'Dim Datum' [Fecha real] ),
'Dim Datum'[Fecha real] = FECHA(2022,11,1)
)
)
- CALCULAR (
[AIP histórico],
FILTRO (
TODO ( 'Dim Datum' [Fecha real] ),
'Dim Datum'[Fecha real] = FECHA(2022,3,1)
)
)

Con VAR se declaran variables que luego se pueden llamar en el código.

Se vería algo como esto:

Diff AIP =

VAR __CurrentMonth = MES(HOY())

VAR __CurrentYear = AÑO(HOY())

VAR __Date1 = FECHA(1,__CurrentMonth,__CurrentYear)

VAR __Date2 = DATEDADD(Fecha1, -8, MESES)

DEVOLUCIÓN

CALCULAR (
[AIP histórico],
FILTRO (
TODO ( 'Dim Datum' [Fecha real] ),
'Dim Datum'[Fecha real] = __Date1
)
)
- CALCULAR (
[AIP histórico],
FILTRO (
TODO ( 'Dim Datum' [Fecha real] ),
'Dim Datum'[Fecha real] = __Date2
)
)
Si mis sugerencias anteriores resolvieron su problema, no olvide marcarlo como una solución y felicitar 🙂

¡Muchas gracias!

Ya casi estoy allí....

Dentro de la variable

DÓNDE __Date2 = DATEDADD(Fecha 1, -8, MESES), tengo algunos errores.
Podría resolver dos: DATEDAD = DATEADD y MONTHS se acepta como MES, sin embargo, el comentario de error dice 'No se puede encontrar el nombre 'Date1'. También probé ya nombre '__Date1', pero sin resultado. ¿Alguna idea..?
¡Gracias!
Power_BI_Adapt_0-1669721693437.png

Culpa mía...

¿Es MES y no MESES y es __Date1 y no Fecha1?

@Power_BI_Adapt

Otro error es que la función DATE es

FECHA (año, mes, día)

Así que corrígelo a: FECHA(__CurrentYear,__CurrentMonth,1)

Gracias, se han hecho todas las correcciones. Desafortunadamente, la primera columna que se definirá en la función DATEADD todavía no funciona. Dice con la columna '__Date1' (marcada en rojo debajo): 'El parámetro no es el tipo correcto'

Así que dudo si se está reconociendo el nombre o formato de columna correcto.

Diff AIP_6 =

VAR __CurrentMonth = MOENÉSIMO(TODÍA())

DÓNDE __CurrentYear = YOREJA(MUERTEAY())

DÓNDE __Esee1 = ..DATE(__CurrentYear,__CurrentMonth,1)

VAR __DeTE2 = FECHAADD(__Date1, -8MOENÉSIMO)


DEVOLUCIÓN
CALCUTARDE (
[Histor AIP],
FILTRO (
TODO ( 'fecha tenue«[Dato Actual] ),
'Dim Datum'[Fecha Actual] = __Date1
)
)
- GUSTARCULAR (
[Históricoque AIP],
FILTRO (
ALL ( «Den fecha'[fecha Actuarual] ),
'Fumar sítum'[Fecha real] = __Date2
)
)

Acabo de encontrar el soultion:

En lugar de

VAR __DeTE2 = FECHAADD(__Date1, -8MOENÉSIMO)
Lo es:
VAR __Date2 = DATEADD('Dim Datum'[Fecha real], -8, MES)

La medida completa es:

Diff AIP_6 =

DÓNDE __CurrentMonth = MES(HOY())

DÓNDE __CurrentYear = AÑO(HOY())

DÓNDE __Date1 = FECHA(__CurrentYear,__CurrentMonth,1)

DÓNDE __Date2 = FECHAAÑADIR('Dim Datum' [Fecha real], -8, MES)


DEVOLUCIÓN
CALCULAR (
[AIP histórico],
FILTRO (
TODO ( 'Dim Datum' [Fecha real] ),
'Dim Datum'[Fecha real] = __Date1
)
)
- CALCULAR (
[AIP histórico],
FILTRO (
TODO ( 'Dim Datum' [Fecha real] ),
'Dim Datum'[Fecha real] = __Date2
)
)

Helpful resources

Announcements
Carousel_PBI_Wave1

2023 Release Wave 1 Plans

Power BI release plans for 2023 release wave 1 describes all new features releasing from April 2023 through September 2023.

Power BI Summit Carousel 2

Global Power BI Training

Make sure you register today for the Power BI Summit 2023. Don't miss all of the great sessions and speakers!

Thank you 2022 Review

2022 Monthly Feature Releases

We had a great 2022 with a ton of feature releases to help you drive a data culture.