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
Anonymous
Not applicable

Días medios

Hola a todos !

Tengo algunos problemas con mis datos, esto es lo que tengo:

Fecha del teléfono OperaciónA valor
222 01/01/2020 14:00 Saldo 250
223 01/01/2020 14:00 Pago 10
222 03/01/2020 14:00 Otros 10
225 01/01/2020 14:00 Saldo 20
225 02/01/2020 14:00 Otros 10
225 01/01/2020 14:00 Saldo 5
222 04/01/2020 14:00 Pago 50


1. El teléfono es como el id para cada usuario
2. La fecha es la marca de tiempo de la operación
3. Hay tres tipos de operaciones: como Saldo (cuando alguien compra saldo en la aplicación), Pago (cuando alguien usa su saldo para pagar) y otras operaciones
4. Importe

Lo que quiero es crear una columna con el promedio de días ya que un usuario tiene un equilibrio de operaciones a los otros dos.
Por ejemplo,


Fecha del teléfono OperaciónTipo Cantidad AvgDays
222 01/01/2020 14:00 Saldo 250 2
223 01/01/2020 14:00 Pago 10 0
222 03/01/2020 14:00 Pago 10 2
225 01/01/2020 14:00 Saldo 20 3.5
225 02/01/2020 14:00 Otros 10 3.5
225 04/01/2020 14:00 Saldo 5 3.5
225 10/01/2020 14:00 Pago 50 3.5

El usuario 222 tiene un saldo de operaciones en jan 01, luego el usuario utiliza su saldo para pagar en enero 3 (2 días). El usuario 225 tiene una operación de saldo en enero 1, luego una operación en ene 2 (1 día), el mismo usuario tiene otra operación de saldo en enero 4 y utilizar su saldo para pagar en enero 10 (6 días), el promedio de días para el usuario es : (1 + 6) / 3,5

1 ACCEPTED SOLUTION
v-rzhou-msft
Community Support
Community Support

No @LuisELopez

Puedes probar mi columna calculada.

Rank = 
IF (
    'Table'[OperationType] = "Balance",
    RANKX (
        FILTER (
            'Table',
            'Table'[OperationType] = "Balance"
                && 'Table'[Phone] = EARLIER ( 'Table'[Phone] )
        ),
        'Table'[Date],
        ,
        ASC
    ),
    RANKX (
        FILTER (
            'Table',
            'Table'[OperationType] <> "Balance"
                && 'Table'[Phone] = EARLIER ( 'Table'[Phone] )
        ),
        'Table'[Date],
        ,
        ASC
    )
)
DateDiff = 
DATEDIFF('Table'[Date],CALCULATE(MAX('Table'[Date]),FILTER('Table','Table'[Phone]=EARLIER('Table'[Phone])&&'Table'[Rank]=EARLIER('Table'[Rank]))),DAY)
AvgDays =
VAR _MAXRank =
    MAXX (
        FILTER ( 'Table', 'Table'[Phone] = EARLIER ( 'Table'[Phone] ) ),
        'Table'[Rank]
    )
VAR _AvgDays =
    IF (
        'Table'[Phone] = 'Table'[Phone]
            && 'Table'[Rank] = 'Table'[Rank],
        CALCULATE (
            SUM ( 'Table'[DateDiff] ),
            FILTER (
                'Table',
                'Table'[Phone] = EARLIER ( 'Table'[Phone] )
                    && 'Table'[OperationType] = "Balance"
            )
        )
    ) / _MAXRank
RETURN
    IF ( ISBLANK ( _AvgDays ), 0, _AvgDays )

El resultado es el siguiente.

1.png

Saludos

Rico Zhou

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

View solution in original post

2 REPLIES 2
v-rzhou-msft
Community Support
Community Support

No @LuisELopez

Puedes probar mi columna calculada.

Rank = 
IF (
    'Table'[OperationType] = "Balance",
    RANKX (
        FILTER (
            'Table',
            'Table'[OperationType] = "Balance"
                && 'Table'[Phone] = EARLIER ( 'Table'[Phone] )
        ),
        'Table'[Date],
        ,
        ASC
    ),
    RANKX (
        FILTER (
            'Table',
            'Table'[OperationType] <> "Balance"
                && 'Table'[Phone] = EARLIER ( 'Table'[Phone] )
        ),
        'Table'[Date],
        ,
        ASC
    )
)
DateDiff = 
DATEDIFF('Table'[Date],CALCULATE(MAX('Table'[Date]),FILTER('Table','Table'[Phone]=EARLIER('Table'[Phone])&&'Table'[Rank]=EARLIER('Table'[Rank]))),DAY)
AvgDays =
VAR _MAXRank =
    MAXX (
        FILTER ( 'Table', 'Table'[Phone] = EARLIER ( 'Table'[Phone] ) ),
        'Table'[Rank]
    )
VAR _AvgDays =
    IF (
        'Table'[Phone] = 'Table'[Phone]
            && 'Table'[Rank] = 'Table'[Rank],
        CALCULATE (
            SUM ( 'Table'[DateDiff] ),
            FILTER (
                'Table',
                'Table'[Phone] = EARLIER ( 'Table'[Phone] )
                    && 'Table'[OperationType] = "Balance"
            )
        )
    ) / _MAXRank
RETURN
    IF ( ISBLANK ( _AvgDays ), 0, _AvgDays )

El resultado es el siguiente.

1.png

Saludos

Rico Zhou

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

Greg_Deckler
Super User
Super User

@LuisELopez - Vea mi artículo sobre el tiempo medio entre fallas (MTBF) que utiliza ANTES: http://community.powerbi.com/t5/Community-Blog/Mean-Time-Between-Failure-MTBF-and-Power-BI/ba-p/3395....
El patrón básico es:
Columna ?
VAR __Current á [Valor]
VAR __PreviousDate á MAXX(FILTER('Table','Table'[Date] < EARLIER('Table'[Date])),[Date])

VAR __Previous á MAXX(FILTER('Table',[Fecha]-__PreviousDate),[Valor])
devolución
__Current - __Previous

Debe poder crear una columna que muestre los días transcurridos desde la información de pago y saldo y, a continuación, podría usar la agregación Average predeterminada en una visualización para esa columna o crear una segunda columna que haga el promedio.


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

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.