Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!
Hola
Tengo algo con lo que estoy luchando, lo que quiero averiguar, para cada registro es dónde un huésped reservó para ir a continuación, por lo que podemos hacer algunas predicciones, basadas en dónde reservan la mayoría de los huéspedes, es decir, para todos los huéspedes que han reservado para ir a Francia, el 30% luego hace su próxima reserva a España, etc
Tengo datos en una tabla con una identificación única para cada huésped, la fecha de su reserva y el país al que fueron y luego agregué el Resultado esperado. Así que el huésped 1 reservó por primera vez en Francia y su próxima reserva fue a los EE. UU.
ID de cliente | Fecha del libro | País | Resultado esperado | |
1 | 01/01/2000 | Francia | ESTADOS UNIDOS | |
2 | 01/02/2000 | Alemania | Portugal | |
3 | 01/03/2000 | España | Nulo | |
4 | 01/04/2000 | Italia | Grecia | |
1 | 01/05/2000 | ESTADOS UNIDOS | Nulo | |
2 | 01/06/2000 | Portugal | Nulo | |
5 | 01/07/2000 | Italia | Nulo | |
4 | 01/08/2000 | Grecia | Nulo |
Cualquier sugerencia sobre cómo lograr esto mejor sería recibida con gratitud, el archivo ya es grande, por lo que se espera una fórmula Dax eficiente para hacer el trabajo pesado en lugar de una columna calculada, que el archivo está luchando por implementar.
Gracias
Laurence
Hola @LaurenceSD @Kitty-SD ,
De acuerdo con los datos que proporcionó, pruebe para crear la siguiente columna:
rank = RANKX(FILTER(data,data[ContactId]=EARLIER(data[ContactId])),format(data[BookDate],"YYYYMMDD")+data[BookId],,ASC,Dense)
return = CALCULATE(MAX(data[MetaCountry]),FILTER(ALL(data),data[ContactId]=EARLIER(data[ContactId])&&data[rank]=EARLIER(data[rank])+1))
Resultado de salida:
¿Respondí a su pregunta? ¡Marca mi post como solución!
Saludos
Lucien
He usado una combinación de la fecha del libro y la identificación del libro para crear una identificación única. Sigo recibiendo el mismo error. Aquí está el conjunto de datos que he utilizado:
https://drive.google.com/file/d/1lU6o71d4b4lSYLta5HVBM45MtRBnVtAF/view?usp=sharing
Muchas gracias de antemano,
Gatito
Hola @LaurenceSD ,
Pruebe esta medida en DAX
Atentamente
Rohit
Marque esta respuesta como la solución si resuelve su problema.
¡Aprecia sus felicitaciones! 😊
Hola
Hice una adición al conjunto de datos en su archivo original que ha resultado en el mismo error. Creo que el problema es que un huésped podría técnicamente hacer 2 reservas con la misma fecha de reserva.
Desafortunadamente, parece que no puedo cargar un archivo .pbix en este foro, así que aquí está la entrada y espero que pueda replicar el error:
(ID de cliente: 1 / Fecha del libro: 05/01/2000 / País: Túnez)
Gracias de antemano,
Gatito
Hola
Gracias por la aclaración.
Permítanme preguntar:
si el id de cliente: 1 reservó dos países (EE.UU., Túnez) en la misma fecha (5 de enero de 2000), ¿qué país desea mostrar? ¿Y cuál es la lógica detrás de la selección del país si hay dos o más de dos países para el mismo ID de cliente en la misma fecha de reserva? Una vez que pueda entender la lógica, puedo tratar de encontrar una solución fija. Los creé a propósito para mostrar errores si hay más de dos países, pero lamento no haberlos mencionado.
Para su información, una de las formas de mostrar el mensaje de error si hay dos o más países es que, cree una tabla de una columna y una fila mediante la función VALORES. Y luego, si el resultado no es una tabla de una fila, la medida muestra un error.
Hola
¡Gracias por esto! Así que hay una columna BookId que sería la decisión para cuando las fechas del libro son las mismas. He intentado resolver esto hoy, pero todavía no tengo éxito. He aquí un ejemplo:
Por lo tanto, la lógica debe ser que para contactid 616428, ya que hay fechas de libro duplicadas, el bookId 4619737 debe venir antes de 4620136. Esperemos que eso ayude. Gracias de antemano.
Hola
Por favor, compruebe el siguiente archivo pbix adjunto.
Creé uno para crear una medida y otro para crear una columna calculada.
Next booking country measure: =
VAR currentid =
MAX ( Data[Customer ID] )
VAR currentdate =
MAX ( Data[Book Date] )
VAR nextbookdate =
CALCULATE (
MIN ( Data[Book Date] ),
FILTER (
ALL ( Data ),
Data[Customer ID] = currentid
&& Data[Book Date] > currentdate
)
)
VAR nextbookcountry =
CALCULATETABLE (
VALUES ( Data[Country] ),
FILTER (
ALL ( Data ),
Data[Customer ID] = currentid
&& Data[Book Date] = nextbookdate
)
)
RETURN
IF (
HASONEVALUE ( Data[Customer ID] ),
IF ( ISBLANK ( nextbookcountry ), "Null", nextbookcountry )
)
Next Booking Country CC =
VAR nextbookingdate =
MINX (
FILTER (
Data,
Data[Customer ID] = EARLIER ( Data[Customer ID] )
&& Data[Book Date] > EARLIER ( Data[Book Date] )
),
Data[Book Date]
)
VAR nextcountry =
SUMMARIZE (
FILTER (
Data,
Data[Customer ID] = EARLIER ( Data[Customer ID] )
&& Data[Book Date] = nextbookingdate
),
Data[Country]
)
RETURN
IF ( ISBLANK ( nextcountry ), "Null", nextcountry )
¡Gracias por investigar esto por nosotros! He intentado usar la medida que sugeriste, pero recibo el siguiente error:
Si tiene alguna idea de por qué está sucediendo esto, sería muy útil.
Gracias
Gatito
Hola
Gracias por su respuesta.
Comparta el enlace de su archivo pbix de muestra, y luego puedo intentar investigarlo para encontrar una solución más precisa. Si la medida funciona en mi modelo de datos de muestra pero no funciona en su modelo de datos, no tengo idea, pero necesito verificar cuál es la diferencia entre la mía y la suya.