Join us for an expert-led overview of the tools and concepts you'll need to pass exam PL-300. The first session starts on June 11th. See you there!
Get registeredPower BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.
Tengo una tabla de calendario con estas columnas, que se construyen en función de la columna de fecha "POSTING_DATE" que está en mi "Query1Loan" principal que se actualiza cada mes. Cuando uso ese POSTING_DATE de atributo/marca como filtro con cualquier objeto visual que use métricas calculadas basadas en mis columnas de tabla de calendario, utilizando el formulario de inteligencia de tiempo POwer BI, no puedo hacer que funcione como mi filtro. Aparentemente no funciona por alguna razón, y obtengo ese Query1Loan de otras fuentes, no lo estoy creando. Me pregunto si puedo crear mi propio período actual en mi tabla de calendario usando dax y cómo podría escribir ese cálculo de dax. Muchas gracias por cualquier sugerencia.
Hola @Mk60 ,
Gracias por ponerse en contacto con la comunidad de Microsoft Fabric y compartir el contexto detallado.
En función de la descripción, en la que el conjunto de datos se actualiza mensualmente alrededor del 7.º día laborable con el rendimiento de fin de mes anterior, esta es una versión actualizada que puede agregar como columna calculada en la tabla de Calendar:
IsCurrentPeriod =
VAR MaxPostingDate =
CALCULATE (
MAX ( Query1Loan[POSTING_DATE] ),
REMOVEFILTERS ( Query1Loan )
)
VAR MaxMonthEnd =
EOMONTH ( MaxPostingDate, 0 )
RETURN
IF (
EOMONTH ( 'Calendar'[Date], 0 ) = MaxMonthEnd,
TRUE(),
FALSE()
)
Para admitir objetos visuales que muestren solo los últimos 5 trimestres, también puede agregar lo siguiente:
IsInLast5Quarters =
VAR MaxPostingDate =
CALCULATE (
MAX ( Query1Loan[POSTING_DATE] ),
REMOVEFILTERS ( Query1Loan )
)
VAR MaxYear = YEAR(MaxPostingDate)
VAR MaxMonth = MONTH(MaxPostingDate)
// Determine quarter start of MaxPostingDate
VAR MaxQuarterStartMonth = SWITCH(
TRUE(),
MaxMonth IN {1, 2, 3}, 1,
MaxMonth IN {4, 5, 6}, 4,
MaxMonth IN {7, 8, 9}, 7,
10
)
VAR MaxQuarterStartDate = DATE(MaxYear, MaxQuarterStartMonth, 1)
VAR ThresholdDate = EDATE(MaxQuarterStartDate, -15) // Go back 5 quarters
RETURN
IF (
'Calendar'[Date] >= ThresholdDate
&& 'Calendar'[Date] <= MaxPostingDate,
TRUE(),
FALSE()
)
Ahora puede usar estas marcas en segmentaciones de datos o filtros para restringir los objetos visuales al último mes o ventana de 5 trimestres disponible.
Espero que esto ayude. Póngase en contacto con nosotros para obtener más ayuda.
Si esta publicación ayuda, considere dar un felicito y aceptar como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Gracias.
Encuentre el archivo .pbix adjunto como referencia.
Hola @v-veshwara-msft
¡Muchas gracias una vez más! Agradezco sinceramente su disposición a ayudarme aquí. Probé su filtro "IsInLast5Quarters" y no me proporciona lo que estaba buscando, y estoy seguro de que la razón es que necesito brindarle un detalle más, y probablemente podrá modificar este filtro para capturar SOLO valores para el último "Fin de mes trimestral", (Jun, Sep, Dic, Mar, Jun, ). Aunque los usuarios quieren llamarlos Q1 2024, Q2, 2024, etc., pero las métricas deben ser a partir de marzo de 2024, junio de 2024, etc.). Por lo tanto, incluiré algunas imágenes más aquí y les mostraré ejemplos de:
Pictuer#1. Tabla mensual real con todos los valores/números que es la base para crear 5 tablas de trimestres recientes que necesito
Imagen #2. Tabla con los resultados reales de fin de trimestre que necesito capturar,
Imagen #3. Tabla donde utilicé su filtro "IsInLast5Quarters", (donde Power BI Time intelligence básicamente suma 3 meses de cada trimestre y divide por 3 para darme valores técnicamente precisos, pero no solo el último mes de cada trimestre que necesito). Es decir, el valor preciso del Q1.2025 es 37.90%, (imagen # 2), y usando su filtro me da 34.01%, (37.90% + 34.99% + 29.13%) = 102.02 / 3 = 34.01%)
Solo para su información, para el segundo trimestre de 2025 en mi caso, el informe mostrará los datos de mayo de 2025 por ahora, y una vez que se carguen los datos de junio, a principios del próximo mes, ese número aún mostrará correctamente el segundo trimestre de 2025, pero los datos / valores reflejarán con precisión junio de 2025 (final para el segundo trimestre de 2025)
Perdón por la larga explicación. Espero que esto ayude un poco más a tener un dax revisado que capturará solo el último mes de los valores de cada trimestre, y aún así mantendrá solo los 5 trimestres más recientes (que son 5 fines de mes trimestrales) en la tabla visual. ¡Muy apreciado!
Hola @Mk60 ,
Gracias por el contexto adicional y las capturas de pantalla. En función de su aclaración, esta es la tabla actualizada de DAX para el calendario que marca solo el último mes de cada trimestre (es decir, marzo, junio, septiembre, diciembre, junio), limitado a los 5 finales de trimestre completados más recientes en función de los últimos POSTING_DATE disponibles:
IsInLast5Quarters =
VAR MaxPostingDate =
CALCULATE (
MAX ( Query1Loan[POSTING_DATE] ),
REMOVEFILTERS ( Query1Loan )
)
VAR MaxMonth = MONTH ( MaxPostingDate )
VAR MaxQuarterEndMonth =
SWITCH (
TRUE (),
MaxMonth IN { 1, 2, 3 }, 3,
MaxMonth IN { 4, 5, 6 }, 6,
MaxMonth IN { 7, 8, 9 }, 9,
12
)
VAR MaxQuarterEndDate = DATE ( YEAR ( MaxPostingDate ), MaxQuarterEndMonth, 1 )
VAR QuarterEndList =
ADDCOLUMNS (
GENERATESERIES ( 0, 4, 1 ),
"QuarterEnd",
EOMONTH ( MaxQuarterEndDate, - [Value] * 3 )
)
VAR ValidQuarterEnds =
SELECTCOLUMNS ( QuarterEndList, "QuarterEnd", [QuarterEnd] )
RETURN
IF (
EOMONTH ( 'Calendar'[Date], 0 ) IN ValidQuarterEnds,
TRUE (),
FALSE ()
)
Ahora puede usar esta columna en el panel de filtro visual (por ejemplo, IsInLast5Quarters= TRUE()) para restringir los objetos visuales solo a esos meses.
Espero que esto ayude.
Si esto no satisface completamente sus necesidades, considere compartir un archivo PBIX de muestra o datos de muestra simplificados para que podamos guiarlo con mayor precisión.
Si esta publicación ayuda, considere dar un felicito y aceptar como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Gracias.
Encuentre el archivo .pbix adjunto como referencia.
Hola @v-veshwara-msft
Una vez más, solo quería expresar mi más sincero agradecimiento por su tiempo y pasión para brindar la mejor solución a mi tal vez pequeña solicitud. Su dax revisado hace exactamente lo que estaba buscando, y espero que otros usuarios también lo encuentren útil.
Si no te importa, agregaré una pregunta "extra" más, solo para mi propia práctica; Aquí está la tabla final con su dax revisado, se ve perfecto, y solo me preguntaba si hay un giro fácil en la sintaxis de su dax para permitir que los "Períodos de trimestres no completos", en este caso Q2 2025 muestren los valores de los meses más recientes hasta que los datos del trimestre completo se carguen el próximo mes para completar / finalizar el último trimestre. De nuevo, solo para mi propia práctica. ¡Muchas gracias, una vez más por toda la educación y su paciencia 🙂
Si por Período actual se refiere al mes actual, puede crear una columna calculada para comparar el mes año con el mes año de hoy
Is Current Period =
FORMAT ( TODAY (), "mmmyy" ) = 'Calendar'[Month Year]
Hola @Mk60
Usar el dax para agregar una columna calculada en la tabla de calendario
IsCurrentPeriod =
VAR MaxPostingDate = CALCULAR(
MAX(Query1Loan[POSTING_DATE]),
REMOVEFILTERS(Query1Loan)
)
DEVOLUCIÓN
IF('Calendar'[Date] = MaxPostingDate, TRUE(), FALSE())
DEVOLUCIÓN
IF('Calendar'[Date] = MaxPostingDate, TRUE(), FALSE())Gracias
Pankaj Namekar | LinkedIn (en inglés)
Si esta solución ayuda, por favor acéptala y da un aplauso (Me gusta), sería muy apreciado.
Hola @pankajnamekar25
Muchas gracias por su aporte. Su dax funciona técnicamente bien, pero cuando selecciono "Verdadero" en mi filtro, muestra la fecha como 30/06/2025, lo cual es técnicamente correcto ya que ahora estamos en junio. Sin embargo, no proporcioné suficiente información, así que aquí hay un contexto adicional, que debería ayudar. Remito mis datos solo una vez al mes, anexando los detalles mensuales a nivel de cuenta para el rendimiento de fin de mes anterior a mi historial actual en el modelo Query1Loan. Los nuevos datos de vencimiento de fin de mes se actualizan aproximadamente al 7º día hábil del mes en curso, con el final del mes anterior, por lo que en este momento (junio), mis datos de Current_Period son mayo de 2025, en julio sería el final del mes de junio agregado al 7º día de autobús, y así sucesivamente. Sé que la tabla del calendario ya tiene un año completo con todos los meses para 2025, por lo que mi desafío es tener algún tipo de "bandera" o filtro para poder usar mis datos históricos desde enero de 2023 (que es mi primer mes disponible) hasta el final de mes más reciente que tengo disponible en mi conjunto de datos. Así que espero que migh te ayude a personalizar el dax que proporcionaste?
Además, si se me permite agregar, necesitaría una "bandera" similar para ayudarme a filtrar solo los 5 trimestres más recientes en mis imágenes, y actualmente no puedo eliminar otros trimestres que aparecen hasta fin de año, para los que obviamente aún no tengo ningún dato.
Aquí hay algunas imágenes más para mostrar mi atributo Date en la consulta principal y cómo conecté la fecha archivada a mi tabla de calendario. Muchas gracias por su tiempo, y applogogize por no proporcionar más detalles la primera vez.