Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

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.

Reply
Anonymous
Not applicable

Impacto del evento. Por favor, ayuda a encontrar cómo calcular la puntuación antes y después de que ocurra un evento

Hola equipo de Power BI,
Estoy construyendo la lógica para entender cómo los diferentes eventos influyen en las actitudes del cliente.

Tengo la tabla de eventos donde veo la fecha de cada evento y la puntuación que pone cada cliente. El objetivo es calcular la puntuación media antes de la "sustitución" y la puntuación media después de "reemplazo". Así que sé qué tipo de impacto tiene ese evento en la experiencia del cliente. Los eventos pueden variar por lo que será bueno tener un filtro en el que pueda hacer clic después.

Le agradeceré mucho cualquier ayuda.

Event.PNG

1 ACCEPTED SOLUTION
DataInsights
Super User
Super User

@A1eXuS,

Pruebe estas medidas:

Avg Score before Event = 
VAR vEvent = ALLSELECTED ( Event[Touchpoint] )
VAR vPerson =
    MAX ( Event[Person ID] )
VAR vEventRow =
    FILTER (
        ALL ( Event ),
        Event[Person ID] = vPerson
            && Event[Touchpoint] = vEvent
    )
VAR vEventDate =
    MAXX ( vEventRow, Event[Date] )
VAR vPreEventRows =
    FILTER (
        ALL ( Event ),
        Event[Person ID] = vPerson
            && Event[Date] < vEventDate
    )
VAR vAverage =
    AVERAGEX ( vPreEventRows, Event[Score] )
RETURN
    vAverage

Avg Score after Event = 
VAR vEvent = ALLSELECTED ( Event[Touchpoint] )
VAR vPerson =
    MAX ( Event[Person ID] )
VAR vEventRow =
    FILTER (
        ALL ( Event ),
        Event[Person ID] = vPerson
            && Event[Touchpoint] = vEvent
    )
VAR vEventDate =
    MAXX ( vEventRow, Event[Date] )
VAR vPostEventRows =
    FILTER (
        ALL ( Event ),
        Event[Person ID] = vPerson
            && Event[Date] > vEventDate
    )
VAR vAverage =
    AVERAGEX ( vPostEventRows, Event[Score] )
RETURN
    vAverage

Cree una segmentación de datos para Touchpoint:

DataInsights_0-1603333138506.png





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!




View solution in original post

6 REPLIES 6
DataInsights
Super User
Super User

@A1eXuS,

Pruebe estas medidas:

Avg Score before Event = 
VAR vEvent = ALLSELECTED ( Event[Touchpoint] )
VAR vPerson =
    MAX ( Event[Person ID] )
VAR vEventRow =
    FILTER (
        ALL ( Event ),
        Event[Person ID] = vPerson
            && Event[Touchpoint] = vEvent
    )
VAR vEventDate =
    MAXX ( vEventRow, Event[Date] )
VAR vPreEventRows =
    FILTER (
        ALL ( Event ),
        Event[Person ID] = vPerson
            && Event[Date] < vEventDate
    )
VAR vAverage =
    AVERAGEX ( vPreEventRows, Event[Score] )
RETURN
    vAverage

Avg Score after Event = 
VAR vEvent = ALLSELECTED ( Event[Touchpoint] )
VAR vPerson =
    MAX ( Event[Person ID] )
VAR vEventRow =
    FILTER (
        ALL ( Event ),
        Event[Person ID] = vPerson
            && Event[Touchpoint] = vEvent
    )
VAR vEventDate =
    MAXX ( vEventRow, Event[Date] )
VAR vPostEventRows =
    FILTER (
        ALL ( Event ),
        Event[Person ID] = vPerson
            && Event[Date] > vEventDate
    )
VAR vAverage =
    AVERAGEX ( vPostEventRows, Event[Score] )
RETURN
    vAverage

Cree una segmentación de datos para Touchpoint:

DataInsights_0-1603333138506.png





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!




Anonymous
Not applicable

Estimado @DataInsights

Muchas gracias por la solución. Funciona como magia.

Pero hay algo que no funciona para mí. No da ningún total. Si elimino PERSON ID de la tabla, todos los cálculos desaparecen. Necesito mostrar los datos resumidos antes y después de los eventos como un gráfico de columnas.

¿Necesito otro cálculo para que funcione? Porque no recuerdo nada que pueda hacer un total de una medida.

Muchas gracias de nuevo y lo siento por su tiempo

@A1eXuS,

¿Confirmaría cómo se debe calcular el total? Supongo que es la suma de todas las puntuaciones (para filas relevantes) divididas por el número de filas relevantes. Por ejemplo, la puntuación Promedio total antes de Reemplazo se calcularía de la siguiente manera:

(6 + 3 + 4 + 9 + 😎 / 5 x 6





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!




Vamos a probar eso sin el emoji automático:

( 6 + 3 + 4 + 9 + 8 ) / 5 = 6





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!




Anonymous
Not applicable

@DataInsights Siento no ser claro. En "Total" me refiero al promedio total antes del evento y al promedio total después del evento. Antes: (4.33+8.00+9.00)/3 Después de: (9.67+8.00+3.50)/3 Gracias.

@A1eXuS,

Prueba estas medidas. Deberá crear una tabla Person (una fila por ID de persona) y unirla a la tabla de datos.

Avg Score before Event = 
VAR vEvent = ALLSELECTED ( Event[Touchpoint] )
VAR vAverage =
    AVERAGEX ( Person,
        VAR vPerson = Person[Person ID]
        VAR vEventRow =
        FILTER (
            ALL ( Event ),
            Event[Person ID] = vPerson
                && Event[Touchpoint] = vEvent
        )
        VAR vEventDate =
        MAXX ( vEventRow, Event[Date] )
        VAR vPreEventRows =
        FILTER (
            ALL ( Event ),
            Event[Person ID] = vPerson
                && Event[Date] < vEventDate
        )
        RETURN
        AVERAGEX ( vPreEventRows, Event[Score] )
    )
RETURN
    vAverage

Avg Score after Event = 
VAR vEvent = ALLSELECTED ( Event[Touchpoint] )
VAR vAverage =
    AVERAGEX ( Person,
        VAR vPerson = Person[Person ID]
        VAR vEventRow =
        FILTER (
            ALL ( Event ),
            Event[Person ID] = vPerson
                && Event[Touchpoint] = vEvent
        )
        VAR vEventDate =
        MAXX ( vEventRow, Event[Date] )
        VAR vPostEventRows =
        FILTER (
            ALL ( Event ),
            Event[Person ID] = vPerson
                && Event[Date] > vEventDate
        )
        RETURN
        AVERAGEX ( vPostEventRows, Event[Score] )
    )
RETURN
    vAverage

DataInsights_0-1603560218197.png





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!




Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.