Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
5 years ago
Solved

Contiene fecha

¡Hola!

Tengo un montón de citas como esta

PatVi_0-1621585719981.png

Y me gustaría tener el año coresponding de la columna de fecha, pero sólo si hay todo el mes entre abril / N a marte / N + 1.

Por ejemplo, si hay toda la fecha entre abril de 2019 y marzo de 2020, (abril/2019,mayo/2019, junio de 2019, julio de 2019, agosto de 2019, septiembre de 2019, octubre de 2019, noviembre de 2019, diciembre de 2019, enero de 2020, febrero de 2020, marzo de 2020) me pondría 2019 en la medida.

Si también hay todo el mes entre abril de 2018 y marte 2019 me pondría 2018.

Y esto desde abril de 2019 hasta ahora.

Si no hay toda la fecha entre abril N y marte N+1 o para la fecha anterior a abril de 2019, me gustaría tener un blanco o un 0.

¿Sabes cómo hacerlo pls?

Gracias

Que tengas un buen día

  • Syndicate_Admin's avatar
    Syndicate_Admin
    5 years ago

    @PatVi ,

    Si entiendo correctamente, su columna de fecha no contiene días diferentes, solo diferentes meses por años diferentes.

    Por favor, pruebe esta medida, funcionó para mí con la siguiente estructura de datos:

    ERD_0-1621866912429.png

    #FY2 = 
    VAR currentYear = IF(MONTH(SELECTEDVALUE(T[Date])) < 4, YEAR(SELECTEDVALUE(T[Date])) - 1,YEAR(SELECTEDVALUE(T[Date])))
    VAR monthsInCurrentYear = 
    CALCULATE(
        DISTINCTCOUNT(T[Date]),
        FILTER(
            ALLSELECTED(T), 
            currentYear = IF(MONTH(T[Date]) < 4, YEAR(T[Date]) - 1,YEAR(T[Date]))
        )
    )
    VAR Result = IF(monthsInCurrentYear = 12,
        currentYear,
        0
    )
    RETURN Result

    Si esta publicación ayuda, considere Aceptarla como la solución ✔️para ayudar a los demás miembros a encontrarla más rápidamente.

15 Replies

  • @PatVi , Como usted tiene fecha , pruebe una columna como

    Inicio del año Fecha= startofyear([Fecha], "3/31")

    Inicio del año = año (startofyear([Fecha], "3/31")

    o

    año = if(month([date])< 4 , year([Date])-1, year([Date]))

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      @amitchandak Gracias, pero ¿cómo puedo hacer la condición de que todos los 12 meses deben estar presentes o voy a poner un 0?

  • No @PatVi,

    ¿Es esto lo que quieres lograr?

    ERD_0-1621604773790.png

    Aquí las primeras 4 filas devuelven ceros, ya que sólo hay 4 meses presentes de 12 en 2019. Otros devuelven su año fiscal.

    Si esta publicación ayuda, considere Aceptarla como la solución ✔️para ayudar a los demás miembros a encontrarla más rápidamente.

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      Sí, exactamente gracias sólo debe tener los 12 meses de abril de 2020 a marte 2019 y no de enero a diciembre. ¡Pero ya es genial! ¡Gracias! ¿Puedes enviarme el código pls?

      • Syndicate_Admin's avatar
        Syndicate_Admin
        Icon for Administrator rankAdministrator

        @PatVi ,

        El código del ejemplo anterior es (columna calculada):

        FY_cln = 
        VAR currentYear = YEAR(T[Date])
        VAR monthsInCurrentYear = 
        COUNTAX(FILTER(ALL(T[Date]), YEAR(T[Date]) = currentYear), MONTH(T[Date]))
        RETURN 
        IF(monthsInCurrentYear = 12,
            IF(MONTH(T[Date]) < 4, YEAR(T[Date]) - 1,YEAR(T[Date])),
            0
        )

        Si esta publicación ayuda, considere Aceptarla como la solución ✔️para ayudar a los demás miembros a encontrarla más rápidamente.