cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Anonymous
Not applicable

Cálculo por primera vez del cliente sin antes

Hola a todos

En primer lugar lo siento, pero este artículo es un poco largo, pero es realmente confuso para mí trato de explicar claramente
Estoy en problemas con la función anterior. Es una función muy significativa, pero sólo funciona con la columna calculada y me mete en problemas.

Vamos a dar un ejemplo.
Tengo un conjunto de datos como ese.

FechaClienteSegmentoTipoCantidadCantidad
1.08.20124015882AVentas170,57
1.09.20124015882AVentas2227,12
1.11.20124015882AServicio12529,32
1.03.20134015882AVentas-3-303,1
1.08.20184015882AServicio820,4
1.01.20204015882AVentas4125,49
1.09.20204015882AVentas262,47
1.08.20124017723BVentas11189,31
1.03.20164017723BServicio291523,88
1.11.20124074720DVentas1284,8
1.11.20124074720CVentas3124,5
1.03.20134074720CVentas1100,3
1.03.20134074720DVentas845,2
1.08.20184074720DVentas4125,49
1.08.20184074720DServicio14875,2
1.01.20204074720DVentas215,2
1.09.20204074720DVentas85

Quiero encontrar 2 cosas.

1- La primera fecha de llegada del cliente.
Se creó una columna calculada como esa y filtro sólo "1" valores en mis objetos visuales.

First Time = CALCULATE (
    COUNT ( 'Table'[Customer] ),
    FILTER (
        'Table',
        'Table'[Date] <= EARLIER ( 'Table'[Date] )
            && 'Table'[Customer] = EARLIER ( 'Table'[Customer] )
    ))

Está funcionando bien cuando los clientes tienen sólo 1 valor para cada mes, pero no está funcionando bien si los clientes tienen 2 valores para 1 mes.

2-Encuentra la fecha si los clientes vienen después de 3 años.

3 Year Break = 
VAR a =
    CALCULATE (
        COUNTROWS ( 'Table' ),
        FILTER (
            'Table',
            'Table'[Date] < EARLIER ( 'Table'[Date] )
                && 'Table'[Customer] = EARLIER ( 'Table'[Customer] )))
VAR b =
    CALCULATE (
        COUNTROWS ( 'Table' ),
        FILTER (
            'Table',
           'Table'[Date] < EARLIER ( 'Table'[Date] )
                && 'Table'[Date] >= EDATE ( EARLIER ( 'Table'[Date] ), -36 )
                && 'Table'[Customer] = EARLIER ( 'Table'[Customer] )))
RETURN
    IF ( ISBLANK ( a ) || b > 0, 0, 1 )


Pero de nuevo no está funcionando bien cuando hay 2 récords para un mes.
En el ejemplo:

Como entiendo hacer estas cosas en la columna no está funcionando para mí porque mi reqierment es dinámico y cuando lo hacemos en la columna Se convirtió en estático.

Screenshot_7.png

Screenshot_8.png

El punto que pido ayuda es que quiero crear estos cálculos como Medida

Aquí está mi archivo PBIX

1 ACCEPTED SOLUTION

Hola @alsasloren ,

Puede cambiar la columna [Primera vez] a

First Time = RANKX(FILTER('Table','Table'[Customer] = EARLIER('Table'[Customer])),'Table'[Date],,ASC,Dense)

Utilice otra medida para contar al cliente para un descanso de 3 años:

_3 Year Break = CALCULATE(DISTINCTCOUNT('Table'[Customer]),'Table'[3 Year Break] = 1)+0

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

Saludos

Dedmon Dai

View solution in original post

3 REPLIES 3
amitchandak
Super User
Super User

@alsasloren , Puede crear una columna como esta

Last Date á maxx(filter('Table' ,[Date] < EARLIER ( [Date] ) && 'Table'[Customer] ? EARLIER ( 'Table'[Customer])),'Table'[Fecha])

Si este nulo, entonces primero visita

Ahora una nueva columna

datediff([Last Date ],[Date] ,DAY) // diff de la última orden

datediff([Last Date ],[Date] ,Month)

Puede cambiar una columna de este tipo en medida con dos cambios

Last Date á maxx(filter(allselected('Table') ,[Date] < max( [Date] ) && 'Table'[Customer] á max( 'Table'[Customer])),'Table'[Date])

Did I answer your question? Mark my post as a solution! Appreciate your Kudos!! !!
Dashboard of My Blogs !! Connect on Linkedin
Want To Learn Power BI
Learn Power BI Beginners !! Advance Power BI Concepts !! Power BI For Tableau User !! Learn Power BI in Hindi !!
Proud to be a Super User!
!! Subscribe to my youtube Channel !!
Anonymous
Not applicable

Hola @amitchandak ,

Intenté su medida, pero no devuelve el resultado esperado.

Quiero encontrar el recuento de clientes para cada fecha. Compartí la captura de pantalla en la publicación anterior.

Necesito algo así.
Screenshot_9.png

Hola @alsasloren ,

Puede cambiar la columna [Primera vez] a

First Time = RANKX(FILTER('Table','Table'[Customer] = EARLIER('Table'[Customer])),'Table'[Date],,ASC,Dense)

Utilice otra medida para contar al cliente para un descanso de 3 años:

_3 Year Break = CALCULATE(DISTINCTCOUNT('Table'[Customer]),'Table'[3 Year Break] = 1)+0

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

Saludos

Dedmon Dai

Helpful resources

Announcements
Power BI Show Ep 4 Post Show Carousel.jpg

The Power BI Community Show

Shabnam Watson demos Incremental refresh & Hybrid Tables and Leila Etaati demos Charticulator.

PBI April Release 2022 768x460.png

Check it out!

Click here to read more about the April 2022 updates!

Power BI Dev Camp Session 22 768x460.jpg

Check it out!

Mark your calendars and join us on Thursday, May 26 at 11a PDT for a great session with Ted Pattison!

Top Kudoed Authors