Spaltenformel: Wie kombiniere ich Zeichenspalten mit fehlenden Einträgen richtig?Hallo zusammen,
Ich bin mir nicht sicher, warum es mir schwerfällt, die richtige Lösung für dieses Problem zu finden, aber es fällt mir schwer, Textspalten zu kombinieren, wenn in jeder Spalte Einträge fehlen, die nicht in derselben Zeile liegen – aber alle Zeilen ausgerichtet sind. Siehe den Screenshot unten.

Wenn eine Zeile beispielsweise einen Eintrag A, B oder C hat und dieser sich innerhalb einer Spalte befindet, beispielsweise :C1 oder :C2, dann ist die Zeile für beide Spalten gleich. Für meine Datentabelle habe ich viele Textspalten, in denen jeweils einige Zeileneinträge fehlen, siehe Beispiel oben. Ich versuche, eine Spaltenformel zu verwenden, die alle verschiedenen Texteinträge von :C1 oder :C2 bis :CN verwendet.
Ich habe versucht, die folgende Spaltenformel zu verwenden, aber sie füllt die Spalte nicht aus, wenn :C1 leer ist

Ich dachte, die Lösung wäre ziemlich einfach, aber ich finde keine und weiß nicht, wie ich das Problem beheben kann. Das Schöne daran ist, dass für die Spalten :C1 bis :CN, die ich in meiner Datentabelle habe, wenn eine Zeile nicht leer ist, alle Spalten das gleiche Zeichen für diese Zeile haben. Beispielsweise haben alle Spalten den Eintrag D für Zeile 4 (sofern er nicht fehlt). Ich möchte am Ende eine Spalte erhalten, in der keine Werte fehlen, indem ich die nicht fehlenden Einträge für jede meiner :CN-Spalten verwende, wie die Spalte oben :Correct.
Ich hoffe, das macht Sinn. Jede Hilfe wird sehr geschätzt.
Danke!,
DS
InhaltsorganisationErgebnisse teilen und kommunizierenWindowsBetreff: Spaltenformel: Wie kombiniere ich Zeichenspalten mit fehlenden Einträgen richtig?Is Empty() prüft, ob die Zelle existiert.Sie müssen Is Missing() ausführen.
Betreff: Spaltenformel: Wie kombiniere ich Zeichenspalten mit fehlenden Einträgen richtig?Ich bin mir nicht sicher, wie schnell es wäre, aber Sie könnten Associative Array verwenden, um alle Duplikate zu entfernen. Dies ist nicht die sauberste Lösung, könnte aber funktionieren
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>Eine andere Option, die ziemlich gut funktionieren sollte, besteht darin, den ersten Wert zu finden, der nicht fehlt, und diesen dann zu verwenden (erstellen Sie eine Liste, verwenden Sie loc, um einen nicht fehlenden Index zu finden, wenn einer gefunden wird, verwenden Sie ihn, um einen Wert aus der Liste abzurufen, und wenn er nicht festgelegt ist). es fehlt)</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];
,
""
)
));
Sie können auch mit Leerzeichen verketten

Und erstellen Sie dann eine andere Spalte, nämlich „Erstes Wort“.


Ähnliches kann mit der Spaltenformel „Cols/Utilities/Combine Columns“ und „First Word“ durchgeführt werden
Betreff: Spaltenformel: Wie kombiniere ich Zeichenspalten mit fehlenden Einträgen richtig?Hallo @txnelson Und @jthi ,
Vielen Dank für Ihre schnellen Antworten. Ich beschloss, mitzumachen @txnelson 's Lösung – es war schön und einfach. Ich hatte im Kopf, dass die Bedingung Is Missing() nur bei Zahlen funktionierte, also habe ich das gar nicht erst versucht. Ich wusste, dass es relativ einfach hätte sein sollen.
Danke!,
DS
Betreff: Spaltenformel: Wie kombiniere ich Zeichenspalten mit fehlenden Einträgen richtig?Es besteht der Wunsch, einige Aggregationsfunktionen für die Zusammenfassung hinzuzufügen:
Zusammenfassung und Tabellierung: Aggregationsoption für Zeichenspalten hinzufügen
also Aggregation über viele Zeilen, gruppiert nach anderen Spalten.
Vielleicht lohnt es sich, eine solche Zeichenaggregationsfunktion sowie eine Formelspalte für mehrere Spalten hinzuzufügen?