cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Syndicate_Admin
Administrator
Administrator

Encuentre un cliente próxima reserva

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 clienteFecha del libroPaís Resultado esperado
101/01/2000Francia ESTADOS UNIDOS
201/02/2000Alemania Portugal
301/03/2000España Nulo
401/04/2000Italia Grecia
101/05/2000ESTADOS UNIDOS Nulo
201/06/2000Portugal Nulo
501/07/2000Italia Nulo
401/08/2000Grecia 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

9 REPLIES 9
Syndicate_Admin
Administrator
Administrator

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:

vluwangmsft_0-1653469341718.png

¿Respondí a su pregunta? ¡Marca mi post como solución!


Saludos

Lucien

Syndicate_Admin
Administrator
Administrator

@Jihwan_Kim

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

Syndicate_Admin
Administrator
Administrator

Hola @LaurenceSD ,

Pruebe esta medida en DAX

Siguiente país =

Dónde _maxdate =

CALCULAR(
MÁXIMO(TravelList[Fecha del libro]),
TODOSEXCEPTO(Lista de viajes, TravelList[ID de cliente])
)

Dónde _country =
CALCULAR(
MÁXIMO(TravelList[País]),
FILTRO(TodoEXCEPTO(Lista de viajes,TravelList[ID de cliente]),
TravelList[Fecha del libro] = _maxdate)
)

Devolución
si(SELECTEDVALUE(TravelList[País]) = _country, "null", _country)
Esto nos da el resultado deseado
rohit_singh_0-1652974930886.png

Atentamente

Rohit


Marque esta respuesta como la solución si resuelve su problema.
¡Aprecia sus felicitaciones! 😊

Syndicate_Admin
Administrator
Administrator

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:

KittySD_0-1652973582101.png

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.

Syndicate_Admin
Administrator
Administrator

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 )

@Jihwan_Kim ,

¡Gracias por investigar esto por nosotros! He intentado usar la medida que sugeriste, pero recibo el siguiente error:

KittySD_0-1652879047327.png

KittySD_1-1652879103344.png

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.

Helpful resources

Announcements
August 1 episode 9_no_dates 768x460.jpg

The Power BI Community Show

Watch the playback when Priya Sathy and Charles Webb discuss Datamarts! Kelly also shares Power BI Community updates.

Power BI Dev Camp Session 24 without aka link and time 768x460.jpg

Ted's Dev Camp - July 28, 2022

Watch Session 24 of Ted's Dev Camp along with past sessions!

Power Platform Conf 2022 768x460.jpg

Join us for Microsoft Power Platform Conference

The first Microsoft-sponsored Power Platform Conference is coming in September. 100+ speakers, 150+ sessions, and what's new and next for Power Platform.

Top Solution Authors