Je recherche une formule pour accéder à l'évolution au fil du temps au niveau d'une ligne en allant de gauche à droite. Je souhaite évaluer le pourcentage de changement de la première lecture à la suivante, puis évaluer toutes les lectures suivantes par rapport à la première et à la lecture précédente pour accéder à l'évolution au fil du temps. Si l'un des décalages vers le bas est supérieur ou égal à 20 %, indiquez un 1 dans une colonne de résultats.
Voici une formule qui trouve le premier changement en pourcentage, puis parcourt toutes les colonnes restantes et recherche et valeurs et effectue un changement en pourcentage par rapport à la valeur initiale, et s'il s'agit d'un changement négatif > 20 %, elle définit le résultat sur 1.
Je suis presque sûr que ce n'est pas exactement ce que vous recherchez. Je ne comprends pas ce que signifie exactement « et ensuite évaluer toutes les lectures suivantes par rapport à la première et à la lecture précédente pour accéder aux heures supplémentaires ». Étudiez mon code et voyez ce qu'il fait, puis voyez si vous pouvez le modifier pour faire exactement ce que vous voulez vraiment. Sinon, répondez avec des éclaircissements ou des questions sur mon 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;