Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
Syndicate_Admin
Administrator
Administrator

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

1 ACCEPTED SOLUTION

@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.

View solution in original post

15 REPLIES 15
Syndicate_Admin
Administrator
Administrator

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.

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?

@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.

sólo puedo hacerlo en un mesure? Porque si cambio el filtro en la descripción general, ya no funciona

@PatVi ,

En caso de 12 meses por año fiscal, podría no ser la forma más fantasiosa (no conozco su modelo, etc.), pero pruebe esto:

Columna calculada:

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

medir:

#FY = 
VAR currentYear = IF(MONTH(SELECTEDVALUE(T[Date])) < 4, YEAR(SELECTEDVALUE(T[Date])) - 1,YEAR(SELECTEDVALUE(T[Date])))
VAR monthsInCurrentYear = 
COUNTAX(
    FILTER(
        ALL(T[Date]), 
        IF(MONTH(T[Date]) < 4, YEAR(T[Date]) - 1,YEAR(T[Date])) = currentYear), 
    MONTH(T[Date]))
RETURN
IF(monthsInCurrentYear = 12,
    IF(MONTH(SELECTEDVALUE(T[Date])) < 4, YEAR(SELECTEDVALUE(T[Date])) - 1,YEAR(SELECTEDVALUE(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.

gracias

pero ¿sabes por qué incluso si cambio el filtro en el informe, mi medida no cambia?

Para el ejemplo, si pongo sólo abril a julio, ya que no hay los doce meses, me gustaría tener 0 y ahora todavía me da el año.

@PatVi ,

*actualizado

Oh, en este caso hay un pequeño cambio:

ALL(T[Fecha]) -> ALLSELECTED(T[Fecha])

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

ERD_0-1621623139209.png

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

¡Gracias tan mutch que es perfecto! ¿Tienes algún consejo para mejorarme en power bi?

¡¡¡Gracias!!!

Lee libros y artículos, sigue blogs, mira vídeos y practica.

Ejemplos de blogs/canales:

https://www.sqlbi.com/

https://radacad.com/blog

https://www.youtube.com/c/CurbalEN

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

agradecer

@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.

Gracias es perfecto,

Que tengas un día muy agradable

@ERD ¡Muchas gracias! pero mi filtro estará en otra columna llamada Nombre y no para la columna Fecha. Y no funciona cuando cambio el filtro en la fecha de columna. Solo funciona cuando aplico mi filtro a la columna Fecha.

Por cierto, ¿tienes algún consejo para imprive mí mismo en Power Bi, sólo debo practicar o ver algunos videos?

Gracias

Syndicate_Admin
Administrator
Administrator

@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]))

@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?

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors