OVH Cloud OVH Cloud

Renvoi de valeurs et fonction matricielle

11 réponses
Avatar
Thierry
Bonjour à tous,

je cherche dans une fonction excel à renvoyer une valeur 0 ou 1 en
fonction du n° de département. Exemple : les valeurs
75,77,78,91,92,93,94 et 95 renvoient 0, le reste 1.

La solution la plus simple que j'ai trouvé c'est par le biais de la
fonction rechercheV qui à partir d'une table va chercher la valeur
adéquate , H2 étant la cellule où se trouve le n° du département:
=SI(ESTVIDE(H2);"";RECHERCHEV(H2;département!A:B;2;FAUX))

Mais j'aimerai pouvoir supprimer cette table et passer par une seule
formule dans la cellule. j'ai tenté par le biais des matrices que je ne
maîtrise pas du tout et j'ai saisie la fonction suivante qui ne
fonctionne pas correctement. En effet, le test ne se fait que sur la
première valeur 75 et renvoi systématiquement 1 pour tout autre valeur.
J'ai cherché un peu partout sans bien comprendre où se situait mon erreur.
{=SI(ESTVIDE(H2);"-";SI(H2<>{75.77.78.91.92.93.94.95};1;0))}

D'avance, merci de votre aide.

Cordialement

Thierry

1 réponse

1 2
Avatar
Garette
Bonjour,

C'est effectivement le problème que je rencontre. Le point ou le
point-virgule pour séparer les dpts n'y change rien.
Effectivement, le . fonctionne car ton séparateur décimal est la virgule.


Après avoir validé avec CTRL-MAJ-ENTREE, dès qu'une valeur différente de
75 ou de la première valeur rentrée dans la chaîne est saisie celà ne
fonctionne pas la valeur 1 est systématiquement retournée.


Pour ce qui concerne ta formule
{=SI(ESTVIDE(H2);"-";SI(H2<>{75.77.78.91.92.93.94.95};1;0))} elle ne
fonctionne pas en matricelle car la fonction SI ne renvoi que le premier
élément de la matrice.
H2<>{75.77.78.91.92.93.94.95} calcule
{VRAI;VRAI;FAUX;VRAI;VRAI;VRAI;VRAI;VRAI}si H2 contient par exemple 78 mais
le SI ne renvoie que le premier élément de la matrice => VRAI.

Elle ne renvoie que le premier élément, mais elle gère qd meme la matrice.
Avec ET c'est ce qu'elle fait.
Si tu remplaces H2<>{75.77.78.91.92.93.94.95}par
ET(H2<>{75.77.78.91.92.93.94.95}) au lieu de renvoyer
{VRAI;VRAI;FAUX;VRAI;VRAI;VRAI;VRAI;VRAI} ça renvoie FAUX.
ET({VRAI;VRAI;FAUX;VRAI;VRAI;VRAI;VRAI;VRAI}) = FAUX
(Pas besoin de valider par Ctrl+Shif+Entrer)

Rappel, avec un ET logique :
- Tout FAUX donne FAUX
- Un ou plusieurs FAUX donnent FAUX
- Tout VRAI donne VRAI

1 2