Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Estoy tratando de averiguar cómo escribir una solución DAX que requiera que 2 tablas se filtren por fecha y estado, respectivamente.
Tengo 2 tablas que son demasiado grandes para combinar dentro del Editor de consultas, y necesito una solución dinámica para aplicar a los datos históricos.
Estoy buscando encontrar la línea de transacción más reciente por cliente en los 90 días anteriores en una tabla, y encontrar el estado relativo de esa transacción en la otra tabla, y solo incluir cierto estado".
Las tablas están enlazadas por un SALEID = OBJID
Tabla de pases
Tabla de venta
En el siguiente ejemplo, estoy buscando un DISTINCTCOUNT de CLIENTE donde el CREADO está en los 90 días anteriores y el estado es 1 O 2.
Esperaría que los siguientes datos de prueba devuelvan 2, Cliente B & C (SALEIDs 1 y 3)
Gracias
J
Solved! Go to Solution.
Sí. Sin embargo, es posible que desee definirlo primero como una variable.
Count90 =
VAR DynamicDate = [DynamicDateMeasure]
RETURN
CALCULATE (
DISTINCTCOUNT ( 'Pass'[Customer] ),
Sale[Created] > DynamicDate - 90,
'Pass'[Status] IN { 1, 2 }
)
¿Qué tal esto entonces?
CountLast90 =
VAR DynamicDate = TODAY () - 90
VAR StatusVals = { 1, 2 }
VAR AddCreatedCol =
ADDCOLUMNS (
'Pass',
"Created", LOOKUPVALUE ( Sale[Created], Sale[ObjID], 'Pass'[SaleID] )
)
VAR PassFiltered = FILTER ( AddCreatedCol, [Created] > DynamicDate )
VAR AddLastCreated =
ADDCOLUMNS (
PassFiltered,
"LastCreated",
MAXX (
FILTER ( PassFiltered, [Customer] = EARLIER ( [Customer] ) ),
[Created]
)
)
RETURN
COUNTROWS (
SUMMARIZE (
FILTER ( AddLastCreated, [Created] = [LastCreated] && [Status] IN StatusVals ),
[Customer]
)
)
¿Qué tal esto?
Count90 =
CALCULATE (
DISTINCTCOUNT ( 'Pass'[Customer] ),
Sale[Created] > TODAY () - 90,
'Pass'[Status] IN { 1, 2 }
)
Gracias por responderme Alexis, eres muy bueno, si quisiera que esto funcionara para una fecha dinámica, ¿pondría mi campo [Fecha] donde está "HOY()"?
Sí. Sin embargo, es posible que desee definirlo primero como una variable.
Count90 =
VAR DynamicDate = [DynamicDateMeasure]
RETURN
CALCULATE (
DISTINCTCOUNT ( 'Pass'[Customer] ),
Sale[Created] > DynamicDate - 90,
'Pass'[Status] IN { 1, 2 }
)
Hola Alexis,
Pensé que esto funcionó, pero en realidad está filtrando la transacción más reciente si el estado no es 1 o 2.
Lo que necesito es encontrar el DISTINCTCOUNT de clientes, devolviendo sus transacciones más recientes y el estado relacionado con esa transacción.
De hecho, puedo filtrar el estado dentro del propio visual, por lo que no necesito esa parte, pero quiero poder crear una tabla dinámica, que mire hacia atrás en los últimos 90 días desde cualquier fecha, y luego cree una tabla filtrada que solo muestre la transacción más reciente para ese cliente y el estado correspondiente.
Gracias
¿Qué tal esto entonces?
CountLast90 =
VAR DynamicDate = TODAY () - 90
VAR StatusVals = { 1, 2 }
VAR AddCreatedCol =
ADDCOLUMNS (
'Pass',
"Created", LOOKUPVALUE ( Sale[Created], Sale[ObjID], 'Pass'[SaleID] )
)
VAR PassFiltered = FILTER ( AddCreatedCol, [Created] > DynamicDate )
VAR AddLastCreated =
ADDCOLUMNS (
PassFiltered,
"LastCreated",
MAXX (
FILTER ( PassFiltered, [Customer] = EARLIER ( [Customer] ) ),
[Created]
)
)
RETURN
COUNTROWS (
SUMMARIZE (
FILTER ( AddLastCreated, [Created] = [LastCreated] && [Status] IN StatusVals ),
[Customer]
)
)
Estoy bastante seguro de que eres un genio, eso me está consiguiendo la cifra general directamente del principio y en un tiempo de iluminación. ¡Guau, eso es impresionante! Muchas gracias.
Si quisiera poner esta Medida en un gráfico de líneas, con la Fecha en el Eje, ¿sería posible que tomara la fecha del eje y retrocediera 90 días a partir de esa fecha para traer de vuelta el recuento de clientes que cumplen con ese criterio?
¡En realidad estoy impresionado por esa solución!
Reemplace TODAY() con algo que se lea en el contexto de fecha local como MAX ( dimDate[Date] ) usando cualquiera que sea su columna del eje X.
¿Cuál sería la medida de la fecha?
Esencialmente, quiero poner esta medida Count90 en una tabla con Fechas y quiero que cada fecha mire los 90 días anteriores a esta fecha y ejecute esta medida. ¿Sería algo así como MAX([Fecha])?
Gracias de nuevo por toda su ayuda, realmente lo aprecio.
Sí, se vería algo así como MAX ( Sale[Date] ), que da la fecha máxima dentro del contexto del filtro local. Entonces, si tuviera Sale[Date] para las filas en un visual de tabla, tomaría la fecha de esa fila.
¿Cuál es el resultado que esperarías en este ejemplo?
Hola Alexis,
Disculpas, estoy buscando;
Un DISTINCTCOUNT de clientes que tienen una línea de transacción máxima que tiene un estado particular.
Gracias
Es mucho más probable que obtenga una respuesta si proporciona ejemplos útiles para trabajar.
https://community.powerbi.com/t5/Desktop/How-to-Get-Your-Question-Answered-Quickly/m-p/1447523
En el siguiente ejemplo, estoy buscando un DISTINCTCOUNT de CLIENTE donde el CREADO está en los 90 días anteriores y el estado es 1 O 2.
Esperaría que los siguientes datos de prueba devuelvan 2, Cliente A & B (SALEIDs 1 y 3)
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |