Petit problème de formule !!!!

khorne

XLDnaute Nouveau
Bonjour tout le monde !

Je vais tenter d'expliquer clairement mon problème...

J'ai un fichier source de 2000 lignes pour suivre un budget avec en colone :
- code chiffre
- code lettres
- montant
(ce sera le tableau 1 de mon exemple)
Le code chiffre et le code lettre ne changent pas d'une année sur l'autre, seuls les montants changent !

J'ai associé à chaque combinaison "chiffre/lettre" 3 éléments de découpage de mon budget :
- titre
- chapitre
- et l'image
(tableau 2 de mon exemple)
Ces associations ne varieront pas d'une année sur l'autre.

L'objectif est de parvenir à avoir le coût de chaque livre, chaque chapitre et chaque image, plutôt ceux des codes !

J'ai construit un petit système sous Excel pour parvenir à cela. En page 1, j'ai l'extraction de mon budget avec mes codes. En page 2, j'ai mon tableau de référence dans lequel chaque combinaison "code/lettre" est associée à un livre, un chapitre et une image.
En page 3, j'ai le résultat du mixage => sur la base du tableau 1 viennent s'ajouter les infos du tableau 2 (livre, chapitre, image), et je n'ai plus qu'à faire un tableau croisé dynamique pour obtenir le cout de chaque image, chaque chapitre, chaque livre !

Pour passer d'une année à l'autre, il me suffit juste de coller l'extraction de mon budget sur la page 1, d'actualiser mon TCD et hop, c bon...


Seulement, voilà mon grand problème : je viens de me rendre compte que si je change l'ordre d'une des deux premières colonnes de mon tableau 2, je change également le contenu de ma base de données !
Ou même, si on ajoute une ligne en plein coeur du tableau 2 en écrivant n'importe quoi dessus, ça va me le recopier dans ma base de données !!!!!



Dis de façon plus claire : la formule que j'ai utilisée ( =INDEX('2ème tableau'!$A$1:$E$12;(SOMMEPROD('2ème tableau'!A$1:A$12='Base de données'!A2)*('2ème tableau'!B$1:B$12='Base de données'!B2));3) ) s'appuie sur des correspondances entre des lignes et des colonnes, et non sur des correspondances entre le texte de chaque cellule !

J'aimerais dans ma base de données une formule qui fasse qu'en fonction du code chiffre et du code lettre, j'obtienne dans la cellule C2 le titre du livre correspondant à la combinaison associée dans mon tableau 2 (et non pas un titre de livre qui serait fonction de la plage ligne/colonne dans le tableau 2)

J'ai été clair :p ??
 
G

Guest

Guest
Re : Petit problème de formule !!!!

hello,

Si j'ai bien compris ton problème, en nommant tes colonnes, excel se charge de les retrouver si tu les déplaces. Voir Tableau2 où j'ai insérer une colonne après avoir mis les formules dans Base de données.

A+
 

khorne

XLDnaute Nouveau
Re : Petit problème de formule !!!!

J'ai regardé ton fichier Hasco.

Avant toute chose, merci bcp !

Malheureusement, mon souci n'est pas tant l'insertion d'une colone que l'insertion d'une ligne => si j'ajoute une ligne, ça vient fausser mes "calculs automatiques".

Ainsi, si dans mon exemple tu insères une ligne (ligne 6), avec les données suivantes :
code chiffre : 5454
code lettre : LOU
livre : a
chapitre : b
image : c

Ben dans ma base de données, tu auras :
12789 DEF a b c 100

