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
gauravnarchal
Post Prodigy
Post Prodigy

NBTO - Nuevas ventas de clientes (según la fecha de inicio) y año anterior (mismo período)

Quiero crear un informe NBTO (New Business Turn Over) en Power BI. ¿Puede sugerir cualquier plantilla o aconsejar cualquier medida que pueda manejar este requisito.

Un cliente es un nuevo cliente hasta 12 meses desde que comenzó y después de 12 meses cae en el bucket de cliente existente

Mi requisito: Venta total de nuevo cliente (según la fecha de inicio) v/s Año anterior (mismo período)

6 REPLIES 6
v-alq-msft
Community Support
Community Support

Hola, @gauravnarchal

Según su descripción, creé datos para reproducir su escenario. El archivo pbix se adjunta al final.

Mesa:

h1.png

Puede crear medidas como se indica a continuación.

New customer Sales = 
var tab = 
ADDCOLUMNS(
    'Table',
    "Flag1",
    IF(
        DATEDIFF([Start Date],TODAY(),DAY)<=365,
        1,0
    )
)
return
SUMX(
        FILTER(
            tab,
            [Flag1]=1
        ),
        [Sales]
)

New customer sales last year = 
var tab = 
ADDCOLUMNS(
    'Table',
    "Flag2",
    IF(
        DATEDIFF([Start Date],DATE(YEAR(TODAY())-1,MONTH(TODAY()),DAY(TODAY())),DAY)<=365,
        1,0
    )
)
return
    SUMX(
        FILTER(
            tab,
            [Flag2]=1
        ),
        [Sales]
    )

Result = 
var tab = 
ADDCOLUMNS(
    'Table',
    "Flag1",
    IF(
        DATEDIFF([Start Date],TODAY(),DAY)<=365,
        1,0
    ),
    "Flag2",
    IF(
        DATEDIFF([Start Date],TODAY()-365,DAY)<=365,
        1,0
    )
)
return
DIVIDE(
    SUMX(
        FILTER(
            tab,
            [Flag1]=1
        ),
        [Sales]
    ),
    SUMX(
        FILTER(
            tab,
            [Flag2]=1
        ),
        [Sales]
    )
)

Hoy es 7/20/2020. Aquí está el resultado:

h2.png

Best Regard

Allan

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

@v-alq-msft

Gracias por su respuesta

Si ve la siguiente tabla

  1. Si quiero ver NBTO y la venta de clientes existentes del mes seleccionado del 20 de febrero. Por lo tanto, cualquier cliente que inició la primera venta en /después de Mar'19 debe estar bajo NBTO y todos los demás clientes que comenzaron antes de Mar'19 debe estar bajo "cliente existente".
  2. Cualquier cliente que no haya hecho ninguna venta en los últimos 6 meses a partir de la fecha seleccionada que es Feb'20 viene bajo cliente perdido.

Más

  1. Si quisiera ver NBTO y la venta de clientes existentes del mes seleccionado de jun'20. Por lo tanto, cualquier cliente que comenzó la primera venta en /después de Jul'19 debe estar bajo NBTO y todos los demás clientes comenzaron antes de Jul'19 debe estar bajo el cliente existente.
  2. Cualquier cliente que no haya hecho ninguna venta en los últimos 6 meses a partir de la fecha seleccionada que es Jul'19 viene bajo cliente perdido.

Muchas gracias por su ayuda

7-20-2020 2-59-03 PM.jpg

Aquí está el enlace PBIX -

https://wetransfer.com/downloads/5fb5422ebf69f21e0ce0daab09bfc3b620200720104017/9ecc44667422af12d93e...

¿Cree que lo anterior es alcanzable en Power BI?

Hola, @gauravnarchal

Si desea calcular por una fecha seleccionada, puede crear una tabla Calendario. El archivo pbix se adjunta al final.

A continuación, puede crear medidas como se indica a continuación.

lost customer sales = 
var tab = 
ADDCOLUMNS(
    'Table',
    "Flag1",
    IF(
        OR(
           DATEDIFF([Start Date],SELECTEDVALUE('Calendar'[Date]),MONTH)>6,
           DATEDIFF([Start Date],SELECTEDVALUE('Calendar'[Date]),MONTH)=6&&DAY([Start Date])<DAY(SELECTEDVALUE('Calendar'[Date]))
        ),
        1,0
    )
)
return
IF(
    HASONEVALUE('Calendar'[Date]),
    SUMX(
            FILTER(
                tab,
                [Flag1]=1
            ),
            [Sales]
    )
)

New customer Sales = 
var tab = 
ADDCOLUMNS(
    'Table',
    "Flag1",
    IF(
        DATEDIFF([Start Date],SELECTEDVALUE('Calendar'[Date]),DAY)<=365,
        1,0
    )
)
return
IF(
    HASONEVALUE('Calendar'[Date]),
    SUMX(
            FILTER(
                tab,
                [Flag1]=1
            ),
            [Sales]
    )
)

New customer sales last year = 
var _date = SELECTEDVALUE('Calendar'[Date])
var tab = 
ADDCOLUMNS(
    'Table',
    "Flag2",
    IF(
        DATEDIFF([Start Date],DATE(YEAR(_date)-1,MONTH(_date),DAY(_date)),DAY)<=365,
        1,0
    )
)
return
IF(
    HASONEVALUE('Calendar'[Date]),
    SUMX(
        FILTER(
            tab,
            [Flag2]=1
        ),
        [Sales]
    )
)

Result = 
var _date = SELECTEDVALUE('Calendar'[Date])
var tab = 
ADDCOLUMNS(
    'Table',
    "Flag1",
    IF(
        DATEDIFF([Start Date],_date,DAY)<=365,
        1,0
    ),
    "Flag2",
    IF(
        DATEDIFF([Start Date],DATE(YEAR(_date)-1,MONTH(_date),DAY(_date)),DAY)<=365,
        1,0
    )
)
return
IF(
    HASONEVALUE('Calendar'[Date]),
    DIVIDE(
        SUMX(
            FILTER(
                tab,
                [Flag1]=1
            ),
            [Sales]
        ),
        SUMX(
            FILTER(
                tab,
                [Flag2]=1
            ),
            [Sales]
        )
    )
)

Resultado:

f1.png

Saludos

Allan

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

Hola, @gauravnarchal

Si usted toma la respuesta de alguien, por favor márquela como la solución para ayudar a los otros miembros que tienen los mismos problemas a encontrarla más rápidamente. Si no, avísame y trataré de ayudarte más. Gracias.

Saludos

Allan

AllisonKennedy
Super User
Super User

Puede comenzar determinando la primera fecha de compra para cada cliente. Consulte esta publicación para obtener información sobre el producto y adaptarse a sus datos:
https://blog.enterprisedna.co/discover-what-was-the-initial-product-a-customer-purchased-using-dax/

A continuación, utilice esa fecha dentro de una medida con DATEDIFF para filtrar solo para clientes con menos de 1 año o 365 días de diferencia entre TODAY y FirstPurchaseDate

Please @mention me in your reply if you want a response.

Copying DAX from this post? Click here for a hack to quickly replace it with your own table names

Has this post solved your problem? Please Accept as Solution so that others can find it quickly and to let the community know your problem has been solved.
If you found this post helpful, please give Kudos C

I work as a Microsoft trainer and consultant, specialising in Power BI and Power Query.
www.excelwithallison.com

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.