|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Isa XVX Inscription : octobre 2010 Messages : 23 ![]() |
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)) 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) Est-ce à cause du nombre de ligne? Merci d'avance pour votre aide. |
|
|
00
|
|
|
#2 |
|
Membre expérimenté
![]() Enseignant Inscription : novembre 2009 Messages : 350 ![]() |
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) 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) Cordialement |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Isa XVX Inscription : octobre 2010 Messages : 23 ![]() |
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. |
|
|
00
|
|
|
#4 |
|
Membre expérimenté
![]() Enseignant Inscription : novembre 2009 Messages : 350 ![]() |
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) 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) Cordialement |
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Isa XVX Inscription : octobre 2010 Messages : 23 ![]() |
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. |
|
|
00
|
|
|
#6 |
|
Membre expérimenté
![]() Enseignant Inscription : novembre 2009 Messages : 350 ![]() |
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)) Code :
=IF(ISERROR(SMALL(IF((DataA=$A2)*(DataC=$C2);DataD);1));"";SMALL(IF((DataA=$A2)*(DataC=$C2);DataD);1)) 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 |
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() Isa XVX Inscription : octobre 2010 Messages : 23 ![]() |
En effet, ça fonctionne!
Merci beaucoup !!! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com