Colonna formula omette l'ultima rigaCiao a tutti,
un cliente mi ha chiesto di un problema con la valutazione della formula e mi ha inviato questi screenshot.
(Hanno creato questa formula per una colonna formula, poiché vogliono che la tabella cresca continuamente.)

Il problema che vedono con questo è che la cella della colonna della formula dell'ultima riga rimane vuota.

C'è qualche ragione ovvia per questo? E un modo per risolverlo?
(la formula dovrebbe trovare il relativo riferimento nella colonna 1 ("Spalte 1"), quindi dividere il valore dalla colonna 2 ("Spalte") della riga corrente per il rispettivo valore dalla riga con la corrispondenza. La colonna 3 ("Spalte 3") è la colonna della formula.
Grazie e distinti saluti,
Floriano
Re: Formula Column omette l'ultima rigal'If() nidificato restituisce il terzo argomento perché il primo argomento restituisce false? Restituisce la stringa "nessuna corrispondenza", ma è una colonna numerica, quindi manca il risultato (".").
Inoltre, la loro formula viene valutata automaticamente per riga. L'espressione della formula esegue un'ulteriore iterazione sulle righe e per ogni riga, itera su tutte le righe. Questo calcolo è valido?
Re: Formula Column omette l'ultima rigaSono d'accordo con Marco. La formula sta eseguendo molte iterazioni in ogni riga. Cosa stanno cercando di calcolare esattamente?
Inoltre, stanno assegnando un valore, forse ripetutamente, a Spalte 3[i] nella condizione If() centrale. Questo è non convenzionale e difficile da seguire e forse non è quello che vogliono.
Re: Formula Column omette l'ultima rigaCiao Floriano,
Suggerirei al cliente di utilizzare qualcosa come la formula seguente invece di un ciclo nidificato. Questa formula divide per il valore nella riga, contenente "0%", che ha lo stesso riferimento della riga attuale.
dt = :Spalte 1 << get data table;
Eval(
Eval Expr(
:Spalte 2 / :Spalte 2[ dt << get rows where(
Contains( :Spalte 1, "0%" ) & Contains(
:Spalte 1,
Expr(
Word( 3, dt:Spalte 1[Row()], "-" )
)
)
) ]
)
);
Se, come sembra, il cliente ha dati "perfetti", nel senso che le righe appaiono in un ordine prevedibile e non ci sono righe mancanti, allora questa formula molto più semplice funzionerà altrettanto bene:
:Spalte 2 / :Spalte 2[ Mod ( Row ( ) - 1, 3 ) + 1 ]
Queste sono le colonne :spalte 3 e :spalte 3a nello screenshot qui sotto. Ho modificato i valori della colonna in modo che i rapporti siano banali da controllare.

Saluti,
Brady