Renvoie "Vrai" ou "Faux" si plusieurs colonnes contiennent une chaîneSalut,
Je voudrais renvoyer "False" si des données de colonne contiennent "bonjour", sinon renvoyer un "True"

Je ne peux traiter qu'une seule colonne avec si, des idées ?
Automatisation et scriptsRe : Renvoie "Vrai" ou "Faux" si plusieurs colonnes contiennent une chaîneVoici mon approche, qui ajoute la possibilité de définir la plage.
If( Row() == 1,
dt = Current Data Table();
rangelow = 2;
rangehigh = 14;
);
If( Contains( dt[Row(), Index( rangelow, rangehigh )], "hello" ),
"False",
"True"
);
J'ai joint un exemple de tableau de données avec la formule déjà intégrée dans la colonne.J'ai également inclus @jthi réponse dans une nouvelle colonne appelée Scan_RESULT

Re : Renvoie "Vrai" ou "Faux" si plusieurs colonnes contiennent une chaîneSalut,
J'ai essayé la formule, mais elle n'est qu'un blanc. Existe-t-il un moyen de le faire comme Excel =IF(COUNTIF(R21602:AC21602,"HELLO")>0,"FALSE","TRUE"), où nous ne pouvons cibler qu'une plage spécifique de colonnes pour vérifier "Bonjour" ?
Formule:
dt << Nouvelle colonne("Scan_RESULT", Caractère, Formule nominale(If(N Items(Loc(dt[Row(), 1::N Cols()], "hello")) > 0)),
"FAUX"
,
"VRAI"
);
Re : Renvoie "Vrai" ou "Faux" si plusieurs colonnes contiennent une chaîneVous créeriez une nouvelle formule personnage colonne Créer des formules dans JMP (jmp.com) comme dernière colonne du tableau de données et copiez-collez la formule que j'ai fournie. Après cela, vous pouvez rouvrir les propriétés de la colonne en double-cliquant sur l'en-tête de la colonne et supprimer la formule si vous le souhaitez. Si vous disposez d'un journal amélioré JMP16, vous devriez obtenir un script pour effectuer cette opération si nécessaire.
J'avais un "," supplémentaire dans le post précédent (je vais le supprimer) :
If(N Items(Loc(Current Data Table()[Row(), 1::N Cols()], "hello")) > 0,
"FALSE"
,
"TRUE"
);
Re : Renvoie "Vrai" ou "Faux" si plusieurs colonnes contiennent une chaîneEn termes d'Excel, voici ma formule :
=SI(COUNTIF(R21602:AC21602,"BONJOUR")>0,"FAUX", "VRAI")
Re : Renvoie "Vrai" ou "Faux" si plusieurs colonnes contiennent une chaîneSalut,
J'ai un ensemble de données avec quelques milliers de lignes, mais je devrais post-traiter les données avec un script jmp. Jusqu'à présent, mon script a filtré tout le bruit. J'ai juste besoin de savoir comment mettre en œuvre la solution que vous avez fournie
Re : Renvoie "Vrai" ou "Faux" si plusieurs colonnes contiennent une chaîneDe nombreuses façons de procéder. Avez-vous besoin d'une formule, la définition de valeurs est-elle suffisante, JSL ou non, une solution interactive ?
Voici une formule possible, mais je la supprimerais après qu'elle ait été calculée une fois, car elle ne sera pas réévaluée de la même manière que les formules le font habituellement (cela pourrait ne pas être un problème dans ce cas).
If(N Items(Loc(Current Data Table()[Row(), 1::N Cols()], "hello")) > 0,
"FALSE"
,
"TRUE"
);

Ce script devrait donner une petite explication supplémentaire, mais il ne créera pas de nouvelle colonne pour vous. Ouvrez le journal et exécutez-le, vous pouvez également changer Row() = 1 en Row() = 2 et ainsi de suite, pour voir comment il se comporte sur différentes lignes
Names Default To Here(1);
dt = New Table("Untitled 9",
Add Rows(3),
New Column("Column 1", Character, "Nominal", Set Values({"hello", "bye", "bye"})),
New Column("Column 2", Character, "Nominal", Set Values({"hello", "bye", "bye"})),
New Column("Column 3", Character, "Nominal", Set Values({"hello", "bye", "bye"})),
New Column("Column 4", Character, "Nominal", Set Values({"hello", "hello", "bye"})),
New Column("Column 5", Character, "Nominal", Set Values({"hello", "bye", "bye"}), Set Display Width(75)),
New Column("Column 6", Character, "Nominal", Set Values({"hello", "bye", "bye"}))
);
Row() = 1;
Show(Current Data Table()[Row(), 1::N Cols()]);
Show(Loc(Current Data Table()[Row(), 1::N Cols()], "hello"));
Show(N Items(Loc(Current Data Table()[Row(), 1::N Cols()], "hello")));
Show(N Items(Loc(Current Data Table()[Row(), 1::N Cols()], "hello")) > 0);

