Correspondance de plusieurs valeurs – fonctions sign() et index()

Au lieu de faire les choses de cette façon :

if( or( COLUMN = "Value1", COLUMN= "Value2" ), "Yes", "No" )

Vous pouvez utiliser cette astuce ou bien utiliser la combinaison des fonctions sign(index()) pour étendre la liste plus facilement.

if( sign(index("Value1,Value2", COLUMN)) , "Yes", "No" )

Utilisez not(sign(index())) pour vérifier si un élément n'est pas dans la liste.

Remarque : sign(index()) peut donner des faux positifs, lorsque la valeur de la colonne est en fait une sous-chaîne d'une autre valeur. Pour améliorer cela, nous pouvons changer le code de cette manière :

if( and( COLUMN!="", sign(index(";Value1;Value2;", concat(";", COLUMN, ";")) ), "Yes", "No" )

Condition : Pas de point-virgule utilisés dans les valeurs de la liste ou les valeurs de la colonne. Bien sûr, l'astuce fonctionne avec un autre séparateur que le point-virgule.

Télécharger PDF