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.
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
Solved! Go to Solution.
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.
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.
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.
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.
@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.
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
2 | |
1 | |
1 |