Calc : si, formule matricielle qu'est-ce qui cloche dans ma formule ?

Bonjour tout le monde,

Qu'est-ce qui cloche dans cette formule ?

{=SI(ET(nom =$A$1;mois =B2);numero ;" " )}

Je veux pouvoir afficher dans ma cellule le numéro (dans la plage numero $Feuille1.$F$2:$F$200) si dans la plage nom ($Feuille1.$A$2:$A$200) je trouve le même contenu que dans la cellule A1 et si dans la plage mois ($Feuille1.$D$2:$D$200) je trouve le même contenu que dans la cellule B12.

Quand je valide la saisie de la formule : la cellule est vide (elle ne devrait pas) et quand je tire la cellule pour répéter la formule j'ai une erreur #NOM ?

Les noms sont bons. Les trois plages de références ont la même étendue.

Y a-t-il une autre solution ? Merci.

Bonjour Ysabeau,

-----Message d'origine-----
De : Ysabeau [mailto:id@dutailly.net]
Envoyé : jeudi 13 avril 2017 12:09
À : users@fr.libreoffice.org
Objet : [fr-users] Calc : si, formule matricielle qu'est-ce qui cloche
dans ma formule ?

Bonjour tout le monde,

Qu'est-ce qui cloche dans cette formule ?

{=SI(ET(nom =$A$1;mois =B2);numero ;" " )}

Je veux pouvoir afficher dans ma cellule le numéro (dans la plage numero
$Feuille1.$F$2:$F$200) si dans la plage nom ($Feuille1.$A$2:$A$200) je
trouve le même contenu que dans la cellule A1 et si dans la plage mois
($Feuille1.$D$2:$D$200) je trouve le même contenu que dans la cellule B12.

Quand je valide la saisie de la formule : la cellule est vide (elle ne
devrait pas) et quand je tire la cellule pour répéter la formule j'ai
une erreur #NOM ?

Les noms sont bons. Les trois plages de références ont la même étendue.

Y a-t-il une autre solution ? Merci.

Je ne suis pas très sûr d'avoir bien compris le problème et reproduit le
classeur (et je ne n'utilise pas très souvent les formules matricielles),
toutefois, voici le résultat de mes essais:

L'opérateur ET ne semble pas fonctionner dans une formule matricielle, pour
contourner le problème, j'ai utilisé la formule suivante qui renvoie bien le
bon numéro:
=SI(nom&mois=A1&B2;numero;"-")

Quant à ton problème de recopie de la formule, à ma connaissance, les
formules matricielles ne peuvent pas se recopier en tirant, soit elles sont
automatiquement générées sur une matrice de dimension équivalente à celle de
la matrice de la formule, soit on la saisie dans une zone de dimension
équivalente.

Testé avec 5.2.3.3 Vista

Si ça ne répond pas à ta question, envoie un classeur exemple de ton
problème.

Bonne journée,
Michel

Bonjour Ysabeau,
solution ? Merci.

Je ne suis pas très sûr d'avoir bien compris le problème et reproduit le
classeur (et je ne n'utilise pas très souvent les formules matricielles),
toutefois, voici le résultat de mes essais:

L'opérateur ET ne semble pas fonctionner dans une formule matricielle, pour
contourner le problème, j'ai utilisé la formule suivante qui renvoie bien le
bon numéro:
=SI(nom&mois=A1&B2;numero;"-")

Effectivement, ET ne marche pas dans une formule matricielle. J'avais essayé l'opérateur * qui n'est pas bon. Donc ça c'est réglé. Merci.

Quant à ton problème de recopie de la formule, à ma connaissance, les
formules matricielles ne peuvent pas se recopier en tirant, soit elles sont
automatiquement générées sur une matrice de dimension équivalente à celle de
la matrice de la formule, soit on la saisie dans une zone de dimension
équivalente.

J'ai créé une plage de même dimension que les autres et du coup ça s'est "recopié" automatiquement sur toute la plage.

Testé avec 5.2.3.3 Vista

Si ça ne répond pas à ta question, envoie un classeur exemple de ton
problème.

Ça répond à ma question et ça fonctionne, mais ça ne répond pas à ma problématique finalement, je viens de me rendre compte que ça affichait le numéro, non pas sur la ligne de la formule (donc 2 pour la première occurrence), mais sur celle où j'ai saisi initialement le numéro, en l'espèce la 42e.

Donc faut que soit je trouve une astuce, soit je mette une autre fonction.

Finalement, j'ai fait une table pilote et un peu changé l'organisation des données. Ça ira comme ça :slight_smile:

Même en faisant un "bête" SI avec une formule recopiée, je n'arrivais pas à avoir les numéros là où il fallait car la plage d'arrivée n'est pas pareille que la plage de départ. Apparemment, il faut qu'elles soient identiques et pas uniquement en "hauteur" sinon ça perturbe Calc.