XL 2016 [Résolu] Recopie formule en décaler

karybou

XLDnaute Occasionnel
Bonjour le forum,
je viens vous consulter pour votre aide car je bloque sur une formule.
Dans le classeur ci-joint, le but est de remonter un calcul (Recettes-Charges) en correspondance avec les années. Je n'arrive pas à faire une formule qui puisse décaler en ligne.
je récupère les données de recettes et charges dans 2 feuilles séparées, mon tableau compte plusieurs lignes.
Mille mercis de m'apporter votre aide toujours précieuse.
Belle fin de journée à tous.
Cordialement.
K.
 

Pièces jointes

  • Recop_chiffres.xlsx
    10.7 KB · Affichages: 31

Dugenou

XLDnaute Barbatruc
Bonjour,
Sur ton fichier tel quel :
Code:
=RECHERCHEH(B6;Recettes!$F$3:$U$4;2;FAUX)-RECHERCHEH(TEXTE(B6;"0000");Charges!$E$4:$T$5;2;FAUX)
parce que les années de la feuille Charge sont des valeurs texte.
Si tu tu fais un collage spécial multiplication de la valeur 1 (préalablement copiée) sur ces en tête d'années alors :
Code:
=RECHERCHEH(B6;Recettes!$F$3:$U$4;2;FAUX)-RECHERCHEH(B6;Charges!$E$4:$T$5;2;FAUX)
Cordialement
 

karybou

XLDnaute Occasionnel
Bonsoir Dugenou, le forum,
La formule en 1ère version fonctionne super. MERCI.
Par contre je dois récupérer aussi les chiffres qui se trouvent plus bas dans le tableau et non à proximité de la ligne "année", je n'ai pas trouvé comment modifier la formule pour que ceux-ci soient aussi remontés dans le tableau récap. Je joins le fichier.
Mille mercis déjà pour ton aide.
Belle soirée
Cordialement. K.
 

Pièces jointes

  • Recop_chiffres_2.xlsx
    13.5 KB · Affichages: 30

Dugenou

XLDnaute Barbatruc
Bonjour,
Regardes l'aide sur le fonction rechercheh : le chiffre placé en 3eme argument correspond au N° de ligne à renvoyer dans la matrice de recherche (qu'il faut agrandir maintenant que tu as plusieurs lignes). La formule doit dont être modifiée comme suit :
Code:
=RECHERCHEH($B6;Recettes!$F$3:$U$15;10;FAUX)
j'ai enlevé la partie charges pour les comptes 48 et 49, par contre j'ai enlevé la partie recette pour les comptes 38 ce qui donne :
Code:
=-RECHERCHEH(TEXTE($B6;"0000");Charges!$E$4:$T$15;6;FAUX)
Cela demande de changer le chiffre du N° de ligne à "aller chercher" pour chaque colonne. Si tes lignes changent de place c'est dangereux et fastidieux pour les mises à jour.
Puisque tu as des N° de comptes en ligne 5 (qu'on peut retrouver sur tes feuilles recettes et charges), on peut faire une formule plus générique qui s'adaptera à tous les N° de comptes et quel que soit l'ordre des lignes : voir feuille recap2.
La fonction index te permet de retourner une valeur dans un tableau en indiquant le N° de ligne et de le N° de colonne (comme à la bataille navale). La fonction equiv te renvoie le n° de ligne ou de colonne de l'élément recherché (encore une fois regarde l'aide sur cette fonction).
Avec la formule
Code:
=INDEX(Recettes!$F$4:$U$15;EQUIV(TEXTE('recap (2)'!D$5;"00")&"*";Recettes!$C$4:$C$15;0);EQUIV('recap (2)'!$B6;Recettes!$F$3:$U$3;0))
tu renvoies la valeur qui se trouve à l'intersection du N° de compte obtenue par EQUIV(TEXTE('recap (2)'!D$5;"00")&"*";Recettes!$C$4:$C$15;0) et de l'année grace à EQUIV('recap (2)'!$B6;Recettes!$F$3:$U$3;0). Cette formule se recopie à droite sans changement pour les comptes 49 et tous les comptes de recettes.
Encore une fois j'ai utilisé des bricolages car tes N° de comptes de recettes ont un espace après le chiffre d'où le TEXTE('recap (2)'!D$5;"00")&"*" qui permet de dire "tout ce qui commence par 'recap (2)'!D$5 en format texte.
Pareil pour les charges où là on a un texte après le N° de compte :
Code:
=INDEX(Charges!$E$5:$T$11;EQUIV('recap (2)'!F$5&"*";Charges!$C$5:$C$11;0);EQUIV(TEXTE('recap (2)'!$B6;"0000");Charges!$E$4:$T$4;0))

Voir en pj
Cordialement
 

Pièces jointes

  • karybou.xlsx
    16.1 KB · Affichages: 43

karybou

XLDnaute Occasionnel
Bonjour Dugenou, le forum
Tu es extra! Merci beaucoup pour ta réponse. Effectivement le fichier est un export de la compta, c'est pour cela qu'il y a ces caractères de texte un peu partout... Désolé pour la complication.
Je vais essayer cela et te redis.
Bien cordialement et belle journée.
K.
 

Discussions similaires

Réponses
10
Affichages
321

Statistiques des forums

Discussions
312 238
Messages
2 086 492
Membres
103 234
dernier inscrit
matteo75654548