Come calcolare le differenze percentuali tra le righe che fanno riferimento a una cella in un'altra colonnaCiao a tutti,
Ho la seguente tabella.Per ciascun soggetto, vorrei calcolare la differenza percentuale dei valori d1, d2, d3 e d4 nella colonna Valore rispetto al valore dello schermo.La formula è ((d1-schermo)/schermo)*100, che si ripete per i valori da d2 a d4 per il soggetto 1. Quindi, quando il numero del soggetto cambia, il valore dello schermo per il soggetto 2 viene fatto riferimento per il calcolo utilizzando i valori da d1 a d4 del soggetto 2 valori, ecc.Sono sicuro che ci sia un modo per farlo, ma non sono riuscito a identificarne uno.
grazie in anticipo
Floyd Fox

Ri: Come scrivere lo script delle differenze percentuali tra le righe che fanno riferimento a una cella in un'altra colonna<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />SÌ, Schermo la posizione della riga può essere modificata. Ma se Schermo è destinato ad avere sempre il valore massimo all'interno di un argomento, funziona anche questa formula:
: Valore / Col Max ( : Valore , : Soggetto ) - 1
Ri: Come scrivere lo script delle differenze percentuali tra le righe che fanno riferimento a una cella in un'altra colonnaSe interpreto correttamente la tua richiesta di espansione, la tua tabella dati ora sarebbe simile a questa?

Utilizzando il metodo che avevo originariamente proposto, lo script avrebbe un paio di piccole modifiche:
Nomi predefiniti qui ( 1 ) ;
dt = Tabella dati corrente () ;
// Crea una tabella dati con solo valori sullo schermo
dt << seleziona dove ( : giorno == "schermo" ) ;
dtscreen = dt << sottoinsieme ( righe selezionate ( 1 ) , colonne selezionate ( 0 ) ) ;
dtscreen << eliminare colonne ( "giorno" ) ;
dtscreen : Valore << imposta nome ( "Valore dello schermo" ) ;
dtscreen : Valore 2 << imposta nome ( "Valore schermata 2" ) ;
// Combina nuovamente i dati
dt << Aggiornamento ( Con ( dtscreen ) , Corrispondenza colonne ( : soggetto = : soggetto ) ) ;
Vicino ( dtscreen , nosalva ) ;
// Effettua il calcolo finale
dt << Nuova colonna ( "% differenza dallo schermo" , formula (( : Valore - : valore dello schermo ) / : Valore dello schermo ) , Formato ( "Per cento" , 7 , 2 )) ;
dt << Nuova colonna ( "% differenza dalla schermata 2" , formula (( : Valore 2 - : valore dello schermo 2 ) / : Valore dello schermo 2 ) , Formato ( "Per cento" , 7 , 2 )) ;
Questo ti darebbe un tavolo finale simile a:

C'è un vantaggio nell'usare la metodologia proposta da MS, in quanto può essere realizzata semplicemente specificando una formula per la nuova colonna.Tuttavia, si basa sulla determinazione della posizione della riga dello schermo, che potrebbe non essere un presupposto valido quando lo si utilizza con dati reali.
Ri: Come scrivere lo script delle differenze percentuali tra le righe che fanno riferimento a una cella in un'altra colonnaSM,
Grazie mille.Ho posto una domanda a Jim e vorrei porre la stessa domanda a te.
Se ho due (o più) colonne di valori che rappresentano diversi set di osservazioni sullo schermo d1, d2 ecc., quali modifiche dovrei apportare per calcolare la differenza per ciascuna colonna di valori.Grazie
Floyd
Ri: Come scrivere lo script delle differenze percentuali tra le righe che fanno riferimento a una cella in un'altra colonnaJim,
Grazie mille, è molto utile.Se ho due (o più) colonne di valori che rappresentano diversi set di osservazioni sullo schermo d1, d2 ecc., quali modifiche dovrei apportare per calcolare la differenza per ciascuna colonna di valori.Grazie
Floyd
Ri: Come scrivere lo script delle differenze percentuali tra le righe che fanno riferimento a una cella in un'altra colonnaEcco altri due modi per farlo. Entrambi utilizzano la funzione Col Min() per trovare la prima riga per ciascun argomento, e quindi dipende dall'ordinamento corrente (la soluzione di Jim ha il vantaggio di essere indipendente dall'ordinamento).
dt = Tabella dati corrente () ;
// Imposta valori statici
col1 = dt << Nuova colonna ( "Valore dello schermo" , numerico ) ;
col2 = dt << Nuova colonna ( "% differenza dallo schermo" , numerico , Formato ( per cento , 1 )) ;
Per ogni riga (
col1 [] = : Valore [ Col Min ( Riga () , : Soggetto )] ;
col2 [] = ( : Valore - col1 []) / col1 [] ;
) ;
// Formula di colonna, tutto in un unico passaggio.
dt << Nuova colonna ( "% differenza dallo schermo" ,
Formato ( per cento , 1 ) ,
formula (( : Valore - : Valore [ Col Min ( Riga () , : Soggetto )]) / : Valore [ Col Min ( Riga () , : Soggetto )])
) ;
Ri: Come scrivere lo script delle differenze percentuali tra le righe che fanno riferimento a una cella in un'altra colonnaEcco un semplice script che fa quello che vuoi:
Nomi predefiniti qui ( 1 ) ;
dt = Tabella dati corrente () ;
// Crea una tabella dati con solo valori sullo schermo
dt << seleziona dove ( : giorno == "schermo" ) ;
dtscreen = dt << sottoinsieme ( righe selezionate ( 1 ) , colonne selezionate ( 0 ) ) ;
dtscreen << eliminare colonne ( "giorno" ) ;
dtscreen : Valore << imposta nome ( "Valore dello schermo" ) ;
// Combina nuovamente i dati
dt << Aggiornamento ( Con ( dtscreen ) , Corrispondenza colonne ( : soggetto = : soggetto ) ) ;
Vicino ( dtscreen , nosalva ) ;
// Effettua il calcolo finale
dt << Nuova colonna ( "% differenza dallo schermo" , formula ( ( : Valore - : valore dello schermo ) / : Valore dello schermo ) , Formato ( "Per cento" , 7 , 2 ) ) ;