cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Discussions

Solve problems, and share tips and tricks with other JMP users.
%3CLINGO-SUB%20id%3D%22lingo-sub-810200%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EFormel%20zum%20Pr%C3%BCfen%2C%20ob%20in%20den%20Zeilen%20einer%20Spalte%20ein%20Element%20einer%20Liste%20enthalten%20ist%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-810200%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EJMP%20f%C3%BCr%20Mac%3C%2FP%3E%3CP%3EVersion%2017.2.0%20(701896)%3C%2FP%3E%3CP%3E%20%3C%2FP%3E%3CP%3EIch%20habe%20eine%20Spalte%20%E2%80%9EDaten%E2%80%9C%20mit%20Zeilen%20von%20Zahl_Zahl%20wie%20folgt%3A%3C%2FP%3E%3CP%3E1_3%3C%2FP%3E%3CP%3E3_7%3C%2FP%3E%3CP%3E6_5%3C%2FP%3E%3CP%3E...%3C%2FP%3E%3CP%3E%20%3C%2FP%3E%3CP%3EIch%20m%C3%B6chte%20diese%20Spalte%20testen%2C%20um%20zu%20sehen%2C%20ob%20einige%20der%20Zeilen%20Werte%20aus%20einer%20Werteliste%20enthalten%20und%20dann%20die%20Zeilen%20markieren%20oder%20beschriften%2C%20bei%20denen%20dies%20der%20Fall%20ist.%3C%2FP%3E%3CP%3E%20%3C%2FP%3E%3CP%3EIch%20wei%C3%9F%2C%20dass%20ich%20eine%20komplizierte%20Formel%20wie%20diese%20konstruieren%20k%C3%B6nnte%3A%3C%2FP%3E%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3EIf(%20%3ADie%20X_Y%20%3D%3D%20%223_9%22%20%7C%20%3ADie%20X_Y%20%3D%3D%20%223_4%22%2C%0A%091%2C%0A%090%0A)%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3EDas%20ist%20jedoch%20sehr%20m%C3%BChsam%2C%20wenn%20man%20lange%20Listen%20mit%20unterschiedlichen%20zu%20pr%C3%BCfenden%20Werten%20hat.%20Ich%20m%C3%B6chte%20einfach%20eine%20Liste%20der%20zu%20pr%C3%BCfenden%20Werte%20in%20eine%20Formel%20einf%C3%BCgen%20k%C3%B6nnen%2C%20getrennt%20durch%20ein%20Leerzeichen%20oder%20Komma.%3C%2FP%3E%3CP%3E%20%3C%2FP%3E%3CP%3EIch%20habe%20die%20Funktion%20%E2%80%9E%20%3CA%20href%3D%22https%3A%2F%2Fwww.jmp.com%2Fsupport%2Fhelp%2Fen%2F17.2%2Findex.shtml%23page%2Fjmp%2Fcharacter-functions-2.shtml%22%20target%3D%22_self%22%20rel%3D%22noopener%20noreferrer%22%3EEnth%C3%A4lt%20Element%3C%2FA%3E%20%E2%80%9C%20gefunden.%20Sie%20funktioniert%20f%C3%BCr%20ein%20Element%20einwandfrei%2C%20aber%20der%20Hilfeeintrag%20bietet%20keinen%20Einblick%20in%20die%20Erstellung%20der%20Option%20%E2%80%9EListe%E2%80%9C.%20Ich%20habe%20Folgendes%20versucht%20(indem%20ich%20das%20optionale%20Trennzeichen%20als%20Leerzeichen%20angegeben%20habe)%3A%3C%2FP%3E%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3EIf(%20Contains%20Item(%20%3ADie%20X_Y%2C%20%223_4%203_9%22%2C%20%22%20%22%20)%2C%0A%09%22exclude%22%2C%0A%09%22not%20exclude%22%0A)%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3Eund%20das%3A%3C%2FP%3E%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3EIf(%20Contains%20Item(%20%3AData%2C%20%223_4%2C3_9%22%2C%20%22%2C%22%20)%2C%0A%09%22exclude%22%2C%0A%09%22not%20exclude%22%0A)%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3EIch%20verstehe%2C%20dass%20das%20Standardtrennzeichen%20ein%20Komma%20ist%2C%20wollte%20es%20aber%20durchsetzen%2C%20um%20etwas%20zu%20finden%2C%20das%20funktioniert.%20Keine%20der%20%E2%80%9EContains%20Item%E2%80%9C-Funktionen%20gibt%20das%20gew%C3%BCnschte%20Verhalten%20zur%C3%BCck%20(logisch%201%2C%20wenn%20eine%20%C3%9Cbereinstimmung%20vorliegt%2C%200%2C%20wenn%20nicht).%20Wenn%20es%20eine%20bessere%20Funktion%20gibt%2C%20geben%20Sie%20bitte%20Bescheid.%3C%2FP%3E%3CP%3E%20%3C%2FP%3E%3CP%3EDies%20ist%20ein%20allgemeines%20Problem%2C%20das%20ich%20gerne%20l%C3%B6sen%20w%C3%BCrde%3A%20das%20Untersuchen%20einer%20Spalte%2C%20um%20%C3%9Cbereinstimmungen%20mit%20langen%20Elementlisten%20zu%20finden.%3C%2FP%3E%3CP%3E%20%3C%2FP%3E%3CP%3EDanke%3C%2FP%3E%3CP%3E%20%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-810200%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3EAutomatisierung%20und%20Skripting%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EmacOS%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%0A%20%0A%20%0A%20%20%3CLINGO-SUB%20id%3D%22lingo-sub-810365%22%20slang%3D%22en-US%22%20mode%3D%22UPDATE%22%3EBetreff%3A%20Formel%20zum%20Pr%C3%BCfen%2C%20ob%20in%20den%20Zeilen%20einer%20Spalte%20Elemente%20einer%20Liste%20enthalten%20sind%3C%2FLINGO-SUB%3E%0A%20%20%3CLINGO-BODY%20id%3D%22lingo-body-810365%22%20slang%3D%22en-US%22%20mode%3D%22UPDATE%22%3E%0A%20%20%20%3CP%3EEin%20sch%C3%B6ner%20Nebeneffekt%3A%3CBR%20%2F%3E%3CBR%20%2F%3E%20Diese%20Diskussion%20brachte%20mich%20zum%20Nachdenken%3A%3CBR%20%2F%3E%20Erh%C3%B6ht%20%3CFONT%20face%3D%22courier%20new%2Ccourier%22%3EEnth%C3%A4lt%3C%2FFONT%3E%20auch%20die%20Geschwindigkeit%20von%20%3CFONT%20face%3D%22courier%20new%2Ccourier%22%3ECol..-%3C%2FFONT%3E%20Aggregationen%3F%3C%2FP%3E%20%0A%20%20%20%3CP%3EUnd%20ob%20Sie%20es%20glauben%20oder%20nicht%20%E2%80%93%20das%20tut%20es.%20Wow%2C%20das%20tut%20es!!!!%3C%2FP%3E%20%0A%20%20%20%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2FDiscussions%2FHow-do-I-use-the-Col-Maximum-Formula-with-a-quot-where-quot%2Fm-p%2F810363%2Fhighlight%2Ftrue%23M99287%22%20target%3D%22_blank%22%3Ehttps%3A%2F%2Fcommunity.jmp.com%2Ft5%2FDiscussions%2FHow-do-I-use-the-Col-Maximum-Formula-with-a-quot-where-quot%2Fmp%2F810363%2Fhighlight%2Ftrue%23M99287%3C%2FA%3E%20%3C%2FP%3E%20%0A%20%20%20%3CBR%20%2F%3E%20%0A%20%20%20%3CP%3EIrgendeine%20Ahnung%2C%20warum%20der%20Zeichenvergleich%20SOOO%20langsam%20ist%3F%3C%2FP%3E%0A%20%20%3C%2FLINGO-BODY%3E%0A%20%0A%3CLINGO-SUB%20id%3D%22lingo-sub-810364%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EBetreff%3A%20Formel%20zum%20Pr%C3%BCfen%2C%20ob%20in%20den%20Zeilen%20einer%20Spalte%20ein%20Element%20einer%20Liste%20enthalten%20ist%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-810364%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3Edie%20Lesart%20ist%3A%203%20Argumente%3C%2FP%3E%3COL%3E%3CLI%3Ex%20-%20eine%20Zeichenfolge%3C%2FLI%3E%3CLI%3E3%20M%C3%B6glichkeiten%3A%3CBR%20%2F%3E%20-%20zu%20suchendes%20Element%3CBR%20%2F%3E%20-%20eine%20Liste%20mit%20mehreren%20Eintr%C3%A4gen%20-%20passt%20einer%20davon%3CBR%20%2F%3E%20-%20ein%20zu%20suchendes%20Muster%3C%2FLI%3E%3CLI%3Eoptionales%20Argument%3A%20das%20Trennzeichen%20um%20x%20in%20W%C3%B6rter%20aufzuteilen%3C%2FLI%3E%3C%2FOL%3E%3CP%3E%20%3C%2FP%3E%3CBLOCKQUOTE%3E%3CHR%20%2F%3E%3CA%20href%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F12282%22%20target%3D%22_blank%22%3E%40datanaut%3C%2FA%3E%20schrieb%3A%3CBR%20%2F%3E%3CP%3E%20Daher%20k%C3%B6nnte%20(meiner%20vereinfachten%20Lesart%20nach)%20entweder%20x%20oder%20die%20%7BListe%7D%20die%20zu%20suchenden%20W%C3%B6rter%20oder%20die%20Liste%20der%20W%C3%B6rter%20enthalten%2C%20mit%20denen%20verglichen%20werden%20soll.%3C%2FP%3E%3CHR%20%2F%3E%3C%2FBLOCKQUOTE%3E%3CP%3E-%26gt%3B%20ja.%3C%2FP%3E%3CP%3E%20%3C%2FP%3E%3CBLOCKQUOTE%3Eeine%20Spalte%20wie%20in%20Jarmos%20Beispiel%20eingef%C3%BCgt%3CHR%20%2F%3E%3C%2FBLOCKQUOTE%3E%3CP%3EBei%20einer%20Spaltenformel%20ist%20dies%20immer%20m%C3%B6glich%2C%20und%20zwar%20nach%20dem%20Grundsatz%3A%3CBR%20%2F%3E%20F%C3%BCr%20jede%20Zeile%20%C3%BCbernimmt%20JMP%20automatisch%20den%20Eintrag%20der%20Spalte%20in%20der%20jeweiligen%20Zeile.%3CBR%20%2F%3E%20Wenn%20Sie%20den%20Formel-Editor%20verwenden%2C%20wenden%20Sie%20diesen%20Trick%20st%C3%A4ndig%20an%20%E2%80%93%20ohne%20es%20zu%20merken.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-810361%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EBetreff%3A%20Formel%20zum%20Pr%C3%BCfen%2C%20ob%20in%20den%20Zeilen%20einer%20Spalte%20ein%20Element%20einer%20Liste%20enthalten%20ist%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-810361%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EDanke%20%3CA%20href%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F14366%22%20target%3D%22_blank%22%3E%40jthi%3C%2FA%3E%20und%20%3CA%20href%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F2687%22%20target%3D%22_blank%22%3E%40txnelson%3C%2FA%3E%20und%20%3CA%20href%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F26800%22%20target%3D%22_blank%22%3E%40hogi%3C%2FA%3E%20und%20%3CA%20href%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F58003%22%20target%3D%22_blank%22%3E%40mmarchandFSLR%3C%2FA%3E%20f%C3%BCr%20die%20Antworten%20und%20M%C3%BChe%20bei%20meiner%20Frage.%3C%2FP%3E%3CP%3E%20%3C%2FP%3E%3CP%3EJarmo%20hat%20mein%20Problem%20gefunden%20%E2%80%93%20das%20Vertauschen%20der%20Liste%20und%20des%20Elements%20in%20meiner%20Formel.%20Danke%20f%C3%BCr%20den%20Code%2C%20der%20die%20korrekte%20Verwendung%20veranschaulicht.%3C%2FP%3E%3CP%3E%20%3C%2FP%3E%3CP%3EBetreff%3A%20%E2%80%9EDokumentation%20etwas%20mangelhaft%E2%80%9C%3CBR%20%2F%3E%20Ich%20stimme%20zu.%20Die%20Anweisungen%20und%20Beispiele%20im%20Skriptindex%20erscheinen%20mir%20etwas%20mehrdeutig.%20Hier%20ist%20der%20Eintrag%20f%C3%BCr%20den%20Skriptindex%3A%3CBR%20%2F%3E%3CBR%20%2F%3E%20%22%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22%22%3EEnth%C3%A4lt%20Artikel%3C%2FSPAN%3E%3CSPAN%3E(%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3Ex%3C%2FSPAN%3E%3CSPAN%3E%2C%20%26lt%3B%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3EArtikel%3C%2FSPAN%3E%3CSPAN%3E%7C%20%7B%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3EListe%3C%2FSPAN%3E%3CSPAN%3E%7D%20%7C%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3EMuster%3C%2FSPAN%3E%3CSPAN%3E%26gt%3B%2C%20%26lt%3B%3C%2FSPAN%3E%3CSPAN%20class%3D%22%22%3ETrennzeichen%3C%2FSPAN%3E%3CSPAN%3E%26gt%3B)%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E...%3C%2FSPAN%3E%3C%2FP%3E%3CP%20class%3D%22%22%3EReturns%20a%20Boolean%20that%20indicates%20whether%20the%20word%20(%3CSPAN%20class%3D%22%22%3EArtikel%3C%2FSPAN%3E)%2C%20one%20of%20a%20list%20of%20words%20(%3CSPAN%20class%3D%22%22%3EListe%3C%2FSPAN%3E)%2C%20or%20pattern%20(%3CSPAN%20class%3D%22%22%3EMuster%3C%2FSPAN%3E)%20matches%20one%20of%20the%20words%20in%20the%20text%20represented%20by%20%3CSPAN%20class%3D%22%22%3Ex%3C%2FSPAN%3E.%20Words%20are%20delimited%20by%20the%20characters%20in%20the%20optional%20quoted%20delimiter%20(%3CSPAN%20class%3D%22%22%3ETrennzeichen%3C%2FSPAN%3E)%20string.%20A%20comma%20is%20the%20default%20delimiter.%20Blanks%20are%20trimmed%20from%20the%20ends%20of%20each%20extracted%20word%20from%20the%20input%20text%20string%20(%3CSPAN%20class%3D%22%22%3Ex%3C%2FSPAN%3E).%3C%2FP%3E%3CP%3E%22%3C%2FP%3E%3CP%3E%20%3C%2FP%3E%3CP%3EAlso%20(meiner%20vereinfachten%20Lesart%20nach)%20k%C3%B6nnte%20entweder%20x%20oder%20die%20%7BListe%7D%20die%20zu%20suchenden%20W%C3%B6rter%20oder%20die%20Liste%20der%20W%C3%B6rter%20enthalten%2C%20mit%20denen%20verglichen%20werden%20soll.%20Ein%20paar%20weitere%20Beispiele%2C%20die%20einige%20Alternativen%20zeigen%2C%20die%20eine%20Spalte%20enthalten%2C%20wie%20in%20Jarmos%20Beispiel%2C%20k%C3%B6nnten%20zur%20Verdeutlichung%20beitragen.%3C%2FP%3E%3CP%3E%20%3C%2FP%3E%3CP%3EIch%20habe%20die%20L%C3%B6sung%20bereits%20verwendet!%20Nochmals%20vielen%20Dank.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-810318%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EBetreff%3A%20Formel%20zum%20Pr%C3%BCfen%2C%20ob%20in%20den%20Zeilen%20einer%20Spalte%20ein%20Element%20einer%20Liste%20enthalten%20ist%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-810318%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EAh%2C%20gro%C3%9Fartig!%3CBR%20%2F%3E%3CBR%20%2F%3E%20Ich%20habe%20mit%20%3CFONT%20face%3D%22courier%20new%2Ccourier%22%3EWhere()%3C%2FFONT%3E%20anfangs%20ziemlich%20schlechte%20Erfahrungen%20gemacht%2C%20kann%20mich%20aber%20nicht%20erinnern%2C%20warum.%3CBR%20%2F%3E%20Vielleicht%20habe%20ich%20eine%20falsche%20Syntax%20verwendet%20%E2%80%93%20oder%20das%20Problem%20wurde%20in%20der%20Zwischenzeit%20behoben%20...%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-810290%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EBetreff%3A%20Formel%20zum%20Pr%C3%BCfen%2C%20ob%20in%20den%20Zeilen%20einer%20Spalte%20ein%20Element%20einer%20Liste%20enthalten%20ist%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-810290%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EIch%20denke%2C%20es%20ist%20erw%C3%A4hnenswert%2C%20dass%20die%20Where()-Funktion%20viel%20schneller%20ist%20(%26gt%3B%20eine%20Gr%C3%B6%C3%9Fenordnung!)%20als%20%26lt%3B%20%3CSELECT%20where%3D%22%22%20or%3D%22%22%3E%26lt%3B%3CGET%20rows%3D%22%22%20where.%3D%22%22%3E%26lt%3B%26gt%3B%20Namen%20standardm%C3%A4%C3%9Fig%20hier%20(1)%3B%20dt%20%3D%20Datentabelle%20(%E2%80%9ESATByYear%E2%80%9C)%3B%20Anzeigen%20(N%20Zeilen%20(dt))%3B%20%2F%2FN%20Zeilen%20(dt)%20%3D%2021245376%3B%20jetzt%20%3D%20HP-Zeit%20()%3B%20dt%20%26lt%3B%26lt%3B%20Ausw%C3%A4hlen%2C%20wobei%20(%3A%20Staat%20%3D%3D%20%E2%80%9EWisconsin%E2%80%9C%20%7C%3A%20Staat%20%3D%3D%20%E2%80%9EAlabama%E2%80%9C)%3B%20Warten%20(0)%3B%20gesamt%20%3D%20HP-Zeit%20()%20%E2%80%93%20jetzt%3B%20Drucken%20(%E2%80%9E%26lt%3B%3C%2FGET%3E%3C%2FSELECT%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-810248%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EBetreff%3A%20Formel%20zum%20Pr%C3%BCfen%2C%20ob%20in%20den%20Zeilen%20einer%20Spalte%20ein%20Element%20einer%20Liste%20enthalten%20ist%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-810248%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EEntschuldigung%2C%20ich%20habe%20in%20den%20vorherigen%20L%C3%A4ufen%20ein%20wait()%20verpasst%20-%20das%20kehrt%20Antwort%201%20um%20...%20und%20f%C3%BChrt%20zu%20neuen%20M%C3%B6glichkeiten%20f%C3%BCr%20%233%2C%20%234%20und%20%235%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3CP%3EDie%20neuen%20Erkenntnisse%3A%3C%2FP%3E%3COL%3E%3CLI%3E%3CFONT%20face%3D%22courier%20new%2Ccourier%22%3EEnth%C3%A4lt%20item()%3C%2FFONT%3E%3CSPAN%3E%20%3C%2FSPAN%3Eist%20schneller%20mit%20%3CA%20href%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F14366%22%20target%3D%22_blank%22%3E%40jthis%3C%2FA%3E%20Syntax%20-%20v2%20ist%20langsamer%3C%2FLI%3E%3CLI%3E%3CFONT%20face%3D%22courier%20new%2Ccourier%22%3EW%C3%A4hlen%20Sie%20wo()%3C%2FFONT%3E%3CSPAN%3Ewird%20viel%20schneller%2C%20wenn%20man%20es%20ersetzt%20durch%3C%2FSPAN%3E%3CFONT%20face%3D%22courier%20new%2Ccourier%22%3EZeilen%20abrufen%2C%20wobei%20()%20%2B%20Zeilen%20ausw%C3%A4hlen%20().%3C%2FFONT%3E%3C%2FLI%3E%3CLI%3E%3CFONT%20face%3D%22courier%20new%2Ccourier%22%3ESelect%20Where()%3C%2FFONT%3E%20wird%20deutlich%20(!!)%20schneller%2C%20wenn%20der%20String-Vergleich%20durch%20%3CFONT%20face%3D%22courier%20new%2Ccourier%22%3Econtains%20item()%3C%2FFONT%3E%20ersetzt%20wird.%3C%2FLI%3E%3CLI%3EDie%20Kombination%20von%20(2)%20und%20(3)%20ist%20durchaus%20vergleichbar%3C%2FLI%3E%3CLI%3E...%20auch%20f%C3%BCr%20gr%C3%B6%C3%9Fere%20Datenmengen.%3C%2FLI%3E%3C%2FOL%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22hogi_0-1731261697022.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22hogi_0-1731261697022.png%22%20style%3D%22width%3A%20330px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22hogi_0-1731261697022.png%22%20style%3D%22width%3A%20330px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F70017i3B687F3FACA86149%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22hogi_0-1731261697022.png%22%20alt%3D%22hogi_0-1731261697022.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3CDIV%20class%3D%22lia-spoiler-container%22%3E%3CA%20class%3D%22lia-spoiler-link%22%20href%3D%22%23%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%20target%3D%22_blank%22%3EMehr%20anzeigen...%3C%2FA%3E%3CNOSCRIPT%3E(Zum%20Lesen%20markieren)%3C%2FNOSCRIPT%3E%3CDIV%20class%3D%22lia-spoiler-border%22%3E%3CDIV%20class%3D%22lia-spoiler-content%22%3E%3CP%3E%20%3C%2FP%3E%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3Enames%20default%20to%20here(1)%3B%0Adt%20%3D%20Open(%20%22%24SAMPLE_DATA%2FWafer%20Stacked.jmp%22%20)%3B%0A%0ANew%20Column(%20%22x_y%22%2C%0A%09Character%2C%0A%09Formula(%20Concat%20Items(%20%7BChar(%20%3AX_Die%20)%2C%20Char(%20%3AY_Die%20)%7D%2C%20%22_%22%20)%20)%0A)%3B%0A%0Await(0)%3B%0A%0At0%3Dhptime()%3B%0ANew%20Column(%20%22contains%20item%22%2C%0A%09Character%2C%0A%09Formula(%20If(%20Contains%20Item(%20%221_3%203_9%22%2C%20%3Ax_y%2C%20%22%20%22%20)%2C%20%22exclude%22%2C%20%22not%20exclude%22%20)%20)%0A)%3B%0Adt%20%26lt%3B%26lt%3B%20run%20formulas()%3B%0At%3D%20(hptime()-t0)%2F1000000%3B%0Aprint(%22formula%20-%20contains%20item%22%2C%20t)%3B%0A%0A%0A%0At0%3Dhptime()%3B%0ANew%20Column(%20%22contains%20item%20v2%22%2C%0A%09Character%2C%0A%09Formula(%20If(%20Contains%20Item(%20%3Ax_y%2C%20%7B%223_1%22%2C%224_4%22%7D)%20%2C%20%22exclude%22%2C%20%22not%20exclude%22%20)%20)%0A)%3B%0Adt%20%26lt%3B%26lt%3B%20run%20formulas()%3B%0At%3D%20(hptime()-t0)%2F1000000%3B%0Aprint(%221)%20formula%20-%20contains%20item%20v2%22%2C%20t)%3B%0A%0A%0A%0A%0At0%3Dhptime()%3B%0ANew%20Column(%20%22get%20rows%20where%22%2C%0A%09Character%2C%0A%09set%20each%20value(%22not%20excluded%22)%20)%3B%0Amyrows%3D%5B%5D%3B%0Afor%20each(%20%7Bcompare%7D%2C%20%7B%223_1%22%2C%224_4%22%7D%2C%09%0A%09myrows%20%3D%20V%20concat%20to%20(myrows%2C%20%20dt%20%26lt%3B%26lt%3B%20get%20rows%20where(%3Ax_y%20%3D%3D%20compare))%3B%09%0A)%3B%0Adt%20%26lt%3B%26lt%3B%20select%20rows(myrows)%3B%20%2F%2F%20just%20for%20fun%20-%20it's%20fast%0Adt%5Bmyrows%2C%22get%20rows%20where%22%5D%20%3D%20Repeat(%7B%22excluded%22%7D%2Cn%20items(myrows)%20)%3B%0At%3D%20(hptime()-t0)%2F1000000%3B%0Aprint(%222)%20get%20rows%20where%22%2C%20t)%3B%0A%0A%0A%0At0%3Dhptime()%3B%0Afor%20each(%20%7Bcompare%7D%2C%20%7B%223_1%22%2C%224_4%22%7D%2C%0A%09dt%26lt%3B%3CSELECT%20where%3D%22%22%3E%20%20%20names%20default%20to%20here(1)%3B%0Adt%20%3D%20Open(%20%22%24SAMPLE_DATA%2FWafer%20Stacked.jmp%22%20)%3B%0A%0ANew%20Column(%20%22x_y%22%2C%0A%09Character%2C%0A%09Formula(%20Concat%20Items(%20%7BChar(%20%3AX_Die%20)%2C%20Char(%20%3AY_Die%20)%7D%2C%20%22_%22%20)%20)%0A)%3B%0A%0Await(0)%3B%0A%0At0%3Dhptime()%3B%0ANew%20Column(%20%22contains%20item%22%2C%0A%09Character%2C%0A%09Formula(%20If(%20Contains%20Item(%20%221_3%203_9%22%2C%20%3Ax_y%2C%20%22%20%22%20)%2C%20%22exclude%22%2C%20%22not%20exclude%22%20)%20)%0A)%3B%0Adt%20%26lt%3B%26lt%3B%20run%20formulas()%3B%0At%3D%20(hptime()-t0)%2F1000000%3B%0Aprint(%22formula%20-%20contains%20item%22%2C%20t)%3B%0A%0A%0A%0At0%3Dhptime()%3B%0ANew%20Column(%20%22contains%20item%20v2%22%2C%0A%09Character%2C%0A%09Formula(%20If(%20Contains%20Item(%20%3Ax_y%2C%20%7B%223_1%22%2C%224_4%22%7D)%20%2C%20%22exclude%22%2C%20%22not%20exclude%22%20)%20)%0A)%3B%0Adt%20%26lt%3B%26lt%3B%20run%20formulas()%3B%0At%3D%20(hptime()-t0)%2F1000000%3B%0Aprint(%221)%20formula%20-%20contains%20item%20v2%22%2C%20t)%3B%0A%0A%0A%0A%0At0%3Dhptime()%3B%0ANew%20Column(%20%22get%20rows%20where%22%2C%0A%09Character%2C%0A%09set%20each%20value(%22not%20excluded%22)%20)%3B%0Amyrows%3D%5B%5D%3B%0Afor%20each(%20%7Bcompare%7D%2C%20%7B%223_1%22%2C%224_4%22%7D%2C%09%0A%09myrows%20%3D%20V%20concat%20to%20(myrows%2C%20%20dt%20%26lt%3B%26lt%3B%20get%20rows%20where(%3Ax_y%20%3D%3D%20compare))%3B%09%0A)%3B%0Adt%20%26lt%3B%26lt%3B%20select%20rows(myrows)%3B%20%2F%2F%20just%20for%20fun%20-%20it's%20fast%0Adt%5Bmyrows%2C%22get%20rows%20where%22%5D%20%3D%20Repeat(%7B%22excluded%22%7D%2Cn%20items(myrows)%20)%3B%0At%3D%20(hptime()-t0)%2F1000000%3B%0Aprint(%222)%20get%20rows%20where%22%2C%20t)%3B%0A%0A%0A%0At0%3Dhptime()%3B%0Afor%20each(%20%7Bcompare%7D%2C%20%7B%223_1%22%2C%224_4%22%7D%2C%0A%09dt%26lt%3B%3C%2FSELECT%3E%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3CP%3E%3CCODE%20class%3D%22%20language-jsl%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22hogi_0-1731305493836.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22hogi_0-1731305493836.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22hogi_0-1731305493836.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F70019i116F7A07829AD82B%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22hogi_0-1731305493836.png%22%20alt%3D%22hogi_0-1731305493836.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FCODE%3E%3C%2FP%3E%3CP%3E%3CCODE%20class%3D%22%20language-jsl%22%3E%20%3C%2FCODE%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-810228%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EBetreff%3A%20Formel%20zum%20Pr%C3%BCfen%2C%20ob%20in%20den%20Zeilen%20einer%20Spalte%20ein%20Element%20einer%20Liste%20enthalten%20ist%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-810228%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3Ehat%20es%20zu%20%3CA%20href%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2FDiscussions%2FTips-and-Tricks-best-practice-with-JMP-JSL%2Fm-p%2F662686%23U662686%22%20class%3D%22lia-mention-container-editor-message%20lia-img-icon-forum-thread%20lia-fa-icon%20lia-fa-forum%20lia-fa-thread%20lia-fa%22%20target%3D%22_blank%22%3ETipps%20und%20Tricks%20hinzugef%C3%BCgt%20%E2%80%93%20Best%20Practice%20mit%20JMP%2FJSL%3C%2FA%3E%3CBR%20%2F%3E%20%234%20%C3%BCberrascht.%20Im%20Moment%20w%C3%BCrde%20ich%20sagen%3A%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22hogi_0-1731241802910.png%22%20style%3D%22width%3A%20684px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22hogi_0-1731241802910.png%22%20style%3D%22width%3A%20684px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22hogi_0-1731241802910.png%22%20style%3D%22width%3A%20684px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F70011iB71AF709F9A7735D%2Fimage-dimensions%2F684x93%3Fv%3Dv2%22%20width%3D%22684%22%20height%3D%2293%22%20role%3D%22button%22%20title%3D%22hogi_0-1731241802910.png%22%20alt%3D%22hogi_0-1731241802910.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%20%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-810225%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EBetreff%3A%20Formel%20zum%20Pr%C3%BCfen%2C%20ob%20in%20den%20Zeilen%20einer%20Spalte%20ein%20Element%20einer%20Liste%20enthalten%20ist%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-810225%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EDanke%20f%C3%BCr%20den%20Kommentar.%3CBR%20%2F%3E%20bei%20genauerem%20Hinsehen%20stellt%20sich%20heraus%2C%20dass%20es%20sich%20tats%C3%A4chlich%20nicht%20%3CSTRONG%3Eum%20ein%20%E2%80%9Econtains%20item%E2%80%9C%20(enth%C3%A4lt%20das%20Element)%3C%2FSTRONG%3E%20im%20Gegensatz%20zu%20%3CSTRONG%3E%E2%80%9ESelect%20Where%E2%80%9C%20(Wo%20ausw%C3%A4hlen)%3C%2FSTRONG%3E%20handelt.%3C%2FP%3E%3CP%3E%20%3C%2FP%3E%3CP%3Eeinige%20Erkenntnisse%3A%3C%2FP%3E%3COL%3E%3CLI%3E%3CFONT%20face%3D%22courier%20new%2Ccourier%22%3EContains%20item()%3C%2FFONT%3E%20ist%20mit%20der%20inversen%20%E2%80%9Ev2%E2%80%9C-Syntax%20schneller%3C%2FLI%3E%3CLI%3E%3CFONT%20face%3D%22courier%20new%2Ccourier%22%3EW%C3%A4hlen%20Sie%20wo()%3C%2FFONT%3E%3CSPAN%3Ewird%20viel%20schneller%2C%20wenn%20man%20es%20ersetzt%20durch%3C%2FSPAN%3E%3CFONT%20face%3D%22courier%20new%2Ccourier%22%3EZeilen%20abrufen%2C%20wobei%20()%20%2B%20Zeilen%20ausw%C3%A4hlen%20().%3C%2FFONT%3E%3C%2FLI%3E%3CLI%3E%3CFONT%20face%3D%22courier%20new%2Ccourier%22%3ESelect%20Where()%3C%2FFONT%3E%20wird%20deutlich%20schneller%2C%20wenn%20der%20String-Vergleich%20durch%20%3CFONT%20face%3D%22courier%20new%2Ccourier%22%3Econtains%20item()%3C%2FFONT%3E%20ersetzt%20wird.%3C%2FLI%3E%3CLI%3Eund%20die%20Kombination%20von%20(2)%20und%20(3)%20macht%20es%20...%20um%20den%20Faktor%202%20langsamer%20als%20(2)%20(%3F!%3F!)%3C%2FLI%3E%3CLI%3Ealso%2C%20der%20Gewinner%20(f%C3%BCr%20diesen%20Datensatz)%20ist%20Nr.%202%3A%3C%2FLI%3E%3C%2FOL%3E%3CP%3Ein%20Summe%3A%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22hogi_1-1731241317667.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22hogi_1-1731241317667.png%22%20style%3D%22width%3A%20318px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22hogi_1-1731241317667.png%22%20style%3D%22width%3A%20318px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F70010i802B20976A6FB607%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22hogi_1-1731241317667.png%22%20alt%3D%22hogi_1-1731241317667.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%20%3C%2FP%3E%3CP%3E%20%3C%2FP%3E%3CP%3E%20%3C%2FP%3E%3CP%3EDetails%3A%3C%2FP%3E%3CDIV%20class%3D%22lia-spoiler-container%22%3E%3CA%20class%3D%22lia-spoiler-link%22%20href%3D%22%23%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%20target%3D%22_blank%22%3EMehr%20anzeigen...%3C%2FA%3E%3CNOSCRIPT%3E(Zum%20Lesen%20markieren)%3C%2FNOSCRIPT%3E%3CDIV%20class%3D%22lia-spoiler-border%22%3E%3CDIV%20class%3D%22lia-spoiler-content%22%3E%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3Enames%20default%20to%20here(1)%3B%0Adt%20%3D%20Open(%20%22%24SAMPLE_DATA%2FWafer%20Stacked.jmp%22%20)%3B%0A%0ANew%20Column(%20%22x_y%22%2C%0A%09Character%2C%0A%09Formula(%20Concat%20Items(%20%7BChar(%20%3AX_Die%20)%2C%20Char(%20%3AY_Die%20)%7D%2C%20%22_%22%20)%20)%0A)%3B%0A%0At0%3Dhptime()%3B%0ANew%20Column(%20%22contains%20item%22%2C%0A%09Character%2C%0A%09Formula(%20If(%20Contains%20Item(%20%221_3%203_9%22%2C%20%3Ax_y%2C%20%22%20%22%20)%2C%20%22exclude%22%2C%20%22not%20exclude%22%20)%20)%0A)%3B%0Adt%20%26lt%3B%26lt%3B%20run%20formulas()%3B%0At%3D%20(hptime()-t0)%2F1000000%3B%0Aprint(%22formula%20-%20contains%20item%22%2C%20t)%3B%0A%0A%0At0%3Dhptime()%3B%0ANew%20Column(%20%22contains%20item%20v2%22%2C%0A%09Character%2C%0A%09Formula(%20If(%20Contains%20Item(%20%3Ax_y%2C%20%7B%223_1%22%2C%224_4%22%7D)%20%2C%20%22exclude%22%2C%20%22not%20exclude%22%20)%20)%0A)%3B%0Adt%20%26lt%3B%26lt%3B%20run%20formulas()%3B%0At%3D%20(hptime()-t0)%2F1000000%3B%0Aprint(%221)%20formula%20-%20contains%20item%20v2%22%2C%20t)%3B%0A%0A%0A%0At0%3Dhptime()%3B%0ANew%20Column(%20%22get%20rows%20where%22%2C%0A%09Character%2C%0A%09set%20each%20value(%22not%20excluded%22)%20)%3B%0Amyrows%3D%5B%5D%3B%0Afor%20each(%20%7Bcompare%7D%2C%20%7B%223_1%22%2C%224_4%22%7D%2C%09%0A%09myrows%20%3D%20V%20concat%20to%20(myrows%2C%20%20dt%20%26lt%3B%26lt%3B%20get%20rows%20where(%3Ax_y%20%3D%3D%20compare))%3B%09%0A)%3B%0Adt%20%26lt%3B%26lt%3B%20select%20rows(myrows)%3B%20%2F%2F%20just%20for%20fun%20-%20it's%20fast%0Adt%5Bmyrows%2C%22get%20rows%20where%22%5D%20%3D%20Repeat(%7B%22excluded%22%7D%2Cn%20items(myrows)%20)%3B%0At%3D%20(hptime()-t0)%2F1000000%3B%0Aprint(%222)%20get%20rows%20where%22%2C%20t)%3B%0A%0A%0A%0At0%3Dhptime()%3B%0Afor%20each(%20%7Bcompare%7D%2C%20%7B%223_1%22%2C%224_4%22%7D%2C%0A%09dt%26lt%3B%3CSELECT%20where%3D%22%22%3Enames%20default%20to%20here(1)%3B%0Adt%20%3D%20Open(%20%22%24SAMPLE_DATA%2FWafer%20Stacked.jmp%22%20)%3B%0A%0ANew%20Column(%20%22x_y%22%2C%0A%09Character%2C%0A%09Formula(%20Concat%20Items(%20%7BChar(%20%3AX_Die%20)%2C%20Char(%20%3AY_Die%20)%7D%2C%20%22_%22%20)%20)%0A)%3B%0A%0At0%3Dhptime()%3B%0ANew%20Column(%20%22contains%20item%22%2C%0A%09Character%2C%0A%09Formula(%20If(%20Contains%20Item(%20%221_3%203_9%22%2C%20%3Ax_y%2C%20%22%20%22%20)%2C%20%22exclude%22%2C%20%22not%20exclude%22%20)%20)%0A)%3B%0Adt%20%26lt%3B%26lt%3B%20run%20formulas()%3B%0At%3D%20(hptime()-t0)%2F1000000%3B%0Aprint(%22formula%20-%20contains%20item%22%2C%20t)%3B%0A%0A%0At0%3Dhptime()%3B%0ANew%20Column(%20%22contains%20item%20v2%22%2C%0A%09Character%2C%0A%09Formula(%20If(%20Contains%20Item(%20%3Ax_y%2C%20%7B%223_1%22%2C%224_4%22%7D)%20%2C%20%22exclude%22%2C%20%22not%20exclude%22%20)%20)%0A)%3B%0Adt%20%26lt%3B%26lt%3B%20run%20formulas()%3B%0At%3D%20(hptime()-t0)%2F1000000%3B%0Aprint(%221)%20formula%20-%20contains%20item%20v2%22%2C%20t)%3B%0A%0A%0A%0At0%3Dhptime()%3B%0ANew%20Column(%20%22get%20rows%20where%22%2C%0A%09Character%2C%0A%09set%20each%20value(%22not%20excluded%22)%20)%3B%0Amyrows%3D%5B%5D%3B%0Afor%20each(%20%7Bcompare%7D%2C%20%7B%223_1%22%2C%224_4%22%7D%2C%09%0A%09myrows%20%3D%20V%20concat%20to%20(myrows%2C%20%20dt%20%26lt%3B%26lt%3B%20get%20rows%20where(%3Ax_y%20%3D%3D%20compare))%3B%09%0A)%3B%0Adt%20%26lt%3B%26lt%3B%20select%20rows(myrows)%3B%20%2F%2F%20just%20for%20fun%20-%20it's%20fast%0Adt%5Bmyrows%2C%22get%20rows%20where%22%5D%20%3D%20Repeat(%7B%22excluded%22%7D%2Cn%20items(myrows)%20)%3B%0At%3D%20(hptime()-t0)%2F1000000%3B%0Aprint(%222)%20get%20rows%20where%22%2C%20t)%3B%0A%0A%0A%0At0%3Dhptime()%3B%0Afor%20each(%20%7Bcompare%7D%2C%20%7B%223_1%22%2C%224_4%22%7D%2C%0A%09dt%26lt%3B%3C%2FSELECT%3E%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3CP%3E%3CCODE%20class%3D%22%20language-jsl%22%3E%20%3C%2FCODE%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-810214%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EBetreff%3A%20Formel%20zum%20Pr%C3%BCfen%2C%20ob%20in%20den%20Zeilen%20einer%20Spalte%20ein%20Element%20einer%20Liste%20enthalten%20ist%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-810214%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EIch%20habe%20einige%20Zeittests%20durchgef%C3%BChrt%20und%20dabei%20die%20L%C3%B6sung%20von%20Jarmo%20mit%20meiner%20L%C3%B6sung%20verglichen.%20Dabei%20ist%20die%20%E2%80%9EContains%20Item%E2%80%9C-L%C3%B6sung%20deutlich%20schneller%20als%20die%20%E2%80%9ESelect%20Where%E2%80%9C-L%C3%B6sung.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-810205%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EBetreff%3A%20Formel%20zum%20Pr%C3%BCfen%2C%20ob%20in%20den%20Zeilen%20einer%20Spalte%20ein%20Element%20einer%20Liste%20enthalten%20ist%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-810205%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EUsually%20in%20cases%20like%20this%20I%20tend%20to%20use%20Words()%20to%20split%20the%20string%20into%20a%20list%20and%20then%20compare%20using%20Contains()%20(or%20in%20some%20rare%20cases%20Contains%20Item()).%20But%20Contains%20Item()%20should%20also%20work%20and%20you%20just%20seem%20to%20have%20your%20parameters%20in%20incorrect%20order%3CCODE%20class%3D%22%20language-jsl%22%3E%3C%2FCODE%3E%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3ENew%20Table(%22Untitled%22%2C%0A%09Add%20Rows(3)%2C%0A%09Compress%20File%20When%20Saved(1)%2C%0A%09New%20Column(%22Column%201%22%2C%20Character%2C%20%22Nominal%22%2C%20Set%20Values(%7B%221_3%22%2C%20%223_7%22%2C%20%226_5%22%7D))%2C%0A%09New%20Column(%22Column%202%22%2C%0A%09%09Character%2C%0A%09%09%22Nominal%22%2C%0A%09%09Formula(%0A%09%09%09If(Contains%20Item(%221_3%203_9%22%2C%20%3AColumn%201%2C%20%22%20%22)%2C%0A%09%09%09%09%22exclude%22%2C%0A%09%09%09%09%22not%20exclude%22%0A%09%09%09)%0A%09%09)%2C%0A%09%09Set%20Selected%0A%09)%0A)%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22jthi_0-1731165057018.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22jthi_0-1731165057018.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22jthi_0-1731165057018.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F69998i2CF339F64E748A67%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22jthi_0-1731165057018.png%22%20alt%3D%22jthi_0-1731165057018.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3EZweites%20Beispiel%20aus%20dem%20Scripting%20Index%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22jthi_1-1731165235628.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22jthi_1-1731165235628.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22jthi_1-1731165235628.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F69999iA84B197CAF014387%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22jthi_1-1731165235628.png%22%20alt%3D%22jthi_1-1731165235628.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22jthi_2-1731165277236.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22jthi_2-1731165277236.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22jthi_2-1731165277236.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F70000i70FDF9BF6918DBDD%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22jthi_2-1731165277236.png%22%20alt%3D%22jthi_2-1731165277236.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3Eoder%20die%20JSL-Syntaxreferenz%20enthalten%20einigerma%C3%9Fen%20gute%20Beispiele%20%3CA%20href%3D%22https%3A%2F%2Fwww.jmp.com%2Fsupport%2Fhelp%2Fen%2F18.0%2F%23page%2Fjmp%2Fcharacter-functions-2.shtml%3Fos%3Dwin%26amp%3Bsource%3Dapplication%23ww6166335%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3Ehttps%3A%2F%2Fwww.jmp.com%2Fsupport%2Fhelp%2Fen%2F18.0%2F%23page%2Fjmp%2Fcharacter-functions-2.shtml%3Fos%3Dwin%26amp%3Bsource%3Dapplication%23ww6166335%3C%2FA%3E%20%2C%20aber%20die%20Dokumentation%20l%C3%A4sst%20etwas%20zu%20w%C3%BCnschen%20%C3%BCbrig.%3C%2FP%3E%0A%3CP%3E%20%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-810201%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EBetreff%3A%20Formel%20zum%20Pr%C3%BCfen%2C%20ob%20in%20den%20Zeilen%20einer%20Spalte%20ein%20Element%20einer%20Liste%20enthalten%20ist%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-810201%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHier%20ist%20der%20Ansatz%2C%20den%20ich%20w%C3%A4hlen%20w%C3%BCrde%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3Enames%20default%20to%20here(1)%3B%0Adt%3Dcurrent%20data%20table()%3B%0A%0Adt%20%26lt%3B%26lt%3B%20clear%20select%3B%0A%0Afind%20%3D%20%7B%223_1%22%2C%224_4%22%7D%3B%0A%0Afor%20each(%20%7Bcompare%7D%2C%20find%2C%0A%09dt%26lt%3B%3CSELECT%20where%3D%22%22%3E%0AOnce%20the%20rows%20are%20selected%2C%20then%20excluding%2C%20deleting%20etc.%20can%20be%20done.%3C%2FSELECT%3E%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E
Choose Language Hide Translation Bar
datanaut
Level III

Formula to check if any of a list of items is contained in the rows of a column

JMP for Mac 

Version 17.2.0 (701896)

 

I have a column "Data" with rows of number_number like this:

1_3

3_7

6_5

...

 

I want to test this column to see if some of the rows contain values from a list of values and then flag or label the rows which do.

 

I know I could construct an elaborate formula like this:

If( :Die X_Y == "3_9" | :Die X_Y == "3_4",
	1,
	0
)

But that's very laborious for long lists of different values to check.  I'd like to just be able to paste a list of values to check for in a formula, delimited by a space or comma.  

 

I found the function "Contains Item."  It works fine for one item but the help entry doesn't offer any insight on how to construct the "list" option.  I tried this (specifying the optional delimiter as a space):

If( Contains Item( :Die X_Y, "3_4 3_9", " " ),
	"exclude",
	"not exclude"
)

and this:

If( Contains Item( :Data, "3_4,3_9", "," ),
	"exclude",
	"not exclude"
)

I understand the default delimiter is a comma but wanted to enforce to find anything that works.  Neither Contains Item function is returning the sought-for behavior (logical 1 if there is a match, 0 if not).  If there is a better function to use please advise.  

 

This is a generalized problem I'd like to be able to solve -- inspecting a column to find matches with long lists of items.  

 

Thanks

 

15 REPLIES 15
hogi
Level XIII

Re: Formula to check if any of a list of items is contained in the rows of a column

the reading is: 3 arguments

  1. x - a string of characters
  2. 3 options:
    - item to search
    - a list of several items - does one of them match?
    - a pattern to search
  3. optional argument: the delimiter to split x in words

 


@datanaut wrote:

So (to my simplistic reading) either x or the {list} could contain the words to be searched or the list of words to compare it with.  


-> yes.

 

 included a Column as in Jarmo's example 

For a column formula, this is always possible, along the idea:
For every row, JMP will take automatically the entry of the column in the respective row.
When you use Formula editor, you do this trick all the time - just without noting.

hogi
Level XIII

Re: Formula to check if any of a list of items is contained in the rows of a column

A nice side effect:

This discussion made me think:
does Contains also increase the speed of Col .. aggregations?

And believe it or not - it does. wow, it does!!!!

https://community.jmp.com/t5/Discussions/How-do-I-use-the-Col-Maximum-Formula-with-a-quot-where-quot... 

 

Any clue why the character comparison is SOOO slow?

hogi
Level XIII

Re: Formula to check if any of a list of items is contained in the rows of a column

I wondered if deleting rows without selecting them is much faster:

dt << select rows(myRows) << delete rows();
dt << delete rows();

[actually, I wondered why the corresponding << exclude(myRows) is missing.]

 

So, here is another speed test:

Names Default to here(1);
get timing = Function( {myExpr},
	dt = New Table( "test", add rows( 10000000 ), New Column( "rnd", set each value( Random Integer( 1000 ) ) ) );
	myRows = Random Shuffle( Index( 1, N Rows() ) )[Index( 1, N Rows() / 2 )];
	t0 = HP Time();
	myExpr;
//print(n rows()); // same timing without this line
	If( N arg( myExpr ) > 2,
		Print( Char( Head( Arg( myExpr, 2 ) ) ) || " + " || Char( Head( Arg( myExpr, 3 ) ) ) ),
		Print( Char( Head( Arg( myExpr, 2 ) ) ) );
	);
	Print( Char( (HP Time() - t0) / 1000000 ) || " s\!n" );
	Close( dt, noSave );
);

get timing( Expr( dt << select rows( myRows ) << delete rows ) );

get timing( Expr( dt << delete rows( myRows ) ) );

get timing( Expr( dt << select rows( myRows ) << exclude( 1 ) ) );

Print("-------------");

get timing( Expr( dt << select where( :rnd > 500 ) ) );

get timing( Expr( dt << get rows where( :rnd > 500 ) ) );

get timing( Expr( myRows = Where( dt, :rnd > 500 ) ) );

Print("_____________");
	

hogi_1-1764746400738.png

So,  deleting rows without selecting them is just marginally faster.
-> no wonder there is no corresponding function for Exclude.

hogi
Level XIII

Re: Formula to check if any of a list of items is contained in the rows of a column

by the way:

Print("_________");
Print("__X______");
Print("X________");

hogi_2-1764747078244.png

why?

jthi
Super User

Re: Formula to check if any of a list of items is contained in the rows of a column

My guess is that Print is doing some parsing/evaluations as it is meant to be used for displaying values of arguments. And when you start -"variable" with two underscores it is considered hidden -> possibly some interaction with Print() to not make it leak those values.

-Jarmo
hogi
Level XIII

Re: Formula to check if any of a list of items is contained in the rows of a column

show("__");
myString="__";
show(myString);
show("_"|| "_");

__x="secret";
show(__x);
show(name Expr(__x));
show(Eval(__x));

hogi_0-1764749234016.png

 

a second layer of ulra-tight protection ; )

Recommended Articles