Rédaction de formule Excel en script JSL (Formule dans le fichier excel joint)Salut,
J'essaie de reproduire des formules qui se trouvent actuellement dans la feuille Excel ci-jointe.
Où, DSA_Step_Size(dB) = ABS(du delta des lignes :RESULT lorsque les valeurs ATT1 diminuent pour la même valeur :FREQUENCY).
La formule est dans une feuille Excel si mon explication est confuse.
DSA Range(dB) = ABS(du delta des lignes :RESULT lorsque ATT1=63 et ATT1=0 pour chaque :FREQUENCY).
J'essaie d'utiliser des boucles for dans la formule .. jusqu'à présent, je n'obtiens pas le résultat que je veux:
n = 63 ;
Pour( je = 1, je <= n, je++,
:RESULTAT[i] - :RESULTAT[i + 3]
);
Tableau de donnéesScriptRe : Rédaction d'une formule Excel en script JSL (Formule dans le fichier Excel joint)if(row() <= 63, :RESULT[Row()] - :RESULT[Row() + 3])
?
Re : Rédaction d'une formule Excel en script JSL (Formule dans le fichier Excel joint)@vince_faller fournit une solution qui fonctionne pour votre table de données dans le formulaire après que la table a été triée.Je ne sais pas ce qu'il faut pour commander vos données.
Vous trouverez ci-dessous une formule qui a été développée à l'aide du fichier Excel importé et qui n'apporte aucune modification au fichier une fois importé dans JMP.

If( Row() == 1 | :ATT1 != Lag( :ATT1 ),
currATT1 = :ATT1;
currFreq = :FREQUENCY;
currRow = Row();
If( :ATT1 == 0,
theRow = 0,
theRow = (Current Data Table() << get rows where(
Row() > currRow & :ATT1 == currATT1 - 1 & :FREQUENCY == currFreq
))[1] - Row()
);
);
:RESULT - :RESULT[Row() + theRow];
A chaque fois la valeur de ATT! change, la formule regarde vers l'avant pour trouver la ligne suivante où la FRÉQUENCE est la même que la FRÉQUENCE actuelle et l'ATT ! est inférieur de 1 à la valeur actuelle de ATT1 et trouve le nombre de lignes entre la ligne actuelle et la ligne d'anticipation.Il utilise cette valeur de décalage à partir de ce point, jusqu'à ce que la valeur de ATT1 change à nouveau.
Ci-joint le fichier Excel importé que j'ai utilisé.