Script con più tabelle<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Sono relativamente nuovo in JSL (e negli script in generale) e ho difficoltà a trovare un modo per manipolare più tabelle.
Quello che vorrei fare per ogni riga di una tabella è trasformare i dati di due colonne in due variabili globali, regolare i dati corrispondenti in una seconda tabella, quindi passare alla riga successiva della prima tabella, ripetere.
CIOÈ:
Una tabella contiene un numero totale di esecuzioni per ogni settimana lavorativa, una riga a settimana. La mia seconda tabella ha molte righe per ogni settimana lavorativa, ma vorrei che ogni riga ottenga le esecuzioni totali appropriate per quella settimana inserite nella colonna appropriata.
Nella guida allo scripting, la chiamata "Tabella dati correnti (tabella desiderata)" è elencata come come spostare i riferimenti da una tabella all'altra, ma non riesco a farlo funzionare.
Sto cercando di realizzare qualcosa di simile al seguente lavoro (gli spettacoli sono lì solo per la risoluzione dei problemi):
Tabella dati correnti ("Percentuale di errori") ;
Per ogni riga (
globalWeek= :Settimana;
totale globale = :N righe;
Mostra (settimana globale);
Mostra (totale globale);
Tabella dati corrente ("Tabella di riepilogo esecuzione");
Per ogni riga (if(Settimana == Settimanaglobale,
Esegue quella settimana=globalTotal))
)
Ciò che sto cercando di fare è possibile? Anche se alla fine trovo un modo diverso per risolvere questa particolare situazione, sono curioso del processo generale che porta a passare tra due tavoli come questo.
Script con più tabelleIl secondo argomento è facoltativo e rappresenta una "variabile by", ovvero restituisce conteggi separati per ogni livello della colonna by.
Nel menu di aiuto/funzioni JSL è documentato (questi indici di sintassi sono molto utili, a volte più completi dei libri o delle pagine di aiuto e forniscono buoni esempi).
Script con più tabelleFunziona, grazie ancora.
Per curiosità: quando cerco Col Number, afferma che richiede un solo argomento e fornisce il numero di righe "non mancanti". Ovviamente dando alle due forze una sorta di confronto, ma cosa sta facendo esattamente?
Script con più tabelleCol Number non ama le colonne formattate con caratteri, ma prova questo trucco:
Numero col ( Esadecimale al numero ( Da carattere a esadecimale ( :Colonna ) ) , : Colonna )
Script con più tabelleOh, è meraviglioso, non avevo ancora capito le formule per le statistiche delle colonne: ho eseguito solo formule direttamente all'interno della stessa riga.
Giocando un po' con questo, funziona magnificamente per le colonne numeriche, c'è un modo per fare la stessa cosa con le colonne di caratteri?
(E sì, ho già comprato un libro, ma ci vorrà un po' di tempo per riceverlo da Amazon.)
Script con più tabelleIn tal caso non è necessario uno script. Una formula di colonna andrebbe bene.
Prova questa formula in RowsPerWeek:
Numero colonna ( :Settimana, :Settimana )
Script con più tabelleGrazie mille per la rapida risposta
Il motivo per cui evito Join è che mi piacerebbe poterlo eseguire ripetutamente sulla stessa tabella, poiché nel tempo vengono aggiunti più dati.
Dopo averci pensato, però, sospetto che sto rendendo il tutto molto più complicato del necessario.
Quello che mi piacerebbe davvero è, nella mia tabella originale, contare quante righe sono presenti per ogni settimana e quindi inserire il conteggio totale delle righe per settimana in una colonna.
Quindi in pratica sarebbe simile a questo:
Settimana, RighePerSettimana
5, 3
5, 3
5, 3
6, 1
7, 2
7, 2
Questo sarebbe uno script che eseguirei ogni volta che aggiungevo dati al foglio e quindi automaticamente sommerebbe le mie righe settimanali e aggiornerebbe quella colonna. Ci stavo arrivando attraverso una tabella di riepilogo e poi reinserivo i dati nella tabella originale, ma deve esserci un modo più semplice.
Script con più tabelleÈ più semplice se indichi variabili diverse nelle due tabelle.
pf_dt = tabella dati ("Percentuale di errori");
rst_dt = tabella dati ("Esegui tabella di riepilogo");
Per utilizzare queste variabili:
for (i = 1, i <= nrighe(pf_dt), i++,
una_settimana = colonna(pf_dt, "Settimana") ;
uno_totale = colonna(pf_dt, "N righe") ;
for (k = 1, k <= nrows(rst_dt), k++,
if (colonna(rst_dt, "Settimana")== una_settimana,
colonna(rst_dt, "Esegue quella settimana")= uno_totale;
);
);
);
Tuttavia sarebbe meglio usare un comando JOIN per unire le due tabelle.Utilizza il comando Tabelle > Unisci per creare una nuova tabella, quindi fai clic sul triangolo rosso per visualizzare i comandi JSL utilizzati.