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
Syndicate_Admin
Administrator
Administrator

Si la cláusula cambia con la segmentación de datos de mes

Hola

Tengo una tabla como la siguiente.

clienteestadoMes
aaaaactivo3
bbbbinactivo3
ccccactivo3
bbbbactivo4
ccccinactivo4
aaaainactivo4
aaaaactivo5
bbbbactivo5
eeeeactivo5

Estoy combinando todas las tablas de meses y quiero ver descripciones entre meses con el uso de la segmentación de datos de mes en la página del informe.

por ejemplo, para los nuevos clientes, en la página de informe cuando elijo 5º mes como segmentación de datos, quiero ver la diferencia entre el mes anterior. En este ejemplo necesito ver aaaa y eeee como nuevos (incluso aaaa estaba en la lista pero estaba inactivo). para comparar 2 meses antes, necesito ver bbbb y eeee como la misma lógica. también necesito mostrar sus recuentos como 2 para ambos ejemplos.

1 ACCEPTED SOLUTION

resolvió el problema con el reemplazo de la medida y úsela como fórmula de columna y elimine algunas partes y la hizo con 2 columnas. también se puede fusionar, pero quiero estar seguro de que las fórmulas están funcionando.

lastmonth = 
        VAR vCustomerRow = Customer[customer]
        VAR vMonthRow = Customer[Month]
        RETURN
            CALCULATE (
                MAX ( Customer[status] ),
                Customer[customer] = vCustomerRow,
                Customer[Month] = vMonthRow - 1,
                ALL ( Customer )
            )

countnew -customer = IF(Customer[lastmonth]=BLANK()&&Customer[status]="Active",1,IF(Customer[lastmonth]<>Customer[status]&&Customer[status]="Active",1,IF(Customer[lastmonth]=Customer[status]&&Customer[status]="Active", BLANK(), 0)))

View solution in original post

6 REPLIES 6
Syndicate_Admin
Administrator
Administrator

_ = 
VAR __t =
    TOPN(
        1,
        CALCULATETABLE(
            CUST,
            ALLEXCEPT( CUST, CUST[customer] ),
            SLC[Mth] < MAX( SLC[Mth] )
        ),
        CUST[Month]
    )
RETURN
    IF(
        MAX( CUST[status] ) = "active"
            && (
                ISEMPTY( __t )
                    || MAXX( __t, CUST[status] ) = "inactive"
            ),
        ""
    )

Record_2022_06_28_15_00_14_250.gif

@CNENFRNL gracias por la versión más corta. sin embargo, en este scenerio no pude encontrar la manera de cambiar la fórmula durante 3 meses de comparación. He enmendado 3-4-5 como mes a ie. 01/03/2022 por cada 3 y mismo aplicado para otros meses. luego lo conectó con la segmentación de datos y usó la fórmula datesinperiod, pero luego falló.

Syndicate_Admin
Administrator
Administrator

@selimovd comprobará y responderá. en realidad, solo necesito resultado como bbbb para el 4º mes. sin embargo puedo añadir si cláusula sobre esa fórmula para eliminar si el mes anterior estuvo inactivo mantener y si está activo entonces eliminar.

Hola @selpaqm ,

claro, verifique la solución si está haciendo el trabajo.

También puede agregar "bbbb" como filtro si desea limitarlo a un solo cliente.

Si necesita ayuda, por favor hágamelo saber.
Si respondiera a su pregunta, estaría encantado de que pudiera marcar mi publicación como una solución ✔️ y darle un pulgar hacia arriba. 👍

Saludos
Denis

Blog: WhatTheFact.bi
Sígueme: twitter.com/DenSelimovic

Syndicate_Admin
Administrator
Administrator

Hola @selpaqm ,

puede verificar si el estado cambió en comparación con el mes pasado y solo devolver un resultado si ese fue el caso.

La siguiente medida debe hacer el trabajo:

Change to Last Month =
VAR vTableWithStatusLastMonth =
    ADDCOLUMNS (
        Customer,
        "@StatusLastMonth",
            VAR vCustomerRow = Customer[customer]
            VAR vMonthRow = Customer[Month]
            RETURN
                CALCULATE (
                    MAX ( Customer[status] ),
                    Customer[customer] = vCustomerRow,
                    Customer[Month] = vMonthRow - 1,
                    ALL ( Customer )
                )
    )
VAR vStatusLastMonthIfChanged =
    MAXX (
        vTableWithStatusLastMonth,
        IF ( [@StatusLastMonth] <> Customer[status], [@StatusLastMonth], BLANK () )
    )
RETURN
    vStatusLastMonthIfChanged

El resultado se ve así:

selimovd_0-1656419124080.png

Por favor, encuentre adjunto mi informe de ejemplo.

Si necesita ayuda, por favor hágamelo saber.
Si respondiera a su pregunta, estaría encantado de que pudiera marcar mi publicación como una solución ✔️ y darle un pulgar hacia arriba. 👍

Saludos
Denis

Blog: WhatTheFact.bi
Sígueme: twitter.com/DenSelimovic

resolvió el problema con el reemplazo de la medida y úsela como fórmula de columna y elimine algunas partes y la hizo con 2 columnas. también se puede fusionar, pero quiero estar seguro de que las fórmulas están funcionando.

lastmonth = 
        VAR vCustomerRow = Customer[customer]
        VAR vMonthRow = Customer[Month]
        RETURN
            CALCULATE (
                MAX ( Customer[status] ),
                Customer[customer] = vCustomerRow,
                Customer[Month] = vMonthRow - 1,
                ALL ( Customer )
            )

countnew -customer = IF(Customer[lastmonth]=BLANK()&&Customer[status]="Active",1,IF(Customer[lastmonth]<>Customer[status]&&Customer[status]="Active",1,IF(Customer[lastmonth]=Customer[status]&&Customer[status]="Active", BLANK(), 0)))

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.