Fonction Min sous forme matricielle inopérante

Bonjour,

Soit une liste de dates, précises à la seconde, avec des cellules vides à la fin.

Je voudrais les extraire sans doublon de jour dans une deuxième colonne. J'ai voulu adapter la formule avec la fonction Max trouvée dans le livre "Les recettes d'Excel" (il date de 1993, mais m'a été fort utile dans l'utilisation des formules matricielles) en la remplaçant par Min et en l'adaptant, mais elle ne me donne pas le résultat escompté.

La fonction matricielle suivante fonctionne :

=TRONQUE(MAX(($D$2:$D$580)*($D$2:$D$580<E583));0)

(avec alt+ctrl+entrée)

mais pas celle-ci :

=TRONQUE(MIN(($D$2:$D$580)*($D$2:$D$580>D583));0)

J'aurais voulu éviter d'utiliser la fonction Decaler()

J'ai trouvé un fichier qui semble répondre à mon problème qui figure dans les colonnes A et B du fichier ci-joint, mais je ne suis même pas parvenu à l'adapter.

Par ailleurs, est-il possible d'utiliser l'enregistreur de macro au format Excel 4 et non en VBA sous Excel 2003 ?

Merci d'avance

27f-min.zip (10.60 Ko)

Bonsoir,

Min est à 0 car la condition du 2nd terme revient à 0

donc si : date * condition fausse (=0) ==> résultat = 0

le minimum sera donc 0 tant qu'il restera une condition fausse.

(+ la ligne 583 est du texte, la date repère est en col E)

Bonne suite

Cordialement

axion

Re :

le fichier modifié, si j'ai bien tout compris du Min / Max

Bonne suite

Cordialement

axion .

24f-min-ou-max.zip (17.70 Ko)

Je vous remercie de vos réponses, mais je me rends compte que ma question était mal formulée.

Je souhaite extraire les dates sans doublon de jour, d'où l'utilisation de la fonction Tronque et par ordre chronologique (omission impardonnable), d'où l'utilisation de la fonction Min. J'ai ajouté des conditions à la formule matricielle, comme je le fais habituellement, mais je n'obtiens pas le résultat voulu...

20ordre-chrono.zip (12.64 Ko)

Bonjour

Mettre en D4

Valider en matricielle

et tirer vers le bas

=SIERREUR(TRONQUE(INDEX($A:$A;MIN(SI(NB.SI($D$3:D3;TRONQUE($A2:$A570))=0;LIGNE($A2:$A570);9^9));0));"")

Bonjour,

Voir proposition.

31ordre-chrono.zip (21.37 Ko)

Bonjour,

Je vous remercie de vos réponses, mais au risque de paraître pénible et obstiné, elles ne me conviennent pas tout à fait pour les raisons suivantes :

A axion

Je ne comprends l'argument suivant lequel min est à 0, car la fonction =MIN(B657;$B$6:$B$613) ne renvoie pas la valeur 0, mais la valeur 25/09/2014, donc ma formule devrait normalement fonctionner

A dhabitude :

J'ai copié la formule. J'ai rencontré une difficulté à laquelle je m'attendais en la lisant car la fonction sierreur() n'est pas reconnue par ma version d'Excel. Je l'ai modifiée en conséquence en la remplaçant par si(est(erreur()) comme j'en ai l'habitude, mais cela me donne la réponse FAUX dans les deux cas suivants :

=SI(ESTERREUR(TRONQUE(INDEX($A:$A;MIN(SI(NB.SI($D$3:D3;TRONQUE($A2:$A570))=0;LIGNE($A2:$A570);9^9)));0));"")

=SI(ESTERREUR(TRONQUE(INDEX($A:$A;MIN(SI(NB.SI($D$3:D3;TRONQUE($A2:$A570))=0;LIGNE($A2:$A570);9^9));0)));"")

La différence entre les deux formules ci-dessus vient de la parenthèse fermant celle que j'ai introduite avec la fonction esterreur, parenthèse que j'ai cru avoir mal placée initialement. Il y a deux choses que j'aimerais comprendre concernant cette formule car j'ai quelque difficulté à l'interpréter

1) Je n'utilise pas la fonction NB.SI, même si celle-ci est reconnue par ma version d'Excel. J'ai l'habitude d'utiliser les fonctions suivantes = somme(si(condition;1;0)), toujours sous forme matricielle car je l'ai connue également sur le livre de 1993 cité précédemment. J'aimerais savoir pourquoi il y a un argument 9^9 (9 puissance 9 ?) et à quoi il correspond car je ne m'en suis jamais servi dans depuis que j'utilise les fonctions matricielles. J'ai testé cette fonction NB.SI dans la formule suivante :

=NB.SI(tronque($A$2:$A$570;0);TRONQUE(A4;0)) pour compter le nombre d'occurrences de la liste, mais Excel refuse la première fonction Tronque dans la plage de cellules de référence (d'où ses caractères en minuscule), alors que la fonction matricielle suivante calcule le nombre d'occurrences sans problème : =SOMME(SI(TRONQUE(A4;0)=TRONQUE($A$2:$A$580;0);1;0)).

2) Je ne vois pas l'intérêt de compter le nombre de lignes de la plage $A2:$A570, sauf à l'utiliser avec la fonction Decaler, que je voulais éviter dans un premier temps. De plus, je pense que des coordonnées absolues

$A2:$A$570 sont plus indiquées car il n'y aucune raison de décaler la fin de la plage. Par ailleurs, la plage de référence est $A$2:$A$580 et non $A$2:$A$570. Je laisse des cellules vides pour pouvoir insérer les opérations futures sans avoir à modifier mes formules de calcul.

A Jean-Eric

Je suis un contempteur acharné des TCD, dont le nom relève carrément de l'escroquerie car il fallait les recalculer à chaque fois que la base était modifiée, donc ils n'avaient rien de dynamique lorsque MS a les intégrés dans Excel . Cela ressemble à une boîte noire au fonctionnement particulièrement opaque. Je suis toujours parvenu à me débrouiller en utilisant des fonctions matricielles classiques. C'est la richesse d'Excel de permettre d'obtenir le même résultat avec des chemins différents, mais je laisse les TCD à qui en veut. Je ne suis pas sûr qu'un TCD puisse calculer les mêmes résultats que les formules matricielles du fichier ci-joint, le tout en mettant les résultats immédiatement à jour, sans recalcul ni macro...

Je repose mon pb :

Je souhaite insérer une formule dans la plage B658 et suivantes du fichier ci-joint, qui extraie les dates de la plage B6:B613, sans doublon, dans l'ordre chronologique et sous Exel 2003.

D'avance, merci.

Bonjour

La fonction SiErreur peut être enlevée.

Si tu la remplaces par Si(ESTERREUR(

ca prend une valeur pour VRAI et une valeur pour FAUX.

Donc il faut ajouter un ; et tout recopier la formule

La fonction Ligne ne compte pas le nombre de ligne

La fonction ligneS compte le nombre de ligne.

La fonction Ligne en matricielle retourne une matrice

Ligne(1:4) va retourner {1,2,3,4}

nb.si peut être remplacer par nb(si(

2 problèmes

1- ca prend un VRAI et un FAUX

2- ta version excel est limitée à 12 imbrications.

24ordre-chrono.zip (16.00 Ko)
Rechercher des sujets similaires à "fonction min forme matricielle inoperante"