Restituisce "True" o "False" se più colonne contengono una stringaCIAO,
Vorrei restituire "False" se i dati di qualsiasi colonna contengono "hello" altrimenti restituire un "True"

Sono in grado di elaborare solo 1 colonna con se, qualche idea?
AnaliticaTabella datiScriptingRe: Restituisci "True" o "False" se più colonne contengono una stringaEcco il mio approccio, che aggiunge la possibilità di impostare l'intervallo.
If( Row() == 1,
dt = Current Data Table();
rangelow = 2;
rangehigh = 14;
);
If( Contains( dt[Row(), Index( rangelow, rangehigh )], "hello" ),
"False",
"True"
);
Ho allegato una tabella di dati di esempio con la formula già incorporata nella colonna.Ho anche incluso @jthi risposta in una nuova colonna denominata Scan_RESULT

Re: Restituisci "True" o "False" se più colonne contengono una stringaCIAO,
Ho provato la formula, ma è solo vuota. C'è un modo per farlo come Excel =IF(COUNTIF(R21602:AC21602,"HELLO")>0,"FALSE","TRUE"), dove possiamo scegliere come target solo un intervallo specifico di colonne per verificare la presenza di "Hello"?
Formula:
dt << Nuova colonna("Scan_RESULT", Carattere, Formula nominale(If(N Items(Loc(dt[Row(), 1::N Cols()], "hello")) > 0)),
"FALSO"
,
"VERO"
);
Re: Restituisci "True" o "False" se più colonne contengono una stringaCreeresti una nuova formula carattere colonna Creare formule in JMP (jmp.com) come ultima colonna nella tabella dei dati e copia incolla la formula che ho fornito. Successivamente è possibile riaprire le proprietà della colonna facendo doppio clic sull'intestazione della colonna e rimuovere la formula se lo si desidera. Se si dispone di JMP16, il registro avanzato dovrebbe fornire uno script per eseguire questa operazione, se necessario.
Ne avevo uno in più "," nel post precedente (lo modificherò):
If(N Items(Loc(Current Data Table()[Row(), 1::N Cols()], "hello")) > 0,
"FALSE"
,
"TRUE"
);
Re: Restituisci "True" o "False" se più colonne contengono una stringaIn termini di Excel, questa è la mia formula:
=SE(COUNTIF(R21602:AC21602,"CIAO")>0,"FALSO","VERO")
Re: Restituisci "True" o "False" se più colonne contengono una stringaCIAO,
Ho un set di dati con poche migliaia di righe ma avrei bisogno di post-elaborare i dati con uno script jmp. Finora la mia sceneggiatura ha filtrato tutto il rumore. Ho solo bisogno di sapere come implementare la soluzione che hai fornito
Re: Restituisci "True" o "False" se più colonne contengono una stringaMolti modi per farlo. Hai bisogno di una formula, è sufficiente impostare valori, JSL o no, soluzione interattiva?
Ecco una possibile formula, ma la rimuoverei dopo che è stata calcolata una volta, poiché non verrà rivalutata in modo simile alle formule di solito (questo potrebbe non essere un problema in questo caso).
If(N Items(Loc(Current Data Table()[Row(), 1::N Cols()], "hello")) > 0,
"FALSE"
,
"TRUE"
);

Questo script dovrebbe fornire una piccola spiegazione in più, tuttavia non creerà una nuova colonna per te. Apri il registro ed eseguilo, puoi anche cambiare Row() = 1 in Row() = 2 e così via, per vedere come si comporta su righe diverse
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);

Modificare:
Rimosso extra "," dalla formula
Re: Restituisci "True" o "False" se più colonne contengono una stringaE se fossi interessato a sapere quante volte appare "hello" in questo intervallo di colonne?
E un'altra situazione: cosa succede se la parola "ciao" fa parte del testo nella cella in alcune colonne?
Re: Restituisci "True" o "False" se più colonne contengono una stringa1. Puoi usare Loc per verificare le corrispondenze
If(Row() == 1,
dt = Current Data Table();
rangelow = 1;
rangehigh = 6;
);
N Items(Loc(dt[Row(), Index(rangelow, rangehigh)], "hello"));
2. Immagino che tu voglia sapere quante volte appare "hello" in quell'intervallo. Loop + Contains o Substitute + Length sono opzioni
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);
Vedi altro...
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: Restituisci "True" o "False" se più colonne contengono una stringaGrazie mille. La formula ha funzionato perfettamente. Tuttavia, ho capito che i miei dati sono un po' più complessi.
Ho due parole target, ad esempio "hello" e "Hi". In alcune celle, "Hi" può apparire due o tre volte, e in altre, possono essere presenti sia "Hello" che "Hi". Devo contare il numero di celle che contengono una delle due parole: ogni cella dovrebbe essere contata solo una volta, indipendentemente da quante volte le parole vi compaiono.
Re: Restituisci "True" o "False" se più colonne contengono una stringaImmagino che questo sia ciò che stai cercando

Ti è già stata fornita una risposta per questo, seleziona la "formula" "corretta" (queste non vengono valutate dinamicamente) e aggiungi un controllo aggiuntivo per "ciao"
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);
));