Re : Fonction Decaler
Bonjour
J'ai une proposition beaucoup plus simple puisque
1) tu as du mal avec la fonction décaler
2) tu as xl2007
Utilise la facilité de création de noms dynamique AUTOMATIQUE des tables.
Tu sélectionnes la première cellule en haut à gauche sur ta feuille bdd fournitures et dans l'onglet accueil tu cliques sur transformer en table. Tu vois un nouvel onglet qui apparait. Clique dedans et à gauche à la place de tableau1, tu nommes ta base par exemple MaBase
Fais la même chose pour ton nouveau rapport
Plutot que de longues explications incomplètes, je te renvoie pour plus de détails sur tout ce qu'on peut faire avec les tables sur cette page
Ce lien n'existe plus
4 énormes avantages pour toi (et tout le monde !) :
- quand tu tapes quelque chose juste sous la table, cela crée une ligne qui est automatiquement prise en compte.
- si il y a des formules dans les colonnes de la table, par défaut la nouvelle ligne recopie les formules de la ligne du dessus. Plus besoin donc de gérer des lignes vides avec des formules du genre si(D2<>"";...
- et surtout ... excel crée automatiquement des noms dynamiques. Mabase[type] fait référence à la première colonne de ta table et y incorpore toute nouvelle donnée.
- enfin avec la fonction décaler, si tu oublies et que tu tapes (ou quelqu'un d'autre) un truc dans la feuille dans une colonne contenant tes données, bonjour le bazar. Ici pas de problème et tu peux même mettre plusieurs tables les unes en dessous des autres.
Et un 5° avantage non négligeable, tu peux mettre une ligne de total automatique (tu peux choisir entre plusieurs types d'opérations à faire dans ce "total")
et un 6° en prime, les fonctions de tri sont automatiquement dispo sans avoir besoin de sélectionner tes données. Pas mal non ?
Du coup voilà les formules que je te propose pour trouver l'unité et le montant
Unité :
=INDEX(MaBase[Unité];EQUIV(1;(MaBase[Type]=[@Type])*(MaBase[Fournisseur]=[@Fournisseur])*(MaBase[Désignation]=[@Désignation]);0))
validation matricielle.
montant :
=SOMMEPROD((MaBase[Type]=[@Type])*(MaBase[Fournisseur]=[@Fournisseur])*(MaBase[Désignation]=[@Désignation])*MaBase[Prix U])
Comme tu as excel 2007 et moi 2010 dans le fichier attaché tu verras une petite différence de notation, la version 2010 ayant raccourci les références, @ remplaçant "cetteligne" que tu trouveras dans 2007.
Une fois que tu as touché aux tables crois moi tu ne peux plus t'en passer et tu t'évites bien du boulot fastidieux de création de noms.