Estoy buscando una fórmula para acceder al cambio a lo largo del tiempo en un nivel de fila, moviéndose de izquierda a derecha. Quiero evaluar el cambio porcentual de la primera lectura a la siguiente y luego evaluar todas las lecturas siguientes en comparación con la primera y la lectura anterior para acceder al cambio a lo largo del tiempo. Si hay cambios descendentes mayores o iguales al 20 %, indique un 1 en una columna de resultados.
Aquí hay una fórmula que encuentra el primer cambio porcentual y luego recorre todas las columnas restantes y encuentra valores y realiza un cambio porcentual desde el valor inicial y, si es un cambio negativo > 20 %, establece el resultado en 1.
Estoy bastante seguro de que no es exactamente lo que estás buscando. No entiendo qué significa exactamente "y luego evaluar todas las lecturas siguientes en comparación con la primera y la lectura anterior para acceder a las horas extra del turno". Estudia mi código y observa qué está haciendo, y luego ve si puedes cambiarlo para que haga exactamente lo que realmente quieres. Si no, responde con alguna aclaración o preguntas sobre mi JSL.
As Constant( dt = Current Data Table() );
theMatrix = dt[Row(), Index( 2, 23 )];
start = Loc( theMatrix )[1] + 1;
startVal = dt[Row(), start];
firstChange = .;
currentChange = .;
firstValue = .;
For( i = start, i <= 22, i++,
If(
Is Missing( dt[Row(), i] ) == 0 & Is Missing( firstValue ) == 1, firstValue = dt[Row(), i],
Is Missing( dt[Row(), i] ) == 0 & Is Missing( firstChange ) == 1,
firstChange = (dt[Row(), i] - firstValue) / firstValue,
Is Missing( dt[Row(), i] ) == 0 & Is Missing( firstChange ) == 0,
currentChange = (dt[Row(), i] - firstValue) / firstValue;
If( currentChange < -0.2,
currentChange = 1;
break(),
currentChange = .
);
)
);
currentChange;