XL 2016 Récupération de conversations selon la date

didcac

XLDnaute Occasionnel
Bonjour à tous,
J'espère que les nombreux talents qui foisonnent dans ce Forum pourront m'aider !

J'ai un fichier avec une liste de sociétés et des contacts au fil du temps. Il y a beaucoup de colonnes, correspondant à une conversation (= Obs pour Observation) par cellule (maximum 60 colonnes, dernière = Obs 60). Par commodité, elles se suivent toutes.
Je cherche à isoler uniquement les conversations datées après le 15/09/2020.
La particularité, c'est que cela commence systématiquement par la date du jour d'appel selon un format identique partout : J ou JJ / M ou MM / AA.

NB : sauf les 5 premières (Obs 1 > Obs 5) où là il y a 2 cellules distinctes (Date d'appel 1 & Obs 1, Date d'appel 2 & Obs 2, etc), une Date et une Texte. Il n'y a aucun retraitement ici, juste à recopier directement.

L'idée serait de recopier les cellules "Date & Texte" en une première cellule accueillant séparément la date, et une seconde le texte (si et seulement si la date présente est postérieure au 15/09/2020).

Je joins un fichier de structure réelle, mais avec des exemples fictifs (pour tester).

On pourrait définir une colonne spécifique (loin sur la droite, par exemple en colonne CL) à partir de laquelle cette recopie pourrait être faite, quelle que soit la ligne traitée.
Ainsi, selon les cas, il y aura une ligne enrichie par exemple de 8 colonnes s'il y a 4 conversations après le 15/09/2020, ou encore aucune si toutes sont antérieures.

Je vous remercie de bien vouloir essayer de trouver une solution.
Bien cordialement
 

Pièces jointes

  • Fichier exemple CVS > NOTE 2.xlsx
    10.5 KB · Affichages: 5

njhub

XLDnaute Occasionnel
Bonjour didcac,

Voyez si la solution proposée peut vous aider

1) dans un premier temps on inscrit la date butoir en CK1

2) puis on recherche cette date dans les cellules dans chaque ligne remplie depuis la colonne W jusqu'à AF avec la formule suivante en CQ4
Code:
=SI(SIERREUR(W4*1;0)>$CK$1;COLONNE()-72;"")
à étendre vers la droite jusqu'en CZ4

3) pour chercher cette date dans les cellules "fusionnées", à partir de la colonne AG la formule suivante en DA4
Code:
=SI(SIERREUR(GAUCHE(AG4;CHERCHE(CAR(32);AG4)-1)*1;0)>$CK$1;COLONNE()-72;"")
à étendre vers la droite jusqu'en FC4

Ces deux premières formules restituent le numéro de colonne contenant une date supérieure à CK1

4) Ne reste plus qu'à chercher la valeur inscrite dans cette colonne, on y parvient avec la formule suivante en CM4 à étendre vers la droite jusqu'en CP4 puis sur le nombre de lignes utiles
Code:
=SI(COLONNES($CM4:CM4)>$CL4;"";SI(PETITE.VALEUR($CQ4:$FC4;COLONNES($CM4:CM4))>32;INDIRECT(ADRESSE(LIGNE();PETITE.VALEUR($CQ4:$FC4;COLONNES($CM4:CM4)));1);SI(PETITE.VALEUR($CQ4:$FC4;COLONNES($CM4:CM4))<=32;CONCATENER(TEXTE(INDIRECT(ADRESSE(LIGNE();PETITE.VALEUR($CQ4:$FC4;COLONNES($CM4:CM4)));1);"j/m/aa");" ";INDIRECT(ADRESSE(LIGNE();PETITE.VALEUR($CQ4:$FC4;COLONNES($CM4:CM4))+1);1)))))

(pour avoir l'affichage du dernier contact en premier, la date la plus récente, remplacer PETITE.VALEUR par GRANDE.VALEUR dans la formule ci-dessus)

5) Pour vérifier l'affichage du bon nombre de cellules correspondant à une date supérieure à la date recherchée, on peut utiliser CL4 la formule ci-dessous :
Code:
=NB.SI(CQ4:FC4;">"&1)
à étendre sur le nombre de lignes utiles

