Recherchev + si

Résolu/Fermé
Coco loco Messages postés 20 Date d'inscription jeudi 18 avril 2013 Statut Membre Dernière intervention 28 octobre 2014 - 23 oct. 2014 à 14:42
Coco loco Messages postés 20 Date d'inscription jeudi 18 avril 2013 Statut Membre Dernière intervention 28 octobre 2014 - 28 oct. 2014 à 17:09
Bonjour,

Je suis à la recherche d'une formule qui pourrait résoudre le problème suivant:

j'ai une base de données avec des dates de payements allant de 2008 à aujourd'hui

Dans un tableau plus bas je souhaite reporter ces valeur par mois de manière automatique.

Par ex: dans ma base de données principale, en A1 j'ai la date du payement soit 05.01.2014. en B1 le montant du payement.

Plus bas j'ai 12 petits tableaux correspondant aux 12 mois de l'année. Mon objectif est que pour le mois de janvier 2014 , j'aie une formule qui me donne la date du payement ainsi que le montant dans la plage de données sélectionnée. Je ne veux pas avoir uniquement une formule "si" car ceci m'obligerait à avoir un mois avec plus de 1600 lignes...(nombre de jours entre 2008 et 2014).

je pensais à une formule qui irait dans la logique d'un "recherchev" combiné à un "si".


Je remercie d'avance à tous ceux qui prennent le temps de m'aider.

2 réponses

ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
23 oct. 2014 à 15:01
Bonjour

Je pense qu'il va falloir passer par une macro, mais il faudrait avoir une idée de la structure de ton fichier
Peux tu mettre une partie de celui-ci au format excel 2003 sur cjoint.com et joindre le lien obtenu à ton prochain message. N'oublies pas d'y ajouter quelques explications et exemples de ce que tu souhaites obtenir

Cdlmnt
0
Coco loco Messages postés 20 Date d'inscription jeudi 18 avril 2013 Statut Membre Dernière intervention 28 octobre 2014
23 oct. 2014 à 15:37
ci-joint le lien. http://cjoint.com/data/0JxpP674AHA.htm


je te remercie pour le temps que tu consacres au problème.


Cordialement
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
23 oct. 2014 à 17:02
Bonjour
voyez si ce modèle peut vous inspirer (avec une colonne de coadge)
il n'est pas utile que les colonnes de paiement soit classées par odre chronologique
l'éditon est à droite, il suffit de changer l'année en G2 et le N° du mois en I2 pour avoir la, liste correspondante
crdlmnt
https://www.cjoint.com/?DJxrfISjJV3
0
Coco loco Messages postés 20 Date d'inscription jeudi 18 avril 2013 Statut Membre Dernière intervention 28 octobre 2014
24 oct. 2014 à 09:02
Bonjour Vaucluse,

J'ai regardé votre feuille excel. C'est exactement ce que je cherchais à faire. Pourriez-vous m'expliquer la formule en F3 ? Je vous remercie !!!
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
24 oct. 2014 à 09:19
Bonjour
le système passe d'abird par la colonne E, mais là, je pense que vous n"avez pas de problkème

la forlmule en F3:

=SI(NB.SI($E:$E;"*"&$G$2&"_"&$I$2&"*")>LIGNE()-3;INDEX($A:$D;EQUIV($G$2&"_"&$I$2&"_"&LIGNE()-3;$E:$E;0);1);"")
base du code:
INDEX(Champ;N°de ligne;N° de colonne) qui renvoiue la valeur à l'intesrection de la ligne et de la colonne du champ spécifiées dans les codes

la 1° partie de la formule sert à éliminer les affichages #N/A lorque le nombre de lignes à éditer est atteint:

SI(NB.SI($E:$E;"*"&$G$2&"_"&$I$2&"*")

compose le code année_mois affiché en G2 et I2 par concaténation

compte dans la colonne E combien de fois ce code se trouve contenu dans la liste de E
(les signes * servent à dire au code que le texte à toruver n'est que partiel dans celui de E)
et donc la condition ne s'applique que si le nombre de codes année_mois trouvé est inférieur ou égal au N° de ligne où se trouve la formule LIGNE()-3 moins 3 de façon à obtenir 0 sur la :ligne 3
(LIGNE() renvoie le N° de la, ligne ou se trouve la formule)

ensuite le code INDEX définti le champ de recherche soit A:D
EQUIV recompose le code complet avec année_mois_N° ligne()-3
ce code complet définit le n° de ligne dans la champ E:E où se trouve la valeur cherchée
e1 ou 3 ou 3 final définit le N° de colonne du champ de INDEX où se trouve la valeur
et le"" pour terminert ren voie une cellule blanche si le nombre est dépadsé

pas facile d'être clair par écrit, j'espère l'avoir été

crdlmnt
0
Coco loco Messages postés 20 Date d'inscription jeudi 18 avril 2013 Statut Membre Dernière intervention 28 octobre 2014
24 oct. 2014 à 10:19
ainsi que la formule en E2...
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
24 oct. 2014 à 10:58
forme le code en E2 à partir du principe de concaténation via le signe &qui forme un texte:

.=valeur1&valeur2&valeur 3&Ect..

=ANNEE(B2)&"_"&MOIS(B2)&"_"&NB.SI($E$1:E1;"*"&ANNEE(B2)&"_"&MOIS(B2)&"*")


ANNEE(B2) année de la date en B2
underscore
MOIS(B2)Mois de la date en B2
underscore
NB.SI($E$1:E1;"*"&ANNEE(B2)&"_"&MOIS(B2)&"*")

ce dernier item compte le nombre de texte en E au dessus de la ligne où il se trouve, contenant la concaténation année et mois , de façon à créer le dernier N° du résultat et ainsi différencier chaque ligne de la même année/même mois
(le départ de champ $E$1 est bloqué, pas la fin. Voyez par exemple en E3 NB.SI($E$1:E1.... est devenu NB.SI($E$1:E2...).....ect

exemple:
en E2,ce code renvoie 2015_5_0 car en E1:E1 il n'y a pas de 2015_5
renvoie 2015_5_1 en E3 car en E1:E2 il y a une fois 2015_5 ect...

Les underscores sont placés pour éviter d'éventuelles confusions de valeur entre le mois et le rang trouvé par le systéme
(par exemple sans ces underscores, 2015121 pourrait aussi bien être le 1° de décembre que le 21ième de janvier)

crdlmnt
0
Coco loco Messages postés 20 Date d'inscription jeudi 18 avril 2013 Statut Membre Dernière intervention 28 octobre 2014
24 oct. 2014 à 11:58
J'ai partiellement compris les formules. J'essaye de transposer les formules sur le fichier que vous avez partagé sur mon "vrai" fichier mais je n'arrive pas au même résultat. La valeur des cellules des payements est vide. Du coup les autre cellules le sont également. Je pense qu'il doit y avoir un problème pour la formule qui est dans la cellule F3 dans votre fichier..
0