Problem mit der bedingten Formatierung (Farbe) bei Verwendung von „for every row“ und einer verschachtelten „for“-SchleifeHallo,
Ich befinde mich am Ende eines Skripts, in dem ich eine Reihe von Daten in verschiedenen Spalten (sowohl numerische als auch zeichenhafte) zusammengefasst habe.
Das Formatieren numerischer Zellen, die bestimmte Kriterien erfüllen, in einer Schleife ist recht einfach, aber ich habe Probleme beim Zuweisen einer Farbe für Zeichenspalten, die eine bestimmte Teilzeichenfolge enthalten.
Beispielsweise sollte eine Zelle (mit folgendem Inhalt: 1,1,2,1,1,2,3,3) rot gefärbt werden, da sie einmal das Zeichen „3“ enthält.
Wenn ich den gesamten Inhalt der Zelle spezifiziere, ist das kein Problem, aber ich versuche, nach „3“ zu suchen und sie entsprechend einzufärben -> schlägt fehl.
Ich habe die Skripte unten hinzugefügt.
Für Vorschläge wäre ich dankbar.
Am besten,
Sebastian
Names Default To Here( 1 );
clear log();
dt = New Table( "test",
Add Rows( 8 ),
New Column( "unique_group_id",
Character,
"Nominal",
Set Values(
{"ELN-19-0588-A", "ELN-19-0588-B", "ELN-19-0588-C", "ELN-19-0588-D",
"ELN-19-0588-E", "ELN-19-0588-F", "ELN-19-0588-G", "ELN-19-0588-H"}
),
Set Display Width( 115 )
),
New Column( "FOB max",
Character,
"Nominal",
Set Selected,
Set Values(
{"0,0,0,0,0,0,0,0,0,0", "0,0,0,0,0,0,0,0", "0,0,0,0,0,0,0,0",
"0,0,3,0,0,1,0,2", "1,1,2,1,1,2,3,3", "0,0,0,0,0,0,0,0",
"4,2,2,3,2,3,3,4", "1,0,0,1,1,1,1,1"}
)
),
New Column( "glib1 % PBS - potatoe",
Numeric,
"Ordinal",
Format( "Best", 12 ),
Set Selected,
Set Values( [100, 113.39, 108.3, 156.38, 822.21, 768.51, 487.2, 222.56] )
),
New Column( "calb (IHC) cere",
Character,
"Nominal",
Set Values(
{"0,0,0,0,0,0,0,0,0,0", "0,0,0,0,0,0,0,0", "0,0,0,0,0,0,0,0",
"0,0,0,0,0,0,0,0", "3,4,3,4,3,3,3,4", "3,3,3,5,2,3,3,3",
"0,0,0,0,0,0,0,0", "0,0,0,0,0,0,1,0"}
)
)
);
wait(2);
col=dt <<GET column="" names="">200,
column(col[i]) << color cells( "Light Red", Row())
)
)));
//Does not work - it needs to be an exact match
c="FOB";
b={"3"};//trying to look for cells in columns labelled with FOB whihc contains the character '3'
For(i=1,i<=nc,i++, if( Contains( col[i], c ),
for each row(
If( contains(b,as column(col[i])),
column(col[i])<< color cells( "Light Red", Row())
)
)));
wait (2);
//Works when specifying exactly the content of the cell(s) to match
c="FOB";
b={"1,1,2,1,1,2,3,3"};
For(i=1,i<=nc,i++, if( Contains( col[i], c ),
for each row(
If( contains(b,as column(col[i])),
column(col[i])<< color cells( "Red", Row())
)
)));
</GET>Automatisierung und SkripterstellungVerbraucher- und MarktforschungInhaltsorganisationMassenanpassungQualitäts- und VerfahrenstechnikBetreff: Problem mit der bedingten Formatierung (Farbe) bei Verwendung von „für jede Zeile“ und einer verschachtelten „for“-SchleifeDanke!Betreff: Problem mit der bedingten Formatierung (Farbe) bei Verwendung von „für jede Zeile“ und einer verschachtelten „for“-SchleifeHallo,
Ändern Sie Ihren Code so, dass er mit Zeile 67 im folgenden Code übereinstimmt.
Mit Contains ( ) können Sie je nach den von Ihnen angegebenen Argumenten verschiedene Dinge tun. Zum Beispiel:
Enthält ({"Katze", "Hund", "Maus", "Hund", "Pferd"}, "Hund") gibt 2 zurück, da sich das erste Vorkommen von "Hund" in der bereitgestellten Liste an Position 2 befindet.
Enthält („cattle“, „dog“, „mouse“}, „cat“) gibt 0 zurück, da „cat“ nicht in der Liste vorkommt. Wenn wir die Liste Element für Element durchsuchen möchten, um zu sehen, ob „cat“ ein Teilstring eines beliebigen Elements ist, müssen wir die Liste durchlaufen.
Ihr ursprünglicher Code ähnelt in etwa diesem letzten Beispiel: „Contains (b, :col)“ prüft, ob der Zellenwert der Spalte mit einem Element in b übereinstimmt, das Sie als {"3"} definiert haben. Es wurde keine Übereinstimmung gefunden.
Umgekehrt prüft der neue Code Contains(:col, b[1]), ob b[1], das erste Element der Liste b, also „3“, im Spaltenzellenwert enthalten ist. Auf diese Weise sucht die Funktion „Contains (<>, <>)“ nach der Teilzeichenfolge <> innerhalb der Zeichenfolge <> – was meiner Meinung nach genau das ist, was Sie wollen.
Prost,
Brady
Enthält ( {"cat", "dog", "mouse"}, "cat") gibt zurück

