Don't miss your chance to take the Fabric Data Engineer (DP-600) exam for FREE! Find out how by attending the DP-600 session on April 23rd (pacific time), live or on-demand.
Learn moreNext up in the FabCon + SQLCon recap series: The roadmap for Microsoft SQL and Maximizing Developer experiences in Fabric. All sessions are available on-demand after the live show. Register now
Buenas a todos,
Estoy intentado llegar a la medida citada y de momento cumplo alfo pero no llego a lo que de verdad quiero:
AFLUENCIA
Cumple :
1. Cuando selecciono me muestra lo que quiero
No cumple:
1. Cuando no hay seleccion me muestra el ultimo valor que existe de la ultima semana del año
v_Afluencia_Valor_Actual_Semana =
VAR _SemanaSeleccionada =
SELECTEDVALUE('MasterCalendar'[Week Number], WEEKNUM(TODAY(), 2)) -- Usar la semana seleccionada o la actual
VAR _AnioSeleccionado =
SELECTEDVALUE('MasterCalendar'[Year], YEAR(TODAY())) -- Usar el año seleccionado o el año actual
-- Definimos la fecha de inicio de la semana seleccionada en el año seleccionado
VAR _FechaInicial =
CALCULATE(
MIN('MasterCalendar'[Date]),
'MasterCalendar'[Year] = _AnioSeleccionado,
'MasterCalendar'[Week Number] = _SemanaSeleccionada
)
-- Definimos la fecha de fin de la semana seleccionada en el año seleccionado
VAR _FechaFinal =
CALCULATE(
MAX('MasterCalendar'[Date]),
'MasterCalendar'[Year] = _AnioSeleccionado,
'MasterCalendar'[Week Number] = _SemanaSeleccionada
)
-- Obtenemos el valor de afluencia para el rango de fechas de la semana seleccionada
VAR _ResultadoActual =
CALCULATE(
[SumEnters],
'MasterCalendar'[Date] >= _FechaInicial &&
'MasterCalendar'[Date] <= _FechaFinal
)
-- Si el resultado actual es BLANK, buscamos el último año disponible con datos para la semana seleccionada
VAR _AnioDisponible =
IF(
ISBLANK(_ResultadoActual), -- Solo si no hay resultado
CALCULATE(
MAX('MasterCalendar'[Year]),
'MasterCalendar'[Week Number] = _SemanaSeleccionada, -- Aseguramos que sea la semana seleccionada
'MasterCalendar'[Year] < _AnioSeleccionado -- Años menores al año seleccionado
),
_AnioSeleccionado -- Usamos el año seleccionado si hay resultado
)
-- Definimos la fecha de inicio y fin de la semana en el año anterior encontrado
VAR _FechaInicialAnterior =
IF(
NOT ISBLANK(_AnioDisponible),
CALCULATE(
MIN('MasterCalendar'[Date]),
'MasterCalendar'[Year] = _AnioDisponible,
'MasterCalendar'[Week Number] = _SemanaSeleccionada
),
BLANK()
)
VAR _FechaFinalAnterior =
IF(
NOT ISBLANK(_AnioDisponible),
CALCULATE(
MAX('MasterCalendar'[Date]),
'MasterCalendar'[Year] = _AnioDisponible,
'MasterCalendar'[Week Number] = _SemanaSeleccionada
),
BLANK()
)
-- Intentamos obtener el valor de afluencia para el rango de fechas de la semana en el año anterior
VAR _ResultadoAnterior =
IF(
NOT ISBLANK(_FechaInicialAnterior) && NOT ISBLANK(_FechaFinalAnterior), -- Aseguramos que las fechas sean válidas
CALCULATE(
[SumEnters],
'MasterCalendar'[Date] >= _FechaInicialAnterior &&
'MasterCalendar'[Date] <= _FechaFinalAnterior
),
BLANK() -- Retorna BLANK si las fechas no son válidas
)
-- Retornamos el resultado final
RETURN
IF(ISBLANK(_ResultadoActual), IF(ISBLANK(_ResultadoAnterior), 0, _ResultadoAnterior), _ResultadoActual) -- Retorna 0 si no hay resultado, o el resultado encontrado
Y tambien estoy intentado conseguir el valor anterior.
y se comporta igual , es decir para el año anterior a la actual para que haga la diferencia
v_Afluencia_Valor_Anterior_Semana =
VAR _SemanaSeleccionada =
SELECTEDVALUE('MasterCalendar'[Week Number], WEEKNUM(TODAY(), 2)) -- Semana seleccionada o actual
VAR _AnioSeleccionado =
SELECTEDVALUE('MasterCalendar'[Year], YEAR(TODAY())) -- Año seleccionado o actual
-- Determinar el año a usar: si no hay selección, usar el año anterior al actual
VAR _AnioParaCalculo =
IF(
ISBLANK(SELECTEDVALUE('MasterCalendar'[Year])),
YEAR(TODAY()) - 1,
_AnioSeleccionado
)
-- Intentamos obtener el valor actual
VAR _ResultadoActual =
CALCULATE(
Afluencia[Total_Afluencia_Sencurso],
'MasterCalendar'[Week Number] = _SemanaSeleccionada,
'MasterCalendar'[Year] = _AnioParaCalculo
)
-- Si el resultado actual es BLANK, buscamos el último año disponible con datos para la semana seleccionada
VAR _AnioDisponible =
IF(
ISBLANK(_ResultadoActual),
CALCULATE(
MAX('MasterCalendar'[Year]),
FILTER(
ALL('MasterCalendar'),
'MasterCalendar'[Week Number] = _SemanaSeleccionada &&
'MasterCalendar'[Year] < _AnioParaCalculo &&
NOT ISBLANK([Total_Afluencia_Sencurso])
)
),
_AnioParaCalculo
)
-- Definimos el año anterior al año disponible
VAR _AnioAnterior =
IF(NOT ISBLANK(_AnioDisponible), _AnioDisponible - 1, BLANK())
-- Definimos la fecha de inicio de la semana seleccionada en el año anterior encontrado
VAR _FechaInicial =
IF(
NOT ISBLANK(_AnioAnterior),
CALCULATE(
MIN('MasterCalendar'[Date]),
FILTER(
ALL('MasterCalendar'),
'MasterCalendar'[Year] = _AnioAnterior &&
'MasterCalendar'[Week Number] = _SemanaSeleccionada
)
),
BLANK()
)
-- Definimos la fecha de fin de la semana seleccionada en el año anterior encontrado
VAR _FechaFinal =
IF(
NOT ISBLANK(_AnioAnterior),
CALCULATE(
MAX('MasterCalendar'[Date]),
FILTER(
ALL('MasterCalendar'),
'MasterCalendar'[Year] = _AnioAnterior &&
'MasterCalendar'[Week Number] = _SemanaSeleccionada
)
),
BLANK()
)
-- Intentamos obtener el valor del total de afluencia para el rango de fechas de la misma semana del año anterior
VAR _ResultadoAnterior =
IF(
NOT ISBLANK(_FechaInicial) && NOT ISBLANK(_FechaFinal), -- Aseguramos que las fechas sean válidas
CALCULATE(
Afluencia[Total_Afluencia_Sencurso],
'MasterCalendar'[Date] >= _FechaInicial &&
'MasterCalendar'[Date] <= _FechaFinal
),
BLANK() -- Retorna BLANK si las fechas no son válidas
)
-- Retornamos el resultado final
RETURN
IF(ISBLANK(_ResultadoActual), _ResultadoAnterior, _ResultadoActual) -- Retorna 0 si no hay resultado, o el resultado encontrado
PD: Cuando seleccione un año posterior a la semana actual, no habra datos para esa semana, quiero que me coja el ultimo valor que haya dispoible para el actual, y para el anterior, justamente el año anterior
Y esta es la tabla que tengo para mostra junto al KPI:
Muchas gracias por cualquier ayuda.
If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.
A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.
Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.