Forum Discussion

Pacopil48's avatar
Pacopil48
Icon for Resolver I rankResolver I
3 years ago

EDATE + CALCULATE

Buenas,

 

Tengo una tabla Logistic (fact_Excel_Logistic) que tiene las siguientes columnas:

 

Date. Fecha en el que sale el pedido.

Final Restriction. Número de años de restricción dependiendo si es un país u otro.

Type. Columna con tipo transporte. Tengo dos tipos: Temporary ó Definitive

 

Lo que pretendo hacer es coger la columna Date de la tabla Logistic y sumarle el número de años dependiendo del país de manera que me de una fecha final. Por ejemplo si tengo una fecha de pedido en 02-03-21 y el número de años de ese país es de 4 años, que me dé una fecha final 02-03-25.

 

Además de eso quiero que me lo haga filtrando solo para aquellos pedidos que el Type=Temporary.

 

Lo planteo en dos pasos:

  1. Ultilizo el EDATE para conseguir la fecha final.
  2. Utilizo CALCULATE para poder filtrar

 

Esto es lo que planteo. Pero me sale mal:

 

TemploraryRestriction =

VAR _EndDate= MINX(

                'fact_Excel_Logistic',

                EDATE('fact_Excel_Logistic'[Date],MONTH('fact_Excel_Logistic'[Final Restriction])*12))

VAR TemporaryFilter= CALCULATE(

                            _EndDate,'fact_Excel_Logistic'[Type]="Temporary")

Return

TemporaryFilter

 

Además, me gustaría que para Type=Temporary me ejecutara la operación, y para Type= Definitive me devolviera "No aplicable".

 

Muchas gracias por su ayuda.

 

Saludos.

2 Replies

  • Hola

    He creado una columna calculada, ¿es esta su salida esperada?

    TemploraryRestriction = 
    IF (
        'fact_Excel_Logistic'[Type] = "Temporary",
        EDATE (
            'fact_Excel_Logistic'[Date],
            'fact_Excel_Logistic'[Final Restriction] * 12
        )
    )


    Si esto no funciona, ¿podría dar el resultado esperado? Gracias.

    Saludos
    Gao

    Equipo de apoyo a la comunidad

    Si hay alguna publicación de ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
    Si no entiendo sus necesidades o todavía tiene problemas al respecto, no dude en hacérnoslo saber. ¡Muchas gracias!

    Cómo obtener respuestas rápidas a sus preguntas -- Cómo proporcionar datos de ejemplo en el foro de Power BI

    • Pacopil48's avatar
      Pacopil48
      Icon for Resolver I rankResolver I

      Buenas,

      Gracias por la respuesta, pero siempre trato de evitar las columnas calculadas y hacerlo a través de medidas.

      He pensado en esta solución.

      Le ve problemas o tiene alguna mejora?

       

      TemploraryRestriction =

      VAR _EndDate= MINX(

                      'fact_Excel_Logistic',

                      EDATE('fact_Excel_Tráfico'[Date],'fact_Excel_Logistic'[Final Restriction]*12))

      VAR TemporaryFilter= CALCULATE(

                                  _EndDate,'fact_Excel_Logistic'[Type]="Temporary")

      VAR TypeAd=

          CALCULATE(

                  MAX('fact_Excel_Logistic'[Type]),

                  ALL(dim_TimeTable)

      )

      Return

      SWITCH(

          TRUE()

          ,TypeAd="Temporary",TemporaryFilter

          ,TypeAd="Definitive","NA"

          ," ")

       

      Ya me dirá.

      Muchas gracias.