Formula di colonna: come combinare correttamente le colonne di caratteri con voci mancanti?Ciao a tutti,
Non sono sicuro del motivo per cui ho difficoltà a trovare la soluzione corretta, ma ho difficoltà a combinare colonne di testo quando ciascuna colonna ha voci mancanti che non si trovano sulla stessa riga, ma tutte le righe sono allineate. Guarda lo screenshot qui sotto.

Ad esempio, se una riga ha una voce A o B o C, se si trova all'interno di una colonna, ad esempio :C1 o :C2, la riga è la stessa per entrambe le colonne. Per la mia tabella dati, ho molte colonne di testo, ognuna di esse ha alcune voci di riga mancanti, vedi l'esempio sopra. Sto cercando di utilizzare una formula di colonna che utilizza tutte le diverse voci di testo da :C1 o :C2 a :CN.
Ho provato a utilizzare la seguente formula di colonna, ma non riempie la colonna quando :C1 è vuoto

Pensavo che la soluzione sarebbe stata piuttosto semplice, ma non ne trovo una e non riesco a capire come risolverlo. La cosa bella è che per le colonne da :C1 a :CN che ho nella mia tabella dati, se una riga non è vuota, tutte le colonne avranno lo stesso carattere per quella riga. Ad esempio, tutte le colonne hanno la voce D per la riga 4 (a meno che non sia mancante). Mi piacerebbe ottenere una colonna senza valori mancanti utilizzando le voci non mancanti per ciascuna delle mie colonne :CN, come la colonna sopra :Correct.
Spero che questo abbia senso. Ogni aiuto è molto apprezzato.
Grazie!,
DS
Organizzazione dei contenutiCondivisione e comunicazione dei risultatifinestreRi: Formula di colonna: come combinare correttamente le colonne di caratteri con voci mancanti?Is Vuoto() controlla se la cella esiste.Devi mancare()
Ri: Formula di colonna: come combinare correttamente le colonne di caratteri con voci mancanti?Non sono sicuro di quanto sarebbe veloce, ma potresti usare Associative Array per eliminare tutti i duplicati. Questa non è la soluzione più pulita ma potrebbe funzionare
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(3),
Compress File When Saved(1),
New Column("Column 1", Character, "Nominal", Set Values({"A", "B", "C", ""})),
New Column("Column 2", Character, "Nominal", Set Values({"A", "", "", ""})),
New Column("Column 3", Character, "Nominal", Set Values({"A", "", "C", ""}))
);
dt << New Column("Col", Character, Nominal, Formula(
aa = Associative Array(Eval List({:Column 1, :Column 2, :Column 3}));
(aa << get keys)[N Items(aa)];
));
</CODE></P>
<P> </P>
<P>Un'altra opzione che dovrebbe funzionare abbastanza bene è trovare il primo valore che non manca e poi usarlo (crea un elenco, usa loc per trovare l'indice non mancante, se ne viene trovato uno usalo per ottenere il valore dall'elenco e se non impostato come mancante)</P>
<PRE><CODE class=" language-jsl">dt << New Column("Col2", Character, Nominal, Formula(
l = Eval List({:Column 1, :Column 2, :Column 3});
ok_idx = Loc(!Matrix(IsMissing(l)));
If(N Items(ok_idx) > 0,
l[ok_idx][1];
,
""
)
));
Puoi anche concatenare con lo spazio

E poi crea un'altra colonna che è Prima Parola


Una cosa simile può essere fatta con Cols/Utilities/Combine Columns e la formula della colonna First Word
Ri: Formula di colonna: come combinare correttamente le colonne di caratteri con voci mancanti?CIAO @txnelson E @jthi ,
Grazie per le vostre risposte rapide Ho deciso di andare con @txnelson La soluzione di : è stato bello e facile. Avevo in testa che il condizionale Is Missing() funzionasse solo sui numeri, quindi non ci ho nemmeno provato. Sapevo che avrebbe dovuto essere relativamente semplice.
Grazie!,
DS
Ri: Formula di colonna: come combinare correttamente le colonne di caratteri con voci mancanti?Si desidera aggiungere alcune funzioni di aggregazione per Riepilogo:
Riepilogo e tabella: aggiungi l'opzione di aggregazione per le colonne di caratteri
quindi, aggregazione su più righe, raggruppate per altre colonne.
Forse vale la pena aggiungere tale funzionalità di aggregazione dei caratteri oltre alla colonna formula per più colonne?