Ri: Come creare una formula di colonna utilizzando un nome di colonna da un elencoStavi riscontrando un problema per cui le righe con più nomi di colonna non venivano gestite correttamente.Ecco il mio tentativo di risolvere il tuo problema.

Names Default To Here( 1 );
Clear Globals();
dt = Data Table( "Untitled 910" );
dt2 = Data Table( "Soft Bin Summary" );
current data table(dt);
// Build execution string
sumString = "";
for each row(
if(:Yield SummaryBins != "",
i=1;
while(word(i,:Yield SummaryBins,"[] ") != "",
sumString = sumString || ", :\!"" || word(i,:Yield SummaryBins,"[] ") || "\!"n";
i++;
)
)
);
// Remove first comma
sumString = substr(sumString, 1);
// Execute new column string
eval(parse("dt2<<NEW column=""></NEW>Ri: Come creare una formula di colonna utilizzando un nome di colonna da un elencoGrazie Jim.
Il tuo codice funziona. Voglio creare colonne separate per ogni gruppo.
Ad esempio: nel caso seguente, ci sono due gruppi Aperti e Corti che contengono il rispettivo nome di colonna.
Voglio avere due colonne diverse con una formula che somma i rispettivi valori
Colonna 1 (Somma della colonna (39, 41, 43)) e Colonna 2 (Somma della colonna (38, 40, 42)) nella tabella Riepilogo

Ri: Come creare una formula di colonna utilizzando un nome di colonna da un elencoSi tratta solo di espandere il codice che ho fornito.
Names Default To Here( 1 );
Clear Globals();
dt = Data Table( "Untitled 910" );
dt2 = Data Table( "Soft Bin Summary" );
Current Data Table( dt );
// Build execution string
openString = shortsString = "";
For Each Row(
If( :Yield SummaryBins != "",
If( :Yield SummaryLabel == "Opens",
i = 1;
While( Word( i, :Yield SummaryBins, "[] " ) != "",
openString = openString || ", :\!"" || Word( i, :Yield SummaryBins, "[] " ) || "\!"n";
i++;
);
);
If( :Yield SummaryLabel == "Shorts",
i = 1;
While( Word( i, :Yield SummaryBins, "[] " ) != "",
shortsString = shortsString || ", :\!"" || Word( i, :Yield SummaryBins, "[] " ) || "\!"n";
i++;
);
);
)
);
// Remove first comma
openString = Substr( openString, 1 );
shortsString = Substr( shortsString, 1 );
// Execute new column strings
Eval( Parse( "dt2<<NEW column=""></NEW>
Si prega di dedicare del tempo allo studio del codice fornito e di rispondere con ulteriori domande quando non si capisce come funziona il codice.
Ri: Come creare una formula di colonna utilizzando un nome di colonna da un elencoCerto che può... quali sono le regole?Ri: Come creare una formula di colonna utilizzando un nome di colonna da un elencoCiao @txnelson , potresti consigliarmi?
Ri: Come creare una formula di colonna utilizzando un nome di colonna da un elencoLa mia lettura della tua descrizione è che la regola che hai è creare una nuova colonna per ogni riga nella tabella delle condizioni che ha un valore nella colonna Yield SummaryLabel.
Quindi ti suggerisco di leggere ogni riga nella tabella delle condizioni e quando trovi una riga con un valore nella colonna Yield SummaryLabel, crei la nuova colonna.
C'è un caso in cui hai un problema.Riga 14 in cui è specificato SYL_Yield, ha un valore pari a 1 per Yield SummaryBins.Non c'è una colonna chiamata "1".

Ri: Come creare una formula di colonna utilizzando un nome di colonna da un elencoLa riga 14 può essere esclusa. Puoi condividere il codice? Volevo solo fare riferimento e avere un'idea
Ri: Come creare una formula di colonna utilizzando un nome di colonna da un elencoNames Default To Here( 1 );
dt = Data Table( "Condition table" );
dt2 = Data Table( "Soft Bin Summary" );
Current Data Table( dt );
// Rule: Create a new Summary Column for each row in the Condition Table
// that has a value in the Yield SummaryLabel column
For( i = 1, i <= N Rows( dt ), i++,
If( dt:Yield SummaryLabel[i] != "",
theString = "";
k = 1;
While( Word( k, dt:Yield SummaryBins[i], "[] " ) != "",
theString = theString || ", :\!"" || Word(
k,
dt:Yield SummaryBins[i],
"[] "
) || "\!"n";
k++;
);
theString = Substr( theString, 1 );
Eval(
Parse(
"dt2<<NEW column=""></NEW>
L'unico compenso che i membri della Comunità ottengono per aiutare altri membri è la soddisfazione che deriva dai membri che hanno aiutato a diventare più autosufficienti.Tagliare e incollare il codice funzionante di qualcun altro non è un buon modo per diventare autosufficienti.
Ri: Come creare una formula di colonna utilizzando un nome di colonna da un elenco@txnelson Grazie. Molto apprezzato.
Si può fare dinamicamente? Ho casi in cui ci sono più di 2 gruppi. Scrivere una funzione di esecuzione di stringhe separata sarebbe noioso.
Ho allegato una tabella di riferimento qui sotto
Ri: Come creare una formula di colonna utilizzando un nome di colonna da un elenco@txnelson Le regole sono simili all'esempio precedente.
Crea ogni gruppo di colonne separato con una formula che somma i rispettivi contenitori.
Desidero creare una colonna nella tabella di riepilogo Soft Bin con l'aggiunta di tutti i bin nome colonna nella formula.
Ad esempio: crea una colonna del gruppo IDD Currents con formula (Sum( Column ("52", "42","49") )),
Crea Colonna gruppo aperto con formula (Somma( Colonna ("39", "41","43") ))
e allo stesso modo per i restanti gruppi di etichette nella colonna Riepilogo resa
Come creare una formula di colonna utilizzando un nome di colonna da un elencoCIAO,
Voglio creare una nuova colonna nella seconda tabella JMP con una formula che somma semplicemente le colonne contenute nell'elenco (nel codice a cui ho assegnato il nome della colonna bidoni.
Ad esempio: l'elenco contiene i nomi delle colonne "39","41","43". Voglio creare una nuova colonna nella tabella Riepilogo Soft Bin con l'aggiunta di tutte queste nella formula
Non riesco a capire cosa sto facendo di sbagliato passando dall'elenco {""} di colonne al riferimento alle colonne.
Ogni aiuto è molto apprezzato.
Ecco il codice che ho provato
Names Default To Here( 1 );
Clear Globals();
dt = Data Table( "Untitled 910" );
dt2 = Data Table( "Soft Bin Summary" );
Try( For Each Row( :Yield SummaryBins = Word( 1, :Yield SummaryBins, "[]" ) ) );
grouplist = dt:Yield SummaryBins << get values;
For( i = N Items( grouplist ), i >= 1, i--,
If( grouplist[i] == "",
Remove From( grouplist, i, 1 ),
));
binss = {}; /// list contaiting bin value
For( i = 1, i <= N Items( grouplist ), i++,
If( Contains( grouplist[i], " " ),
Insert Into( binss, grouplist[i] )
)
);
adad = Words( binss[1], " " );
F = Eval Expr( Sum( Expr( adad ) ) );
/// Something doesn't seem to right in the below loop
For( i = 1, i <= N Items( binss ), i++,
dt2 << New Column( binss[i], "Numeric", "Continuous", Format( "Percent", 12, 2 ), Formula( Name Expr( F ) ) ););
Grazie,
Jack
Modellazione statistica avanzataEsplorazione e visualizzazione dei datiPersonalizzazione di massaQualità e ingegneria di processo