cancel
Showing results for 
Search instead for 
Did you mean: 
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
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