Dans un calcul, comment remplacer la valeur d'une cellule vide par la première cellule non-vide au dessus

Delphine2688

XLDnaute Nouveau
Bonjour,

Je suis débutante en excel et me confronte à un problème que j’aimerai résoudre sans VBA.

Je recherche une formule à intégrer à un calcul pour que, lorsqu'une cellule est vide, la valeur à prendre est la première valeur trouvée au-dessus.

Je m'explique :
Les données sont volontairement remplies sur une ou plusieurs lignes selon s'il s'agit d'un composant simple ou d'un composant avec des sous-composants.
Les calculs en colonne L et N vont chercher des valeurs sur les lignes correspondantes mais devraient aller chercher "au-dessus" des lignes lorsque les cellules sont vides (cela concerne les colonnes D et I).

Voir le fichier ci-joint.

Merci pour votre aide !!

J'en profite pour remercier tous ceux qui participent au forum où j'ai déjà trouvé un bon nombre de solutions :)
 

Pièces jointes

  • Exemple valeur du dessus.xlsx
    65.4 KB · Affichages: 18

xUpsilon

XLDnaute Accro
Bonjour,

J'imagine que nos versions ne sont pas les mêmes, je n'arrive pas à afficher ton fichier correctement.

Bref, cela ne m'a pas l'air impossible, essaye avec une formule du genre
=SI(A2="";A1;B2)
Cette formule regarde si ta case est vide, si oui elle vaut alors la valeur de la case juste au dessus, si non elle prend alors la valeur que tu aurais entrée au préalable dans une banque de données fixe.

Dis moi si c'est ce que tu cherches, et si non ce qui ne va pas.

Bonne continuation
 

Delphine2688

XLDnaute Nouveau
Bonjour, Merci pour votre proposition.

Malheureusement il faudrait que j'imbrique une quantité trop grande de SI pour remonter encore au-dessus si la deuxième cellule est également vide, ect. Ca donnerai quelques chose comme SI(A5="";SI(A4="";SI(A3="";SI(A2="";A1;A2);A3);A4);A5), seulement pour 5 lignes

En pièce jointe le même fichier en version 97-2003 .xls
 

Pièces jointes

  • Exemple valeur du dessus.xls
    152.5 KB · Affichages: 4

xUpsilon

XLDnaute Accro

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Dans le fichier joint vous trouverez la formule suivante en N4:N16, les positions des $ sont importantes.

=SI(F4="";"";($O$3*(INDEX($I$3:$I4;EQUIV(9^9;$I$3:$I4))/100)+5))

J'ai laissé la décomposition de la formule Equiv et Index dans les colonnes O et P pour que vous voyiez ce qu'elles retourne et mieux comprendre.
A vous d'adapter pour l'autre colonne.

Votre formule originale avait le défaut d'ajouter 5 à "" si F4="" d'où #Valeur! : Si(F4="";"";calcul+5) et non Si(F4="";"";calcul)+5

Cordialement
 

Pièces jointes

  • Exemple valeur du dessus.xlsx
    67.8 KB · Affichages: 8

Delphine2688

XLDnaute Nouveau
Merci c'est super!!! Merci pour votre aide!
J'ai pu adapter la deuxième colonne sur le même principe :)
Bon les valeurs que trouve la fonction EQUIV dans la colonne O restent encore un mystère pour moi... mais j'espère comprendre en l'utilisant davantage

Bonne journée
 

Pièces jointes

  • Copie de Exemple valeur du dessus résolu.xlsx
    65.2 KB · Affichages: 5

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

EQUIV(9^9;$I$3:$I4) va chercher une grande valeur(numérique) Improbable de i3 à i4 pour en renvoyer sa position. Comme le troisième paramètre est omis cette fonction va renvoyer la dernière valeur numérique inférieure de la plage.
En étirant la formule vers le bas, la plage de recherche s'agrandit et deviendra de i3 à i4, i5,i6 etc... les $ sur $i$3 bloque le commencement de la recherche à i3.

Cordialement
 

Delphine2688

XLDnaute Nouveau
Bonjour,

EQUIV(9^9;$I$3:$I4) va chercher une grande valeur(numérique) Improbable de i3 à i4 pour en renvoyer sa position. Comme le troisième paramètre est omis cette fonction va renvoyer la dernière valeur numérique inférieure de la plage.
En étirant la formule vers le bas, la plage de recherche s'agrandit et deviendra de i3 à i4, i5,i6 etc... les $ sur $i$3 bloque le commencement de la recherche à i3.

Cordialement
Ok merci j'ai compris!
 

Discussions similaires