Imbriquer les instructions If()Bon après-midi,
J'essaie de calculer "réussite/échec" en fonction d'un ensemble donné de limites de spécifications. Le problème que je rencontre est que j'ai environ 386 appareils sur une plaquette qui sont testés sur 16 canaux différents qui ont tous des limites de spécifications différentes. Pour couronner le tout, j'ai 2 conditions de test différentes. La seule solution que j'ai est une tonne d'instructions IF()
Si( (:Channel == 0 ) & (:test_output >= 16) & (test_output <= 22), 1, 99)
nouvelle colonne( "réussite/échec") << formule( Si( condition, résultat 1, etc.)
S'il existe un moyen plus simple, je suis tout ouïe.
Merci
J'ai joint 1 des tables sur lesquelles j'ai besoin d'effectuer cette action.
Re : Imbriquer les instructions If()Merci pour la contribution, je viens de faire ce qui suit
new column( "I/O" ) << Formula(
If(
(:trmode == "Rx") & (:Channel == 0) & (:TEST_OUTPUT >= 6.16) & (:TEST_OUTPUT <= 23.59), 1,
(:trmode == "Rx") & (:Channel == 1) & (:TEST_OUTPUT >= 22.47) & (:TEST_OUTPUT <= 36.72), 1,
(:trmode == "Rx") & (:Channel == 2) & (:TEST_OUTPUT >= 20.65) & (:TEST_OUTPUT <= 33.77), 1,
(:trmode == "Rx") & (:Channel == 3) & (:TEST_OUTPUT >= 21.79) & (:TEST_OUTPUT <= 41.64), 1,
(:trmode == "Rx") & (:Channel == 4) & (:TEST_OUTPUT >= 18.73) & (:TEST_OUTPUT <= 32.72), 1,
(:trmode == "Rx") & (:Channel == 5) & (:TEST_OUTPUT >= 18.53) & (:TEST_OUTPUT <= 32.42), 1,
(:trmode == "Rx") & (:Channel == 6) & (:TEST_OUTPUT >= 23.42) & (:TEST_OUTPUT <= 40.84), 1,
(:trmode == "Rx") & (:Channel == 7) & (:TEST_OUTPUT >= 21.96) & (:TEST_OUTPUT <= 47.10), 1,
(:trmode == "Rx") & (:Channel == 8)</img> & (:TEST_OUTPUT >= 18.98) & (:TEST_OUTPUT <= 48.50), 1,
(:trmode == "Rx") & (:Channel == 9) & (:TEST_OUTPUT >= 20.07) & (:TEST_OUTPUT <= 41.04), 1,
(:trmode == "Rx") & (:Channel == 10) & (:TEST_OUTPUT >= 25.25) & (:TEST_OUTPUT <= 49.21), 1,
(:trmode == "Rx") & (:Channel == 11) & (:TEST_OUTPUT >= 21.91) & (:TEST_OUTPUT <= 35.20), 1,
(:trmode == "Rx") & (:Channel == 12) & (:TEST_OUTPUT >= 22.49) & (:TEST_OUTPUT <= 40.70), 1,
(:trmode == "Rx") & (:Channel == 13) & (:TEST_OUTPUT >= 25.39) & (:TEST_OUTPUT <= 41.81), 1,
(:trmode == "Rx") & (:Channel == 14) & (:TEST_OUTPUT >= 22.50) & (:TEST_OUTPUT <= 41.92), 1,
(:trmode == "Rx") & (:Channel == 15) & (:TEST_OUTPUT >= 23.65) & (:TEST_OUTPUT <= 46.53), 1, 0
)
);
Re : Imbriquer les instructions If()C'était ma pensée initiale, mais je voulais donner aux ingénieurs de test / à la direction la liberté d'ajuster les limites s'ils le souhaitaient.
Je n'ai pas inclus toutes les informations et j'en suis désolé. Vous trouverez ci-joint un indice de mon script d'extraction de données global qui apparaît lorsque vous appuyez sur le bouton "rendre" dans ma fenêtre principale. Je voulais utiliser les variables définies dans ce script dans mes instructions if() imbriquées.
Merci pour votre contribution jusqu'à présent.
Re : Imbriquer les instructions If()La façon dont j'ai fait cela dans Excel, bien que pas la plus rapide, permet d'éviter de faire des erreurs.Créez une colonne 0/1 pour chaque canal en utilisant IF et AND pour voir s'il est dans les limites de spécification.Ensuite, multipliez simplement les colonnes ensemble - vous n'obtiendrez que 1 si tous les canaux sont dans les limites.
Re : Imbriquer les instructions If()Créez une nouvelle table de données avec des colonnes pour le canal, la condition de test, la limite supérieure et la limite inférieure.Ensuite, joignez simplement les tables ensemble, en faisant correspondre les conditions de chanel et de test.Ensuite, à l'aide des colonnes de limite supérieure et inférieure, calculez la réussite/l'échec