Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Recherchev sur la dernière valeur correspondante

  • Initiateur de la discussion Initiateur de la discussion Waydyn
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Waydyn

XLDnaute Nouveau
Bonjour à tous,

Il s'agit de mon premier message ici, je vous remerci déjà pour toute l'aide que vous m'avez déjà apporté par le biais des nombreuses recherches que j'ai effectué concernant excel.

J'ai un petit problème avec un document excel qui est petit à petit devenu un usine à gaz.

Je souhaite qu'une recherchev que j'ai faite cherche la dernière valeur qui corresponde. Il s'agit d'une répartition de la valeur sur plusieur phase et je souhaiterai par exemple qu'à la phase 3 excel me reprenne la valeur de la phase 2 et non pas cele de la phase 1.

Avec mon exemple j'espère que ce sera plus clair.

Donc là, je cherche à ce qu'à la place du deuxième 6187,5 que j'ai mis en vert s'affiche la valeur de 1237,5 résultat du calcul précédent.

J'espère être assez clair
Merci à vous pour votre attention, .
 

Pièces jointes

Re : Recherchev sur la dernière valeur correspondante

Salut Waydyn et le forum
Donc là, je cherche à ce qu'à la place du deuxième 6187,5 que j'ai mis en vert s'affiche la valeur de 1237,5 résultat du calcul précédent.
Je ne suis pas sûr : pour la même référence (510365005712375)
Ligne 7 : 6187,5
Ligne 18 : 1237,5
Ligne 20 : 6187,5
C'est issu d'une formule :
Code:
=ARRONDI(SI(ESTNA(RECHERCHEV(D20;D$2:E18;2;FAUX));+C20-G20-I20-K20-M20-O20-Q20-S20-U20-W20-Y20-AA20-AC20-AE20-AG20-AI20-AK20-AM20-AO20-AQ20-AS20-AU20-AW20-AY20-BA20-BC20-BE20-BG20-BI20-BK20-BM20-BO20-BQ20-BS20-BU20-BW20-BY20-CA20-CC20-CE20-CG20;(RECHERCHEV(D20;D$2:E18;2;FAUX))-G20-I20-K20-M20-O20-Q20-S20-U20-W20-Y20-AA20-AC20-AE20-AG20-AI20-AK20-AM20-AO20-AQ20-AS20-AU20-AW20-AY20-BA20-BC20-BE20-BG20-BI20-BK20-BM20-BO20-BQ20-BS20-BU20-BW20-BY20-CA20-CC20-CE20-CG20);2)
Va me falloir dix ans pour comprendre de quoi on parle, surtout que de mon point de vu, elle est fausse : sinon, elle donnerait le résultat escompté 😛
Tu introduis, de plus dans ta formule des Faux, alors que tu fait un calcul ?
ce que je comprends, c'est ta formule peut être facilement simplifiée :
tu pourrais faire la somme de toutes tes colonnes impaire de G à CG. pour la ligne 2 :
Code:
SOMMEPROD((PAIR(COLONNE($G2:$CG2))<>COLONNE($G2:$CG2))*($G2:$CG2))
Bon, à priori, tu le soustrairas à une valeur initiale, que tu recherches avec un RechercheV : Ce que je crois comprendre : tu recherches la dernière instante du "Concatener valeur/référence" dans la plage 2:ligne-1 => si c'est ça, on va faire la valeur en E3 :
Code:
{=SI($D3="";"";SI(MAX(($D$2:$D2=$D3)*LIGNE($D$2:$D2))=0;C3;INDIRECT(ADRESSE(MAX(($D$2:$D2=$D3)*LIGNE($D$2:$D2));5)))-SOMMEPROD((PAIR(COLONNE($G3:$CG3))<>COLONNE($G3:$CG3))*($G3:$CG3)))}
Attention : c'est une formule matricielle validée par <Ctrl>+<Shift>+<Enter>, comme l'indique l'apparition de {}.

si on la décompose :
SI($D3="";"";....) : sert à effacer les valeurs, si D3 est vide
MAX(($D$2:$D2=$D3)*LIGNE($D$2:$D2)) : renvoi soit 0, s'il n'existe aucune instance de D3 sur la plage D2(Fixe) à D ligne du dessous de la formule, sinon, Excel renvoi la ligne la plus haute qui contienne en D sur la plage ligne 2 à ligne en cours -1 la même valeur que D de la ligne en cours
Pour la suite de On appellera cette formule F_1

si(F_1=0;C3;F_2)
: S'il n'y a pas d'intance de D avant, on prend C de la ligne en cours, sinon F_2 (Là, je ne suis pas sûr de ce que doit être F_2).

Indirect(texte)
: transforme texte en une référence de cellule

Adresse(A;B)
: (A et B : nombres) renvoie l'adresse (en texte) de ligne A, colonne B
Ce qui donne pour F_2 :
INDIRECT(ADRESSE(F_1;5)) : renvoie la valeur de la cellule à la croisée de la ligne déterminée par F_1 et de la 5ème colonne(E)

(Pair(X)<>X) : renvoi 1 si X est impair et 0 si X est pair
Colonne(X) : renvoie le numéro de la colonne
SOMMEPROD((PAIR(COLONNE($G3:$CG3))<>COLONNE($G3:$CG3))*($G3:$CG3)) : Fait la somme des valeurs de la plage G:CG si le numéro de la colonne est impair

La formule donne :
s'il n'y a pas de valeur en D, alors ""
S'il D n'est pas vide :
s'il existe une instance de D dans les lignes du dessus, la valeur de E correspondant à la dernière occurrence, sinon la valeur de C,
diminuée de la somme des Valeurs (pourcentage exclu) des colonnes de C à CG
A+
 
Dernière édition:
Re : Recherchev sur la dernière valeur correspondante

Testé, ca fonctionne parfaitement sur mon fichier.
Merci beaucoup pour cette aide.
Oui, c'est le bordel dans mes formules je sais, je rajoutes des trucs petit à petit ce qui donne des trucs imbuvables. J'y serai pas arrivé seul vu mes connaissances. Mais bon, j'apprend.
En tout cas merci à toi, et félicitations, tu as très bien compris mon charabia et ce que je voulais 😛.
 
Re : Recherchev sur la dernière valeur correspondante

Salut Waydyn et le forum
Si ça fonctionne comme tu le souhaite, tant mieux.
Mais sur les forums, pour faire un sujet, essaies toujours d'expliquer, en français, le but. Avec, on peut essayer d'élaborer quelque chose, soit en formule, soit en macro. Sans, c'est plus complexe, voire impossible.
A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…