Check your eligibility for this 50% exam voucher offer and join us for free live learning sessions to get prepared for Exam DP-700.
Get StartedDon't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.
Hola, estoy tratando de crear un informe de envejecimiento de RA "COMO AT". Tengo una conexión dinámica, pero no tengo acceso para realizar cambios en el modelo de datos subyacente, por lo que estoy intentando hacer todo en DAX.
Si miro el nivel de transacción, tengo la fecha de vencimiento (no vinculada a un dim) y una fecha que se usa si la fecha de vencimiento está en blanco. Utilizo esta medida para crear los cubos AR normales de 1-30, 31-60, 61-90, 91+.
Para calcular el número de días abiertos, utilizo la siguiente medida, que siempre me da el resultado actual.
# Días Abiertos AR =
VAR First_Date =
SI(
ISBLANK(MAX('Líneas de transacción'[Fecha de vencimiento/Recibir por])),
MAX('Líneas de transacción'[Fecha]),
MAX('Líneas de transacción'[Fecha de vencimiento/Recibir por])
)
VAR Second_Date =
MAXX(
ALLSELECTED('Fecha de transacción'),'Fecha de transacción'[*Fecha (trans)]
)
DEVOLUCIÓN
DATEDIFF(
First_Date,
SI(Second_Date > HOY(),
HOY(),
Second_Date
),
DÍA
)
Tengo una segmentación para que el usuario seleccione una fecha correcta, pero no quiero que esta segmentación filtre las transacciones, de lo contrario, no recojo todas las transacciones con un saldo abierto. La dimensión de fecha y la tabla de líneas de transacciones tienen una relación de uno a varios.
El resultado de esta medida es que siempre calcula la segunda fecha, como Today(), ya que el MAXX siempre devuelve el máximo de la tabla de fechas de transacción.
¿Cómo hago para obtener la fecha seleccionada sin que esa fecha filtre la tabla?
Gracias
Steve
Solved! Go to Solution.
Hola @Steve_M
Como mencioné en mi respuesta anterior, los filtros que provienen de una tabla relacionada afectarán qué registros son visibles. Por lo tanto, si selecciona 28/11, solo verá las filas 28/11. Funciones como ALL, ALLSELECTED, REMOVEFILTERS, etc. afectan a los resultados de una medida, pero no pueden mostrar las filas no seleccionadas. Cambie la segmentación de datos a antes si desea mostrar también las filas con fechas anteriores a la seleccionada actualmente.
Hola @Steve_M
Gracias por ponerse en contacto con la comunidad de Microsoft Fabric.
Para solucionar el problema, debe asegurarse de que la segmentación de datos "Fecha de caducidad" funcione sin filtrar directamente la tabla de líneas de transacción, pero que aún le permita calcular el número de días abiertos en relación con la "Fecha de caducidad" seleccionada.
A continuación, se muestra cómo puede lograrlo mediante esta consulta de DAX a continuación:
# Días Abiertos AR =
VAR First_Date =
SI(
ISBLANK(MAX('Líneas de transacción'[Fecha de vencimiento/Recibir por])),
MAX('Líneas de transacción'[Fecha]),
MAX('Líneas de transacción'[Fecha de vencimiento/Recibir por])
)
VAR AsAtDate =
SELECTEDVALUE('Date Dimension'[Date], TODAY()) -- Obtiene la fecha seleccionada o por defecto es TODAY()
DEVOLUCIÓN
DATEDIFF(
First_Date,
IF(AsAtDate > TODAY(), TODAY(), AsAtDate), -- Asegúrese de que la fecha no exceda la fecha de hoy
DÍA
)
Este enfoque debe cumplir con sus requisitos y garantizar cálculos precisos de envejecimiento de RA para cualquier fecha seleccionada. ¡Avísame si necesitas más ajustes!
Si esta publicación ayuda, considere aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
Gracias y saludos,
Anjan Kumar Chippa
Hola @Steve_M
El método más simple para que las transacciones no se equipen es usar el cortador "antes" y cubrir la fecha de inicio con una forma. Si está utilizando una conexión en tiempo real y no hay una tabla de fechas desconectadas en el modelo, estará limitado a esto. Tendrá más flexibilidad al conectarse a un modelo semántico a través de una consulta directa (si está habilitada). Si bien puede usar medidas para modificar el contexto del filtro y mostrar valores fuera del rango seleccionado, una tabla de fechas relacionada mostrará solo las filas que se han seleccionado.
Aquí está la demo- https://community.fabric.microsoft.com/t5/Data-Stories-Gallery/Accounts-Receivable-Aging-Schedule/td...
Ejemplo de pbix y tutorial en YouTube.
Medida actualizada para # Días abiertos AR:
# Days Open AR =
VAR First_Date =
IF(
ISBLANK(MAX('Transaction Lines'[Due Date/Receive By])),
MAX('Transaction Lines'[Date]),
MAX('Transaction Lines'[Due Date/Receive By])
)
VAR Selected_AsAtDate =
SELECTEDVALUE('Transaction Date'[*Date (trans)], TODAY())
RETURN
DATEDIFF(
First_Date,
MIN(Selected_AsAtDate, TODAY()),
DAY
)
💌Si esto ayudó, ¡una marca ✅ de Kudos 👍 o Solution sería genial! 🎉
Bien
Kedar
Conéctate en LinkedIn
Hola @Steve_M ,
Puede probar el siguiente código: -
# Days Open AR =
VAR First_Date =
IF(
ISBLANK(MAX('Transaction Lines'[Due Date/Receive By])),
MAX('Transaction Lines'[Date]),
MAX('Transaction Lines'[Due Date/Receive By])
)
VAR Selected_Date =
CALCULATE(
MAX('Transaction Date'[*Date (trans)]),
ALLSELECTED('Transaction Date')
)
VAR Second_Date =
IF(
Selected_Date > TODAY(),
TODAY(),
Selected_Date
)
RETURN
DATEDIFF(First_Date, Second_Date, DAY)
Sería muy útil si pudiera compartir los datos de muestra y la salida requerida para responder de manera más específica.
Gracias Samarth, sigo obteniendo el mismo resultado. A continuación se muestra lo que estoy tratando de lograr; cuando la fecha seleccionada es, por ejemplo, el 28 de noviembre, quiero calcular usando esa fecha. Si la fecha seleccionada es el 31 de diciembre, que es mayor que hoy, utilice la fecha de hoy. Puede ver en la segmentación de datos de depuración que el código para calcular la segunda fecha está funcionando, pero cuando se usa en el objeto visual con el filtrado desactivado, el valor máximo devuelve el máximo de la tabla de fechas y no la fecha seleccionada. Ni siquiera sé si esto es posible. Trabajar con una conexión en vivo lo está haciendo difícil, pero es con lo que tengo que lidiar
Hola @Steve_M
Como mencioné en mi respuesta anterior, los filtros que provienen de una tabla relacionada afectarán qué registros son visibles. Por lo tanto, si selecciona 28/11, solo verá las filas 28/11. Funciones como ALL, ALLSELECTED, REMOVEFILTERS, etc. afectan a los resultados de una medida, pero no pueden mostrar las filas no seleccionadas. Cambie la segmentación de datos a antes si desea mostrar también las filas con fechas anteriores a la seleccionada actualmente.
Gracias, creo que esto funcionará con el código de Samarth.
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Prices go up Feb. 11th.
Check out the January 2025 Power BI update to learn about new features in Reporting, Modeling, and Data Connectivity.