Si la valeur de la colonne de ligne est égale à n'importe quelle valeur de n'importe quel tableau, alors... Quelle est la forme générale de ce formel ?Comment écrire une instruction If (ou quelle que soit la bonne fonction) à évaluer lorsque la valeur de la colonne d'une ligne = n'importe quelle valeur dans un tableau?
Exemple:
If( :ColToCheck == [L'une de ces valeurs] , then 1, else 0 )
Re : Si la valeur de la colonne de ligne est égale à n'importe quelle valeur de n'importe quel tableau, alors... Quelle est la forme générale de ce formel ?Pas directement ....... c'est pourquoi j'utilise Loc().
Re : Si la valeur de la colonne de ligne est égale à n'importe quelle valeur de n'importe quel tableau, alors... Quelle est la forme générale de ce formel ?Merci à vous deux.@txnelson TX m'a fait passer le cap hier soir.Je viens de convertir des caractères en numérique et cela a donné le résultat souhaité.
Je pense @vince_faller est la solution que je recherche. J'ai essayé avec des personnages et ça a marché
New Column( "Some Check 2",
Numeric,
"Continuous",
Format( "Best", 12 ),<BR /> Formula( !!Contains( {"TIM", "ALICE", "JANE", "UDY"}, :name ) )
),<BR /> // "UDY" is in there to verify contains will not return true for "JUDY"<BR />Re : Si la valeur de la colonne de ligne est égale à n'importe quelle valeur de n'importe quel tableau, alors... Quelle est la forme générale de ce formel ?Names default to here(1);
dt = open("$SAMPLE_DATA\Big Class.jmp");
dt << new Column("Some Check", FOrmula(
//only doing !! so it's negates the output of contains (which is WHERE it is in the list)
!!Contains({59, 63, 48, 70}, :height)
));Re : Si la valeur de la colonne de ligne est égale à n'importe quelle valeur de n'importe quel tableau, alors... Quelle est la forme générale de ce formel ?1. Une matrice ne peut contenir que des valeurs numériques.Par conséquent, la matrice z doit être spécifiée en tant que liste, et non en tant que matrice
2. Je ne sais pas ce qu'est "cust".
3. S'agit-il d'une formule de colonne ou d'un code JSL ouvert ?
4. Loc renvoie une matrice des positions où se trouve la valeur de test dans la liste.Par conséquent, vous devez déterminer si plus de 0 lignes ont été renvoyées pour déterminer si une correspondance a été trouvée.
Vous trouverez ci-dessous quelques exemples de scripts qui pourraient vous aider
Names Default To Here( 1 );
dt = Current Data Table();
// As a formula in a new column
dt << New Column( "is present",
formula(
z = {"customer1", "customer2", "customer3"};
If( N Rows( Loc( z, :Name( "Ship-To Customer" ) ) > 0 ),
1,
0
);
)
);
// In open JSL
z = {"customer1", "customer2", "customer3"};
For( i = 1, i <= N Rows( dt ), i++,
If( N Rows( Loc( z, :Name( "Ship-To Customer" )[i] ) ) > 0,
1,
0
);
);Re : Si la valeur de la colonne de ligne est égale à n'importe quelle valeur de n'importe quel tableau, alors... Quelle est la forme générale de ce formel ?Merci.
J'essaie de faire quelque chose comme ça.
#1 il attend un chiffre.
# 2 le retour revient à toutes les valeurs manquantes.J'ai essayé l'expression de type de données et numérique, je n'ai pas pu exécuter la distribution pour voir s'il y avait des valeurs autres que la valeur manquante.
cust = ["customer1","customer2","customer3"];
If( Loc( As List( cust ), :Name( "Ship-To Customer" ) ),
1,
0
);
//mise à jour 26/04/19
le message d'origine n'avait pas de cust défini, à la place, il montrait
z = ["client1","client2","client3"] ;
C'est pourquoi TXNelson demande ce qu'est "cust" ?
Re : Si la valeur de la colonne de ligne est égale à n'importe quelle valeur de n'importe quel tableau, alors... Quelle est la forme générale de ce formel ?Utilisez la fonction Loc() pour vérifier si des valeurs sont identiques dans une liste lorsqu'elles sont comparées.Lorsque vous faites cela avec une matrice, convertissez la matrice en liste.
z=[1,2,3,4];
loc(as list(z),2);