Combiner NB.SI et RECHERCHE?

Bonjour à tous,

Le titre de mon sujet n'est évidemment pas vraiment parlant, mais encore une fois, je ne sais pas nommer synthétiquement ce que je recherche.

Vous trouverez, en PJ, le tableau que je suis en train de créer.

J'aimerais, si possible, que la cellule B5 de l'onglet "Recap activités" renvoie le nombre de fois où "Patrick" a été en "Promenade". Cela fait référence à l'onglet "Par résident" qui lui même est une synthèse des onglets "Lundi" et "Mardi/Mercredi/Jeudi/Vendredi" (à venir).

MAIS! Si c'était aussi simple que ça, je saurais faire. Le fait est que mes résidents et mes activités sont amenées à changer et que j'aimerais ne pas avoir à retaper les formules à chaque fois.

L'onglet "Recap activités" étant ma base de données (pour les listes déroulantes d'activité sur les onglets des jours de semaine mais aussi sur les prénoms des résidents sur tous les onglets.

Ce que j'aimerais, donc, c'est que ma cellule B5 de l'onglet "Recap Activités" renvoie le nombre de fois où B4 a fait du A5 (toujours dans le même onglet), sachant que cette information doit être recherchée dans la colonne correspondante à B4 dans l'onglet "Par résident".

Suis-je assez explicite?

Bonne fin de journée à tous,

Romain

Bonjour,

Avec le premier classeur, en B15 (pour pétanque) :

=NB.SI(DECALER('Par résident'!$C$4:$C$22;;EQUIV('Recap activités'!B$4;'Par résident'!$D$3:$AG$3;0));$A14)

Daniel

Superbe, merci infiniment Daniel.

Maintenant, puisque j'aime comprendre, comment cela fonctionne? Je ne comprends pas pourquoi la fonction "DECALER" et je ne connais pas la fonction "EQUIV".

D'autre part, si je ne souhaite afficher dans mon tableau que les résultats qui ne renvoient pas "0", par quoi dois-je passer?

J'ai tapé : =SI(ESTVIDE(B$4);"";SI(NB.SI(DECALER('Par résident'!$C$4:$C$22;;EQUIV('Recap activités'!B$4;'Par résident'!$D$3:$AG$3;0));$A5)=0;"";NB.SI(DECALER('Par résident'!$C$4:$C$22;;EQUIV('Recap activités'!B$4;'Par résident'!$D$3:$AG$3;0));$A14)))

(Rajout de SI(ESTVIDE pour éviter d'afficher les erreurs lorsque la cellule de référence est vide.)

Mais du coup, les résultats sont décalés d'une unité (renvoi "0" lorsque ="1")

Petite correction, j'ai tapé : =SI(OU(ESTVIDE(B$4);NB.SI(DECALER('Par résident'!$C$4:$C$22;;EQUIV('Recap activités'!B$4;'Par résident'!$D$3:$AG$3;0));$A5)=0);"";NB.SI(DECALER('Par résident'!$C$4:$C$22;;EQUIV('Recap activités'!B$4;'Par résident'!$D$3:$AG$3;0));$A5))

Cela me permet d'avoir les bons résultats mais affiche toujours une erreur lorsque la cellule référence est vide.

D'abord, pour éviter les résultats à 0 :

=SI(NB.SI(DECALER('Par résident'!$C$4:$C$22;;EQUIV('Recap activités'!B$4;'Par résident'!$D$3:$AG$3;0));$A15)=0;"";NB.SI(DECALER('Par résident'!$C$4:$C$22;;EQUIV('Recap activités'!B$4;'Par résident'!$D$3:$AG$3;0));$A15))

Explications

Pour compter le nombre de "pétanque", il faut déterminer la plage correspondant à Patrick, soit D4:D22. Je me sers de EQUIV pour compter le rang de rang de Patrick dans la plage Par résident!D3:AG3 :

EQUIV('Recap activités'!B$4;'Par résident'!$D$3:$AG$3;0)

Qui renvoie 1 (1ere cellule de la plage). Reporte-toi à l'aide Excel sur EQUIV. DECALER décale justement la plage initiale $C$4:$C$22 de 1 vers la droite soit D4:D22 qui correspond à la plage de Patrick. Ensuite, NB.SI fait le décompte.

Daniel

Merci Daniel pour ces explications, ça me semble plus clair.

Je n'arrive, en revanche, pas à passer outre les erreurs générées par une cellule de référence vide

Je suis passé par : =SI(OU(NB.SI(DECALER('Par résident'!$C$4:$C$22;;EQUIV('Recap activités'!B$4;'Par résident'!$D$3:$AG$3;0));$A5)=0;ESTVIDE(B$4));"";NB.SI(DECALER('Par résident'!$C$4:$C$22;;EQUIV('Recap activités'!B$4;'Par résident'!$D$3:$AG$3;0));$A5))

Il faut alors encapsuler la formule avec SIERREUR :

=SIERREUR(SI(OU(NB.SI(DECALER('Par résident'!$C$4:$C$22;;EQUIV('Recap activités'!B$4;'Par résident'!$D$3:$AG$3;0));$A5)=0;ESTVIDE(B$4));"";NB.SI(DECALER('Par résident'!$C$4:$C$22;;EQUIV('Recap activités'!B$4;'Par résident'!$D$3:$AG$3;0));$A5));"")

Tu pourrais aussi utiliser :

=SIERREUR(NB.SI(DECALER('Par résident'!$C$4:$C$22;;EQUIV('Recap activités'!B$4;'Par résident'!$D$3:$AG$3;0));$A14);"")

En utilisant le format personnalisé "#" sur la colonne B pour masquer les 0.

Daniel

Merci infiniment Daniel.

Rechercher des sujets similaires à "combiner recherche"