Modification des valeurs de colonne en fonction de la limite de spécification de colonneNous avons un test de phase qui aime parfois flop la valeur de 360 degrés. Je voudrais un script qui peut parcourir les données de la colonne du tableau, prendre une moyenne et la comparer ensuite au LSL / USL. Si le signe de la moyenne est opposé à la limite de spécification, ajoutez 360 à cette valeur.
Je ne peux pas faire une couverture If (: test <0, t1 =: colonne + 360; t1;) en raison de la façon dont le testeur traite les données.
J'ai joint un exemple de tableau et les deux dernières colonnes sont celles de mon problème.
Merci d'avance
Tableau de donnéesScriptingRe: Modification des valeurs de colonne en fonction de la limite de spécification de colonneVoyez si ce petit script vous donne ce que vous voulez
Names Default To Here( 1 );
dt = Current Data Table();
colList = dt << get column names( continuous, string );
For( i = 1, i <= N Items( colList ), i++,
specs = Column( dt, colList[i] ) << get property( "spec limits" );
If( Is Missing( specs["LSL"] ) == 0 & Is Missing( specs["USL"] ) == 0,
If( !(specs["LSL"] <= Col Mean( Column( dt, colList[i] ) ) <= specs["USL"]),
For Each Row( As Column( dt, colList[i] ) = -1 * As Column( dt, colList[i] ) )
)
);
);
Re: Modification des valeurs de colonne en fonction de la limite de spécification de colonneMerci, M. Nelson.
J'ai dû modifier un peu le script. J'ai changé la multiplication en addition et changé la moyenne en médiane. Je n'ai pas tenu compte des échecs catastrophiques lorsque j'ai publié le message d'origine. Les colonnes 40 et 41 avaient des valeurs moyennes de col qui ne se situaient pas entre la LSL et la USL.
Names Default To Here( 1 );
dt = Current Data Table();
colList = dt << get column names( continuous, string );
For( i = 1, i <= N Items( colList ), i++,
specs = Column( dt, colList[i] ) << get property( "spec limits" );
If( Is Missing( specs["LSL"] ) == 0 & Is Missing( specs["USL"] ) == 0,
If( !(specs["LSL"] <= Col Median( Column( dt, colList[i] ) ) <= specs["USL"]),
For Each Row( As Column( dt, colList[i] ) = 360 + As Column( dt, colList[i] ) )
)
);
);