Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and a 50 percent discount on exams.
Get startedEarn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.
Hola a todos
Por favor, ayuda con una fórmula para obtener el valor más reciente de la misma columna calculada de la fila anterior.
Necesito replicar esto en PowerBI.
La columna E es una columna calculada y necesito capturar de alguna manera el último valor calculado en una variable y luego la variable +1
Fórmula de Excel :
=SI(A2<>A1, 0, SI(C2=0, E1, E1+1))
Datos:
IDENTIFICACIÓN | Delta | Hora | Hora actual del grupo | Contar |
123123 | 0.00 | 0 | 01/07/22 9:04 | 0 |
123123 | 0.00 | 40.966667 | 01/07/22 9:04 | 1 |
234243 | 0.00 | 0 | 01/07/22 9:04 | 0 |
234243 | 0.00 | 0 | 01/07/22 9:04 | 0 |
234243 | 0.00 | 38.933333 | 04/07/22 5:46 AM | 1 |
234243 | 74.88 | 1 | 04/07/22 6:43 | 2 |
234243 | 0.00 | 38.933333 | 04/07/22 6:43 | 3 |
345675 | 0.00 | 38.933333 | 04/07/22 6:43 | 0 |
¡¡Asombroso!! Este funcionó 😀
De acuerdo con su descripción, aquí está mi solución.
1.Agregue una columna de índice en Power Query.
2.Cree dos columnas calculadas.
flag =
IF (
'Table'[ID]
<> MAXX (
FILTER ( 'Table', 'Table'[Index] = EARLIER ( 'Table'[Index] ) - 1 ),
'Table'[ID]
),
"yes",
"no"
)
Column =
VAR _c = 'Table'[Index]
RETURN
IF (
[ID]
<> MAXX (
FILTER ( 'Table', 'Table'[Index] = EARLIER ( 'Table'[Index] ) - 1 ),
'Table'[ID]
),
0,
IF (
MAXX (
FILTER ( 'Table', 'Table'[Index] = EARLIER ( 'Table'[Index] ) - 1 ),
'Table'[flag]
) = "no",
IF (
'Table'[Time] = 0,
COUNTROWS (
FILTER (
'Table',
'Table'[Index] < EARLIER ( 'Table'[Index] )
&& 'Table'[Index]
> MAXX (
FILTER ( 'Table', 'Table'[flag] = "yes" && 'Table'[Index] < _c ),
'Table'[Index]
)
&& 'Table'[Time] <> 0
)
) + 0,
COUNTROWS (
FILTER (
'Table',
'Table'[Index] < EARLIER ( 'Table'[Index] )
&& 'Table'[Index]
> MAXX (
FILTER ( 'Table', 'Table'[flag] = "yes" && 'Table'[Index] < _c ),
'Table'[Index]
)
&& 'Table'[Time] <> 0
)
) + 1
),
IF ( 'Table'[Time] = 0, 0, 1 )
)
)
Obtenga el resultado correcto.
También cambio la fuente de datos con diferentes ID, aún así obtengo el resultado correcto.
Adjunto mi archivo a continuación para su referencia.
Si este post Ayuda, entonces por favor considere Acéptalo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Saludos
Apoyo a la comunidad Team_yanjiang
@amitchandak , gracias por la rápida respuesta.
Por favor, compruebe que cuando agrego su fórmula a BI, obtengo los resultados a continuación. La mayoría de los valores son 0.
Además, no estamos completando el tiempo aquí. Su fórmula está comparando el tiempo anterior y el actual.
Por favor, pruebe con los siguientes datos: en esta última columna de datos está tomando su propio último valor calculado.
IDENTIFICACIÓN | CREATE_DATE | MODIFY_DATE | Delta | Alcance | Hora | Hora actual del grupo | Contar |
4221757 | 01/07/22 9:04 | 01/07/22 9:04 | 0 | SÍ | 0 | 01/07/22 9:04 | 0 |
4221757 | 01/07/22 9:04 | 01/07/22 9:08 | 0 | SÍ | 0 | 01/07/22 9:04 | 0 |
4221757 | 01/07/22 9:04 | 01/07/22 9:45 | 0 | SÍ | 40.96666667 | 01/07/22 9:04 | 1 |
4221757 | 01/07/22 9:04 | 01/07/22 14:01 | 0 | NO | 0 | 01/07/22 14:01 | 1 |
4221757 | 01/07/22 9:04 | 01/07/22 14:07 | 6.46666667 | NO | 0 | 01/07/22 14:01 | 1 |
4221757 | 01/07/22 9:04 | 04/07/22 5:45 | 0 | NO | 0 | 01/07/22 14:01 | 1 |
4221757 | 01/07/22 9:04 | 04/07/22 5:46 AM | 0 | SÍ | 0 | 04/07/22 5:46 AM | 1 |
4221757 | 01/07/22 9:04 | 04/07/22 6:25 | 0 | SÍ | 38.93333333 | 04/07/22 5:46 AM | 2 |
4221757 | 01/07/22 9:04 | 04/07/22 6:27 | 0 | SÍ | 0 | 04/07/22 5:46 AM | 2 |
4221757 | 01/07/22 9:04 | 04/07/22 6:31 | 0 | SÍ | 0 | 04/07/22 5:46 AM | 2 |
4221757 | 01/07/22 9:04 | 04/07/22 6:43 | 0 | NO | 0 | 04/07/22 6:43 | 2 |
4221757 | 01/07/22 9:04 | 04/07/22 7:58 | 74.88333333 | 1 | 0 | 04/07/22 6:43 | 2 |
4221757 | 01/07/22 9:04 | 06/07/22 2:50 | 0 | NO | 0 | 04/07/22 6:43 | 2 |
4221757 | 01/07/22 9:04 | 06/07/22 3:02 | 0 | SÍ | 0 | 06/07/22 3:02 | 2 |
4221757 | 01/07/22 9:04 | 06/07/22 3:07 | 0 | SÍ | 4.76666667 | 06/07/22 3:02 | 3 |
4221757 | 01/07/22 9:04 | 06/07/22 3:26 | 0 | NO | 0 | 06/07/22 3:26 | 3 |
@surajde , Crear una nueva columna como
if([Time] =0, 0, countx(filter(Table, [ID] = before([ID]) && [Time] >0 && [Current Group Time] <= before([Current Group Time])), [ID]) )