Betreff: Problem mit der bedingten Formatierung (Farbe) bei Verwendung von „für jede Zeile“ und einer verschachtelten „for“-SchleifeSie haben Ihre Funktion „Contains()“ rückwärts angegeben und Ihre Vergleiche mit JMP-Listen durchgeführt.Beheben Sie diese und es funktioniert gut.

Names Default To Here( 1 );
clear log();
dt = New Table( "test",
Add Rows( 8 ),
New Column( "unique_group_id",
Character,
"Nominal",
Set Values(
{"ELN-19-0588-A", "ELN-19-0588-B", "ELN-19-0588-C", "ELN-19-0588-D",
"ELN-19-0588-E", "ELN-19-0588-F", "ELN-19-0588-G", "ELN-19-0588-H"}
),
Set Display Width( 115 )
),
New Column( "FOB max",
Character,
"Nominal",
Set Selected,
Set Values(
{"0,0,0,0,0,0,0,0,0,0", "0,0,0,0,0,0,0,0", "0,0,0,0,0,0,0,0",
"0,0,3,0,0,1,0,2", "1,1,2,1,1,2,3,3", "0,0,0,0,0,0,0,0",
"4,2,2,3,2,3,3,4", "1,0,0,1,1,1,1,1"}
)
),
New Column( "glib1 % PBS - potatoe",
Numeric,
"Ordinal",
Format( "Best", 12 ),
Set Selected,
Set Values( [100, 113.39, 108.3, 156.38, 822.21, 768.51, 487.2, 222.56] )
),
New Column( "calb (IHC) cere",
Character,
"Nominal",
Set Values(
{"0,0,0,0,0,0,0,0,0,0", "0,0,0,0,0,0,0,0", "0,0,0,0,0,0,0,0",
"0,0,0,0,0,0,0,0", "3,4,3,4,3,3,3,4", "3,3,3,5,2,3,3,3",
"0,0,0,0,0,0,0,0", "0,0,0,0,0,0,1,0"}
)
)
);
wait(2);
col=dt <<GET column="" names="">200,
column(col[i]) << color cells( "Light Red", Row())
)
)));
//Does not work - it needs to be an exact match
c = "FOB";
b = "3";//trying to look for cells in columns labelled with FOB whihc contains the character '3'
For( i = 1, i <= nc, i++,
If( Contains( col[i], c ),
For Each Row(
If( Contains( As Column( col[i] ), b ),
Column( col[i] ) << color cells( "Light Red", Row() )
);
)
)
);
wait (2);
//Works when specifying exactly the content of the cell(s) to match
c = "FOB";
b = "1,1,2,1,1,2,3,3";
For( i = 1, i <= nc, i++,
If( Contains( col[i], c ),
For Each Row(
If( Contains( As Column( col[i] ), b ),
Column( col[i] ) << color cells( "Red", Row() )
)
)
)
);</GET>