Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!
¡Hola!
Tengo un montón de citas como esta
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
Solved! Go to 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:
#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.
No @PatVi,
¿Es esto lo que quieres lograr?
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
)
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.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:
#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
@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?