Autrement dit, pour aller trouver mes infos "livre", "chapitre" et "image", j'ai l'impression qu'Excel s'appuie plus sur la ligne (dc il prend les infos de la 6ème ligne en l'occurence), plutôt que celles des codes (12789 et DEF)...

J'ai été clair ???
 

khorne

XLDnaute Nouveau
Re : Petit problème de formule !!!!

J'ai ajouté dans cet exemple une ligne dans mon référentiel => ça fausse toute ma base de données !!

J'aimerais que ce genre de problème disparaisse, mais je ne sais pas comment !
 

Pièces jointes

  • Exemple excel downloads envoi V2.zip
    24.5 KB · Affichages: 19
G

Guest

Guest
Re : Petit problème de formule !!!!

Bonjour Khorne, le forum,

Dans le fichier joint j'ai nommé les plages.

Dans ce que tu m'a donné:
En ligne 13 et 14 colonne A de 'Base de données':
='1er tableau'!A13
='1er tableau'!A14
Alors que tu n'as pas de lignes 13 ni 14 dans '1er tableau'. Tu ne peux qu'avoir des erreurs.

Avec les fonctions index et Equiv avec contatenation des Chiffres et lettres cela semble fonctionner. formule matricielles. si au final tu as beaucoup de lignes, cela risque de ramer.

A+
 

khorne

XLDnaute Nouveau
Re : Petit problème de formule !!!!

Merci beaucoup !
en effet, ça marche dans l'exemple ! C'est prodigieux !


J'ai essayé de reprendre ta formule avec mon tableau (environ 1000 lignes), mais ça ne marche pas...
ça me marque =NOMBRE


Crois-tu que ça puisse venir de ta façon de nommer les plages ? (t'as une façon un peu "bizarre", avec des =DECALER, alors que moi j'ai juste une sélection de tableau ou de colonnes basique).

Ou alors, est-ce un problème de formule matricielle ? (y'a-t-il autre chose à faire que ctrl + maj + entrée pour qu'elles fonctionnent ?)



En tout cas, merci beaucoup...
 
Dernière édition:
G

Guest

Guest
Re : Petit problème de formule !!!!

Bonjour,

La définition des noms (Tab1 et Tab2) est faite de manière dynamique afin que tu puisses ajouter des lignes à tes tableaux. Le nombre de lignes est compter d'après le nombre de valeur de la colonnes A. Les autres noms sont relatifs à ces premiers et renvoient les colonnes.

Les erreurs que tu rencontres sont sans doute dues à autres choses. Mais pour vérifier que les noms sont bien définis:

Fais CTRL+T et dans la zone de texte en bas de la fenêtre qui s'ouvre, tape le nom à vérifier, puis valide, excel activera la plage retournée par le nom.

Sinon, sans ton fichier, pas moyen de savoir ce qui ne fonctionne pas.

Pour rentrer les formules matricielles, ne sélectionne qu'une cellule à la fois, valide la par CTRL+MAJ+ENTER et tire la jusqu'en bas, ou à droite.

A+
 

khorne

XLDnaute Nouveau
Re : Petit problème de formule !!!!

Ok... Je vais essayer de voir ça...

Dis-moi, comment trouve-t-on les tableaux que tu mets dans ton didacticiel (il ne marche pas sur mon pc à cause d'un problème de macro) qui permettent de créer des tables dynamiques ?!

Oh et dans ta formule :
=INDEX(Tab2;EQUIV($A2 & $B2;Tab2_Chiffres & Tab2_Lettres;0);3)

le 0 représente quoi ?

Merci toujours...
 

khorne

XLDnaute Nouveau
Re : Petit problème de formule !!!!

Je crois que j'ai trouvé le problème :
dans mes plages nommées, je mettais E:E ou A:A !
En mettant A1:A5000, E1:E5000, ça marche...


Mais j'aimerais bien comprendre ce système de table nommée dynamique...
 
G

Guest

Guest
Re : Petit problème de formule !!!!

Re,

dans
Code:
EQUIV($A2 & $B2;Tab2_Chiffres & Tab2_Lettres;0)
Le zéro indique de cherche une valeur exacte.

Quand tu ne connais pas un paramètre d'une fonction, l'aide en ligne d'excel est parfaite pour te renseigner.

L'aide en ligne sur la fonction 'Décaler' t'apportera aussi pas mal de renseignements.

Sur quelle version excel es-tu? Renseigne-là dans ton profil, c'est toujours bon de savoir sur quelle version travaille le demandeur.

Le meilleur moyen pour comprendre est de faire et refaire des tests.

A+
 

Discussions similaires

Réponses
5
Affichages
195
Réponses
5
Affichages
122

Statistiques des forums

Discussions
312 107
Messages
2 085 358
Membres
102 874
dernier inscrit
Petro2611