Istruzioni Nidifica If()Buon pomeriggio,
Sto cercando di calcolare "passa/fallisce" in base a un determinato insieme di limiti di specifica. Il problema che sto riscontrando è che ho circa 386 dispositivi su un wafer testato su 16 canali diversi, tutti con limiti di specifiche diversi. Per finire, ho 2 diverse condizioni di test. L'unica soluzione che ho è una tonnellata di istruzioni IF()
If( (:Channel == 0 ) & (:test_output >= 16) & (test_output <= 22), 1, 99)
nuova colonna( "superato/fallito") << formula( If( condizione, risultato 1, ecc.)
Se c'è un modo più semplice sono tutt'orecchi.
Grazie
Ho allegato 1 delle tabelle su cui ho bisogno per eseguire questa azione ..
Oggetto: dichiarazioni Nest If()Grazie per l'input, ho appena finito per fare quanto segue
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
)
);
Oggetto: dichiarazioni Nest If()Questo era il mio pensiero originale, tuttavia volevo dare agli ingegneri/management dei test la libertà di modificare i limiti se scelgono di farlo.
Non ho incluso tutte le informazioni e per questo mi dispiace. In allegato c'è un pedice del mio script di pull dei dati complessivo che viene visualizzato quando premi la casella del pulsante "rendimento" nella mia finestra principale. Volevo usare le variabili impostate in questo script nelle mie istruzioni if() nidificate.
Grazie per il tuo contributo finora.
Oggetto: dichiarazioni Nest If()Il modo in cui l'ho fatto in Excel, sebbene non il più veloce, aiuta a evitare di commettere errori.Crea una colonna 0/1 per ogni canale usando IF e AND per vedere se rientra nei limiti delle specifiche.Quindi basta moltiplicare le colonne insieme: otterrai solo 1 se tutti i canali rientrano nei limiti.
Oggetto: dichiarazioni Nest If()Crea una nuova tabella dati con colonne per chanel, condizione di test, limite superiore e limite inferiore.Quindi unisci semplicemente i tavoli insieme, abbinando su chanel e condizioni di prova.Quindi, utilizzando le colonne del limite superiore e inferiore, calcola il pass/fail