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 24/05/2011, 09h24   #1
Invité régulier
 
Isa XVX
Inscription : octobre 2010
Messages : 23
Détails du profil
Informations personnelles :
Nom : Isa XVX

Informations forums :
Inscription : octobre 2010
Messages : 23
Points : 6
Points : 6
Par défaut Problème dans formule matricielle MIN

Bonjour,

J'ai un problème avec une formule matricielle.

J'ai dans ma feuille "Data" 60636 lignes (oui...c'est beaucoup). Dans la colonne A, j'ai des noms, dans la colonne C, j'ai des codes et dans la colonne D, j'ai des dates.

Dans la feuille "Photo", je voudrais avoir par nom et par code la plus petite date correspondante. J'ai donc la formule suivante:

Code :
MIN((Data!$A$2:$A$60636=Photo!A2)*(Data!$C$2:$C$60636=Photo!C2)*(Data!$D$2:$D$60636))
La formule me donne soit une bonne réponse, soit la valeur "0/01/1900".

J'ai également essayé la formule suivante:

Code :
=MIN(IF(Data!$A$2:$A$60636=Photo!A2)*(Data!$C$2:$C$60636=Photo!C2);Data!$D$2:$D$60636)
Et pareil, ça ne fonctionne pas.

Est-ce à cause du nombre de ligne?

Merci d'avance pour votre aide.
Isabelle86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 10h38   #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,

Une solution avec la formule matricielle suivante:
En français:
Code :
=PETITE.VALEUR((Data!$A$2:$A$60636=Photo!$A$2)*(Data!$C$2:$C$60636=Photo!$C$2)*(Data!$D$2:$D$60636);NB.VIDE(Data!$D$2:$D$60636)+1)
En anglais:
Code :
=SMALL((Data!$A$2:$A$60636=Photo!$A$2)*(Data!$C$2:$C$60636=Photo!$C$2)*(Data!$D$2:$D$60636);COUNTBLANK(Data!$D$2:$D$60636)+1)
à valider par: CTRL+MAJ+ENTREE

Cordialement
hben1961 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 12h21   #3
Invité régulier
 
Isa XVX
Inscription : octobre 2010
Messages : 23
Détails du profil
Informations personnelles :
Nom : Isa XVX

Informations forums :
Inscription : octobre 2010
Messages : 23
Points : 6
Points : 6
En fait, ça fonctionne pour les 99 premières lignes, mais à partir de la 100ème, j'ai la réponse "0/01/1990".

Or, dans ma feuille "data", je n'ai aucune cellule vide.
Isabelle86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 13h03   #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 Isabelle, bonjour à tous

Je viens de tester la formule qui fonctionne à merveille (sur toute la colonne date), le résultat "0/01/1900" est affiché si l'une des cellules de la colonne date est égale à 0, pour remédier ce problème, remplace ta formule par:
Code :
=PETITE.VALEUR((data!$A$2:$A$60636=photo!$A$2)*(data!$C$2:$C$60636=photo!$C$2)*(data!$D$2:$D$60636);NB.VIDE(data!$D$2:$D$60636)+NB.SI(data!$D$2:$D$60636;0)+1)
ou (en anglais)
Code :
=SMALL((data!$A$2:$A$60636=photo!$A$2)*(data!$C$2:$C$60636=photo!$C$2)*(data!$D$2:$D$60636);COUNTBLANK(data!$D$2:$D$60636)+COUNTIF(data!$D$2:$D$60636;0)+1)
La formule donne aussi l'erreur #VALEUR! si l'une des cellules de la colonne date contient du texte...

Cordialement
hben1961 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 13h57   #5
Invité régulier
 
Isa XVX
Inscription : octobre 2010
Messages : 23
Détails du profil
Informations personnelles :
Nom : Isa XVX

Informations forums :
Inscription : octobre 2010
Messages : 23
Points : 6
Points : 6
Merci pour l'aide, mais je n'y arrive toujours pas. Je mets en pièce jointe une partie de mon fichier...

A partir de la ligne 100 il y a un problème.
Fichiers attachés
Type de fichier : xls Book2.xls (108,0 Ko, 11 affichages)
Isabelle86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 18h38   #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 Isabelle, bonjour le forum

La formule a donné cette erreur parce que les valeurs recherchées dans le tableau sont introuvables... La formule matricielle suivante est peut-être la solution:
Code :
=SI(ESTERREUR(PETITE.VALEUR(SI((DataA=$A2)*(DataC=$C2);DataD);1));"";PETITE.VALEUR(SI((DataA=$A2)*(DataC=$C2);DataD);1))
En Anglais :
Code :
=IF(ISERROR(SMALL(IF((DataA=$A2)*(DataC=$C2);DataD);1));"";SMALL(IF((DataA=$A2)*(DataC=$C2);DataD);1))
et elle affiche un vide dans le cas où les conditions de recherches ne sont pas vérifiées...

Les noms DataA; DataC, DataD dans la formule sont respectivement les plages nommées: Data!$A2:$A$1000, Data!$C2:$C$1000, Data!$D2:$D$1000, qu'on peut étendre mais le fichier devient de plus en plus long...

Cordialement
hben1961 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 11h32   #7
Invité régulier
 
Isa XVX
Inscription : octobre 2010
Messages : 23
Détails du profil
Informations personnelles :
Nom : Isa XVX

Informations forums :
Inscription : octobre 2010
Messages : 23
Points : 6
Points : 6
En effet, ça fonctionne!

Merci beaucoup !!!
Isabelle86 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 14h04.


 
 
 
 
Partenaires

Hébergement Web