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

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Calcule la tarifa diaria en función de los campos de diferentes tablas de hechos

Hola a todos

Tengo 2 tablas de hechos que almacenan información abierta y enviada. Usando estas tablas, puedo mostrar cuántos mensajes se enviaron/abrieron en una fecha específica.

También hay una tabla de dimensiones separada que almacena información de fecha. La dimensión de fecha se une a las 2 tablas de hechos en los campos de fecha. Utilizo el campo de fecha de la tabla de dimensiones como segmentación para filtrar y/o mostrar los datos a lo largo del tiempo.

fact_Sent

FechaCountSent (Conteo enviado)Message_id
01/01/2023100A
01/01/2023200B

fact_Open

FechaCountOpen (en inglés)Message_id
01/01/202350A
02/01/202320A
01/01/202340B

Puedo construir una simple muestra visual:

Message_idFechaCountSent (Conteo enviado)CountOpen (en inglés)
A01/01/202310050
A02/01/2023NULO20
B01/01/202320040

Según la tabla anterior, un mensaje se envía en un día específico, pero la apertura puede ocurrir durante varios días.

Ahora quería calcular la tasa de apertura ( CountOpen/CountSent ) pero obtengo valores INFINITY para los días en los que CountSent es NULL.

Entiendo que debería poder crear una medida para calcular la tasa de apertura, pero estoy luchando por construir su lógica. Esencialmente, la lógica debe ser 'en la fecha X, divida 'CountOpen de la fecha X) por CountSent'.

Los resultados que estoy tratando de obtener son:

Message_idFechaCountSent (Conteo enviado)CountOpen (en inglés)Tasa de apertura
A01/01/20231005050%
A02/01/2023NULO2020%
B01/01/20232004020%

¿Alguna sugerencia?

Gracias.

2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

@Phil2ps

Puede consultar la siguiente solución.

1.Cree una tabla de tipos de message_id

vxinruzhumsft_0-1697079296733.png

2.Crear la relación entre las tablas

vxinruzhumsft_1-1697079379850.png

3.Cree las siguientes medidas:

Sum_open = SUM(fact_Open[CountOpen]) 
Sum_sent = SUM(fact_Sent[CountSent])
Divide_ =
VAR _predate =
    IF (
        OR ( [Sum_open] <> BLANK (), [Sum_sent] <> BLANK () ),
        MAXX (
            FILTER (
                ALLSELECTED ( fact_Sent ),
                [Message_id]
                    IN VALUES ( 'Type'[Message_id] )
                        && [Date] < SELECTEDVALUE ( 'Date'[Date] )
                        && [CountSent] <> BLANK ()
            ),
            [Date]
        )
    )
VAR b =
    MAXX (
        FILTER (
            ALLSELECTED ( fact_Sent ),
            [Message_id]
                IN VALUES ( 'Type'[Message_id] )
                    && [Date] = _predate
        ),
        [CountSent]
    )
RETURN
    IF (
        [Sum_sent] <> BLANK (),
        DIVIDE ( [Sum_open], [Sum_sent] ),
        DIVIDE ( [Sum_open], b )
    )

Salida

vxinruzhumsft_2-1697079510135.png

¡Saludos!

Yolo Zhu

Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Syndicate_Admin
Administrator
Administrator

Para su referencia.

Paso 1: Agrego una relación.

mickey64_0-1697016774211.png

Paso 2: Hago una medida.

% de apertura = DIVIDE(SUM('fact_Open'[CountOpen]),SUM('fact_Sent'[CountSent]))

Paso 3: Hago una imagen de 'Tabla'.

mickey64_1-1697016900921.png

Helpful resources

Announcements
LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.

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.