;)
 

Pièces jointes

  • didcac.png
    didcac.png
    29 KB · Affichages: 18
  • didcac.xlsx
    11.1 KB · Affichages: 5

didcac

XLDnaute Occasionnel
Bonsoir njhub,
Et merci beaucoup, car c'est un superbe travail !!! Bravo.
A la lecture de mon petit fichier, ça marche parfaitement.
En revanche, j'ai voulu mettre le vrai fichier, qui fait 3609 lignes (plage A4 à CI3609), mais il n'y a rien.
Faut-il lancer quelque chose, comme une Macro ?
J'ai essayé de "Remplir vers le bas" le cadre bleu ciel à droite en l'étirant vers le bas, mais rien n'y fait.
Peux-tu me dire comment faire ?
Merci.
 

njhub

XLDnaute Occasionnel
Bonjour didcac,

apparemment votre "vrai" fichier n'est pas structuré de la même façon que votre exemple

Il n'y a aucune macro dans ce que j'ai fait, uniquement des formules, formules qu'il faudra adapter au fichier que vous comptez utiliser, toutes les formules (aucune n'est superflue) et zones si elles sont différentes.

Voyez si les zones correspondent :
date et observation dans deux cellules successives des colonnes pour les données W jusqu'à AF pour le traitement CQ à CZ,
dates et observation dans la même cellule à partir de la colonne AG jusqu'à CI pour le traitement DA à FC

En colonne CL la formule NB.SI(CQ4:FC4;">"&1), qui restitue le nombre de cellules (dans la zone CQ:FC) contenant une date supérieure à CK1

Enfin dans les colonnes CM à CP la formule précitée pour avoir les quatre premières ou dernières valeurs suivant l'utilisation de PETITE.VALEUR ou GRANDE.VALEUR

;)
 

didcac

XLDnaute Occasionnel
Bonsoir njhub,
J'ai bien regardé ces points, et tout est conforme. La meilleure preuve, c'est qu'en prenant une ligne entière du vrai fichier que je colle dans votre petit fichier, ça marche !!!

Le plus simple : pouvez-vous faire le même fichier pour 3609 lignes ? Ainsi, je colle et ça marchera...

Merci
 

njhub

XLDnaute Occasionnel
Bonjour didcac,

collez vos vraies valeurs dans la zone A4:CJ3609 du fichier joint, puis recopiez les formules de la ligne 4 à la ligne 3609 (CL4:FC3609)

Le poids du fichier augmentant avec le nombre de formules, celles-ci ne sont présentes que jusqu'en ligne 699

;)
 

Pièces jointes

  • didcac2.xlsx
    456.4 KB · Affichages: 2

didcac

XLDnaute Occasionnel
Bonjour njhub,
Merci bien, ça marche parfaitement !!
Sinon, afin de recopier la DATE incluse dans chaque cellule copiée (par exemple dans une nouvelle colonne/cellule créée à côté), existe-t-il une Fonction faisant cela ? Je sais que ça existe pour le TEXTE, me semble-t-il ? (je peux créer les colonnes moi-même)
Merci de me dire.
 

didcac

XLDnaute Occasionnel
OK.
Désormais, ça se passe en colonne FG. J'y ai tout d'abord copié la VALEUR de CM (puis CN, CO, CP)
Je montre en rouge dans le fichier ce que je souhaite :
Colonne FF générée vierge pour accueillir la date présente en début de la cellule FG. Ici j'ai fini par la remplir pour faire comprendre.
Puis colonne FH est décalée en FI pour là aussi copier la date en FH, etc etc etc

En bleu, idéalement et si possible, j'ai rajouté l'effacement de la date dans la 2ème cellule, ce qui est logique vu que la date est collée dans une cellule devant (intercalée). Mais si vous ne pouvez pas le faire tant pis.
 

Pièces jointes

  • didcac3.xlsx
    419.5 KB · Affichages: 5

Discussions similaires

Statistiques des forums

Discussions
302 236
Messages
2 001 687
Membres
215 256
dernier inscrit
Adso