Modifier:
Suppression des "," supplémentaires de la formule
Re : Renvoyer « Vrai » ou « Faux » si plusieurs colonnes contiennent une chaîneQue faire si je souhaite connaître le nombre de fois où « bonjour » apparaît dans cette plage de colonnes ?
Et une autre situation : que se passe-t-il si le mot « bonjour » fait partie du texte de la cellule dans certaines colonnes ?
Re : Renvoyer « Vrai » ou « Faux » si plusieurs colonnes contiennent une chaîne1. Vous pouvez utiliser Loc pour vérifier les correspondances
If(Row() == 1,
dt = Current Data Table();
rangelow = 1;
rangehigh = 6;
);
N Items(Loc(dt[Row(), Index(rangelow, rangehigh)], "hello"));
2. Je suppose que vous souhaitez savoir combien de fois « hello » apparaît dans cette plage. Boucle + Contient ou Substitut + Longueur sont des options.
If(Row() == 1,
dt = Current Data Table();
rangelow = 1;
rangehigh = 6;
);
str = Concat Items(dt[Row(), Index(rangelow, rangehigh)], " ");
new_str = Substitute(str, "hello", "");
(Length(str) - Length(new_str)) / Length("hello")
If(Row() == 1,
dt = Current Data Table();
rangelow = 1;
rangehigh = 6;
);
res = Filter Each({val}, dt[Row(), Index(rangelow, rangehigh)], Contains(val, "hello"));
N Items(res);
Voir plus...
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(3),
New Column("Column 1", Character, "Nominal", Set Values({"hello", "bye", "bye"})),
New Column("Column 2", Character, "Nominal", Set Values({"hello", "bye", "bye"})),
New Column("Column 3", Character, "Nominal", Set Values({"hello", "hello", "bye"})),
New Column("Column 4", Character, "Nominal", Set Values({"hello", "a hello a", "bye"})),
New Column("Column 5", Character, "Nominal", Set Values({"hello", "bye", "bye"}), Set Display Width(75)),
New Column("Column 6", Character, "Nominal", Set Values({"hello", "bye", "bye"}))
);
dt << new column("hellocount", numeric, continuous, formula(
If( Row() == 1,
dt = Current Data Table();
rangelow = 1;
rangehigh = 6;
);
N Items(Loc(dt[Row(), Index(rangelow, rangehigh)], "hello"));
));
dt << new column("hellocountwithin", numeric, continuous, formula(
If(Row() == 1,
dt = Current Data Table();
rangelow = 1;
rangehigh = 6;
);
str = Concat Items(dt[Row(), Index(rangelow, rangehigh)], " ");
new_str = Substitute(str, "hello", "");
(Length(str) - Length(new_str)) / Length("hello");
));
dt << new column("hellocountwithin2", numeric, continuous, formula(
If(Row() == 1,
dt = Current Data Table();
rangelow = 1;
rangehigh = 6;
);
res = Filter Each({val}, dt[Row(), Index(rangelow, rangehigh)], Contains(val, "hello"));
N Items(res);
));
Re : Renvoyer « Vrai » ou « Faux » si plusieurs colonnes contiennent une chaîneMerci beaucoup. La formule a parfaitement fonctionné. Cependant, j'ai réalisé que mes données étaient un peu plus complexes.
J'ai deux mots cibles, par exemple « bonjour » et « Salut ». Dans certaines cellules, « Salut » peut apparaître deux ou trois fois, et dans d'autres, « Bonjour » et « Salut » peuvent être présents à la fois. Je dois compter le nombre de cellules contenant l'un ou l'autre de ces mots ; chaque cellule ne doit être comptée qu'une seule fois, quel que soit le nombre de fois où les mots y apparaissent.
Re : Renvoyer « Vrai » ou « Faux » si plusieurs colonnes contiennent une chaîneJe suppose que c'est ce que vous recherchez

Vous avez déjà reçu une réponse basique à ce sujet, choisissez « correct » « formule » (celles-ci ne sont pas évaluées dynamiquement) et ajoutez une vérification supplémentaire pour « bonjour »
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(3),
New Column("Column 1", Character, "Nominal", Set Values({"hello", "bye", "bye"})),
New Column("Column 2", Character, "Nominal", Set Values({"hello", "bye", "bye"})),
New Column("Column 3", Character, "Nominal", Set Values({"hello", "hello", "bye"})),
New Column("Column 4", Character, "Nominal", Set Values({"hello", "a hello a", "bye"})),
New Column("Column 5", Character, "Nominal", Set Values({"hello", "bye", "bye"}), Set Display Width(75)),
New Column("Column 6", Character, "Nominal", Set Values({"hello hello hi", "hi hi hi hi", "bye"}))
);
dt << new column("C", numeric, continuous, formula(
If(Row() == 1,
dt = Current Data Table();
rangelow = 1;
rangehigh = 6;
);
res = Filter Each({val}, dt[Row(), Index(rangelow, rangehigh)], Contains(val, "hello") | Contains(val, "hi"));
N Items(res);
));