Fonctions matricielles // Tri par date

Bonjour à tous !

J'utilise actuellement une fonction matricielle sur un fichier qui me permet de faire remonter des références qui sont :

  • d'un certain statut
  • une date donnée

Voici le code

=SIERREUR(INDEX(Date;PETITE.VALEUR(SI((Date>$B$1)*(Status="0. Recorded");LIGNE(Date)-1);LIGNE($A1)));"")

J'ai créé mes index date & status qui sont en référence dans ce code.

Mais je n'arrive pas à la manipuler afin qu'elle me fasse apparaître les cellules par ordre chronologique du plus vieux au plus récent.

Je joins un fichier exemple avec les formules.

D'avance merci pour votre aide !

Anthony

6fichier-test.xlsx (12.70 Ko)

Bonjour,

=SIERREUR(INDEX(Date;MAX(SI(Date=PETITE.VALEUR(SI(Status="0. Recorded";Date;"");LIGNE($A1));LIGNE(Date);0))-1);"")

[Toutefois, à condition que pas de doublon dans les dates de la matrice, il me semble.]

Cordialement.

Bonjour et merci,

effectivement cela fonctionne, et j'ai fais le test avec des doublons, ils ressortent parfaitement donc de ce coté c'est parfait.

Par contre, la date n'est pas prise en compte dans les critères.

Je cherche comment réintégrer ce critère

Encore merci

Anthony

Ah ! Exact ! Je l'ai perdu en route !!!

Le mieux est de préférence un SI imbriqué dans ce cas : SI(Status="0. Recorded";SI(Date>$B$1;...

C'est bon j'ai imbriqué le SI et cela fonctionne.

Je souhaite maintenant ajouter un critère, je souhaite que les status 0. Recorded apparaissent mais également les status 1. Template.

Je ne peux pas imbriquer un autre SI car il n'est pas possible qu'une ligne regroupe ces deux conditions.

Avez vous une solution ?

merci

Une âme charitable pour me donner une piste ? Impossible de trouver la formule magique !

Pas le temps dans l'immédiat, mais refais des essais avec une matrice multiplicative en condition du SI de PETITE.VALEUR : tu reviens à un seul SI... C'est une méthode que tu avais utilisée au départ.

C'est ce que j'ai fait dans l’immédiat mais malheureusement je n'ai que des messages d'erreur, il me manque quelque chose mais je ne sais pas encore quoi.

Je continue !

En tout cas merci pour votre précieuse aide !

Anthony

bonjour

eventuellement en procedant ainsi

SI((plage1=critere1)*(plage 2= critere2).......

si les 2 crit sont dans la meme plage ;tu remplaces * par + et plage 2 par plage 1

cordialement

Attention, tu veux deux statut simultanés, il me semble ! Ce cas n'est pas multiplicatif (=ET) mais additif (=OU)... d'où tu devrais avoir quelque chose comme :

....SI(((ColStatut=statut1)+(ColStatut=statut2))*(ColDate>B1);.....

Expression qui renverra 0 ou 1 pour chaque ligne....

edit Tulipe m'a devancé (Salut !)

re

tout mes Voeux mon cher M ferrand

avant de te devancer ;je dois au moins songer a t'egaler

cordialement

inutile de te cacher derriere un pretendu fuseau horaire ; c'est pas le propos

Voila !!

c'est parfait cela fonctionne, je n'ai pas pensé au + ald *...

Merci pour votre aide !

A bientôt

Anthony

Bon désolé je réactive le sujet car il cela recopie les lignes en double.

Dans le fichier d'origine, on peut trouver des ref de commande, en utilisant la formule

=SIERREUR(INDEX(Date;MAX(SI(Date=PETITE.VALEUR(SI(Status="0. Recorded";Date;"");LIGNE($A1));LIGNE(Date);0))-1);"")

Les commandes sont répétées plusieurs fois.

Je ne vois absolument pas pourquoi...

Une idée ?

Merci

Anthony

Sur cette formule de départ, je crois t'avoir signalé qu'elle impliquait probablement qu'il n'y ait pas de date doublon.

Il n'y en avait pas dans ton modèle, mais on pouvait préjuger que en cas de doublon, MAX renverrait la même ligne...

Mon cher Tulipe,

Pas de fausse modestie... !

Je ne te lancerai pas de défi sur les matricielles ! a+

Bonjour,

en effet, tu m'avais prévenu qu'il pourrait y avoir des doublons et c'est bien le cas. Du coup, penses tu qu'il y ai une solution pour palier ce problème ?

merci

Bonjour,

est ce qu'une personne de ce forum serait en mesure de faire en sorte que le code ci dessous puisse trier des dates par ordre chronologique et ce, sans que cela génère des doublons

=SIERREUR(INDEX(invoice_issue;PETITE.VALEUR(SI((process_="0. Recorded")*(invoice_issue>$A$1);LIGNE(date_envoi)-1);LIGNE($A1)));"")

Vous remerciant par avance de votre aide

bonjour

une tentative

  • trié chrono
  • trié sans double
2antonyxbo.xlsx (15.00 Ko)

cordialement

Bonjour Tulipe,

merci pour ce retour. Malheureusement je n'arrive pas à l'adapter à mon fichier et je ne sais pas pourquoi car les conditions de "Status" sont les mêmes mais ne s'applique pas correctement.

=SIERREUR(INDEX(Status;MAX(SI(Date=PETITE.VALEUR(SI((Status="1. Template")+(Status="0. Recorded");SI(Date>$B$1;Date;""));LIGNE($A1));LIGNE(Date);0))-1);"")

Il ne devrait avoir que les lignes 1. template & 0. Recorded qui ressortent, or sur mon fichier, tous les autres statuts sortent.

Concernant les doublons, je crois que j'ai oublié un point important, c'est que dans mon fichier d'origine, il y a des références et ce sont ces dernières qui ne doivent pas être en doublon mais il est possible qu'il y ai plusieurs lignes à la même date.

J'ai rajouté un onglet référence dans le fichier test.

2antonyxbo.xlsx (15.12 Ko)
Rechercher des sujets similaires à "fonctions matricielles tri date"