Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel
Excel Forum d'entraide sur Excel. Vos questions sur les fonctions, formules, manipulations, et tout sujet qui ne trouve pas sa place dans un sous-forum.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/02/2011, 14h02   #1
Membre régulier
 
Avatar de Djohn
 
Inscription : février 2007
Messages : 247
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : février 2007
Messages : 247
Points : 84
Points : 84
Par défaut Recherche la date d'une référence

Bonjour à tous,

J'ai un tableau d'une centaine de ligne.
En colonne A une suite de date chronologique
En colonne C des reférences diverses et variées
En colonne H des montants

je souhaite soustraire le dernier montant avec le premier montant disponible pour une référence donnée :

Par exemple je choisi comme référence "BAAR5" cette référence apparait plusieurs fois dans le tableau a differentes dates, et calculer la difference de montant :
Montant date Max ou la ref apparait - montant date Min ou la ref apparait

je ne sais pas si je suis tres clair et précis, n'hésitez pas a me demander plus d'explication,

a mon sens il faudrait utiliser la fonction Index et/ou equiv

merci de votre aide
Fichiers attachés
Type de fichier : xls tes.xls (42,0 Ko, 5 affichages)
Djohn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2011, 15h44   #2
Membre expérimenté
 
Homme
Enseignant
Inscription : novembre 2009
Messages : 350
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Algérie

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : novembre 2009
Messages : 350
Points : 500
Points : 500
Bonjour à tous,

En supposant que la référence recherchée est en $J$1, mets les deux formules suivantes (la première matricielle en $K$1 et la deuxième n'importe où):
Première formule matricielle en K1 (valider par Ctrl + Maj + Entree):
Code :
=MAX(SI($C$2:$C$1000=$J$1;$A$2:$A$1000))
Deuxième formule:
Code :
=INDEX($H:$H;EQUIV($K$1;$A:$A;0))-INDEX($H:$H;EQUIV($J$1;$C:$C;0))
On peut jumeler les deux formules en une seule (matricielle) et ça sera
Code :
=INDEX($H:$H;EQUIV(MAX(SI($C$2:$C$1000=$J$1;$A$2:$A$1000));$A:$A;0))-INDEX($H:$H;EQUIV($J$1;$C:$C;0))
(Valider par Ctrl+Maj+Entree)
Cordialement
hben1961 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2011, 07h47   #3
Membre régulier
 
Avatar de Djohn
 
Inscription : février 2007
Messages : 247
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : février 2007
Messages : 247
Points : 84
Points : 84
Ca m'ai l'air tout bon, ca fonctionne bien, je nai plus qu'a essayer de la comprendre.

une petite question, pourquoi avec MIN ca ne fonctionne pas pour avoir la date la plus ancienne ?

Code :
=MIN(SI($C$2:$C$1000=$J$1;$A$2:$A$1000))
merci beaucoup
Djohn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2011, 07h58   #4
Membre expérimenté
 
Homme
Enseignant
Inscription : novembre 2009
Messages : 350
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Algérie

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : novembre 2009
Messages : 350
Points : 500
Points : 500
Bonjour à tous,

La formule
Code :
=MIN(SI($C$2:$C$1000=$J$1;$A$2:$A$1000))
est une formule matricielle donc il faut la valider par : CTRL + MAJ + ENTREE, une fois validée elle te donnera la date la plus ancienne (première date)...

Cordialement
hben1961 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2011, 13h05   #5
Membre régulier
 
Avatar de Djohn
 
Inscription : février 2007
Messages : 247
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : février 2007
Messages : 247
Points : 84
Points : 84
il y a un souci avec la premiere moitié de la formule :
Code :
=INDEX($H:$H;EQUIV(MAX(SI($C$2:$C$1000=$J$1;$A$2:$A$1000));$A:$A;0))
le montant trouvé ne prend pas en compte la référence : ca pointe bien sur la bonne date, mais ensuite ça récupére le 1er montant de la liste (jai bien sur valider la formule avec Ctrl+Maj+entrée)

je viens d'ajouter un fichier excel pour exemple dans mon premier post
merci
Djohn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2011, 21h41   #6
Membre expérimenté
 
Homme
Enseignant
Inscription : novembre 2009
Messages : 350
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Algérie

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : novembre 2009
Messages : 350
Points : 500
Points : 500
Bonjour à tous, bonjour Djohn

Pour ce cas de figure, la formule précédente n'est pas efficace (elle traite les dates différentes), tu peux alors changer cette formule (matricielle) par:
Code :
=INDEX(H:H;EQUIV(1;($A$1:$A$1000=MAX(SI($C$1:$C$1000=K2;$A$1:$A$1000)))*($C$1:$C$1000=K2);0))
et la formule complète demandée sera:
Code :
=INDEX(H:H;EQUIV(1;($A$1:$A$1000=MAX(SI($C$1:$C$1000=K2;$A$1:$A$1000)))*($C$1:$C$1000=K2);0))-INDEX($H:$H;EQUIV(K2;$C:$C;0))
(matricielle, à valider par Ctrl+Maj+Entree)


Cordialement
hben1961 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2011, 20h38   #7
Membre régulier
 
Avatar de Djohn
 
Inscription : février 2007
Messages : 247
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : février 2007
Messages : 247
Points : 84
Points : 84
merci beaucoup hben1961, la formule fonctionne à merveille
Djohn est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h10.


 
 
 
 
Partenaires

Hébergement Web