Formule de colonne : Comment combiner correctement les colonnes de caractères comportant des entrées manquantes ?Salut tout le monde,
Je ne sais pas pourquoi j'ai du mal à trouver la bonne solution à ce problème, mais j'ai du mal à combiner des colonnes de texte lorsque chaque colonne contient des entrées manquantes qui ne se trouvent pas sur la même ligne, mais que toutes les lignes sont alignées. Voir la capture d'écran ci-dessous.

Par exemple, si une ligne a une entrée A ou B ou C, alors si elle se trouve dans une colonne, disons :C1 ou :C2, alors la ligne est la même pour les deux colonnes. Pour ma table de données, j'ai de nombreuses colonnes de texte, chacune d'elles comporte des entrées de ligne manquantes, voir l'exemple ci-dessus. J'essaie d'utiliser une formule de colonne qui utilise toutes les différentes entrées de texte de :C1 ou :C2 à :CN.
J'ai essayé d'utiliser la formule de colonne suivante, mais elle ne remplit pas la colonne lorsque :C1 est vide

Je pensais que la solution serait assez simple, mais je n'en trouve pas et je ne sais pas comment résoudre ce problème. Ce qui est bien, c'est que pour les colonnes :C1 à :CN que j'ai dans ma table de données, si une ligne n'est pas vide, alors toutes les colonnes auront le même caractère pour cette ligne. Par exemple, toutes les colonnes ont l'entrée D pour la ligne 4 (sauf si elle est manquante). J'aimerais me retrouver avec une colonne qui n'a aucune valeur manquante en utilisant les entrées non manquantes pour chacune de mes colonnes :CN, comme la colonne ci-dessus :Correct.
J'espère que cela a du sens. Toute aide est très appréciée.
Merci!,
DS
Organisation du contenuPartager et communiquer les résultatsles fenêtresRe : Formule de colonne : Comment combiner correctement les colonnes de caractères comportant des entrées manquantes ?Is Empty() vérifie si la cellule existe.Vous devez Est Manquant()
Re : Formule de colonne : Comment combiner correctement les colonnes de caractères comportant des entrées manquantes ?Je ne sais pas à quelle vitesse ce serait, mais vous pouvez utiliser Associative Array pour vous débarrasser de tous les doublons. Ce n'est pas la solution la plus propre mais cela pourrait fonctionner
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>Une autre option qui devrait fonctionner assez bien est de trouver la première valeur qui ne manque pas, puis de l'utiliser (créer une liste, utiliser loc pour trouver l'index non manquant, s'il en existe un, utilisez-le pour obtenir la valeur de la liste et s'il n'est pas défini c'est comme manquant)</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];
,
""
)
));
Vous pouvez également concaténer avec l'espace

Et puis créez une autre colonne qui est le premier mot


Une chose similaire peut être faite avec Cols/Utilities/Combine Columns et la formule de colonne First Word
Re : Formule de colonne : Comment combiner correctement les colonnes de caractères comportant des entrées manquantes ?Salut @txnelson et @jthi ,
Merci pour vos réponses rapides. J'ai décidé d'y aller avec @txnelson La solution - c'était agréable et facile. J'avais en tête que le conditionnel Is Missing() ne fonctionnait que sur les nombres, donc je n'ai même pas essayé ça. Je savais que cela aurait dû être relativement simple.
Merci!,
DS
Re : Formule de colonne : Comment combiner correctement les colonnes de caractères comportant des entrées manquantes ?Il existe un souhait d'ajouter quelques fonctions d'agrégation pour le résumé :
Résumé et tabulation : ajout d'une option d'agrégation pour les colonnes de caractères
donc, agrégation sur plusieurs lignes, regroupées par d'autres colonnes.
Peut-être vaut-il la peine d'ajouter une telle fonctionnalité d'agrégation de caractères ainsi qu'une colonne de formule pour plusieurs colonnes ?