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

Fonction DECALER

ChristianR1

XLDnaute Nouveau
Bonjour à tous

J'ai un petit souci avec la fonction DECALER.
Peut-on utiliser plusieurs fois dans une formule, la fonction DECALER si on recherche une donnée en comparant plusieurs plages disjointes ?
Quand j'essaye, ça me renvoie #/NA
Merci par avance
Christian
 

Monique

Nous a quitté
Repose en paix
Re : Fonction DECALER

Bonjour,

Une autre proposition

Index(Plage B5:B9 décalée ou non ; Equiv(Résultat; C5:C9 décalée ou non ; 0))

Le nb de colonnes de décalage (0 ou 3), on l'a par :
=NB.SI(F$5:F$9;J5)*3
Si Nb.Si()=0, le résultat est 0 sinon 3

La plage des noms :
DECALER(B$5:B$9;0;NB.SI(F$5:F$9;J5)*3)

La plage des résultats :
=DECALER(C$5:C$9;0;NB.SI(F$5:F$9;J5)*3)

Le tout :
=INDEX(DECALER(B$5:B$9;0;NB.SI(F$5:F$9;J5)*3);EQUIV(J5;DECALER(C$5:C$9;0;NB.SI(F$5:F$9;J5)*3);0))
 

Pièces jointes

  • DecalerChristian.zip
    3.9 KB · Affichages: 44

chris

XLDnaute Barbatruc
Re : Fonction DECALER

Bonjour

Sauf erreur de ma part, je pense savoir qui est Christian R de Metz et si je ne me trompe pas il me reconnaitra.

Bienvenue parmi les Exceldiens.

J'avais vanté ce site et les formules imbattables de Monqiue : la preuve est là !
Celle de Jean-Marie me plait bien également.
Beau podium

Bon week.
 

Lord Nelson

XLDnaute Occasionnel
Re : Fonction DECALER

Bonsoir tout le monde,

J'arrive après la bagarre mais si cette proposition, sans décaler, peut faire avancer le schmilblik...

=SI(NB.SI($C$5:$C$9;J5)>0;INDEX($B$5:$B$9;EQUIV(J5;$C$5:$C$9;0));INDEX($E$5:$E$9;EQUIV(J5;$F$5:$F$9;0)))

J'aime bien tester la présence ou non de l'élément recherché avec NB.SI avant de lancer un RechercheV ou un Equiv, ça permet de ne pas se préoccuper des #NA.

A+
Horatio
 

Pièces jointes

  • Classement_Christian.xls
    18.5 KB · Affichages: 69
Dernière édition:

ChristianR1

XLDnaute Nouveau
Re : Fonction DECALER

A l'attention de Lord Nelson

Bonjour
Suite à ta réponse sur le classement de données, comment adapter ta formule si je travaille avec 3 tableaux qui contiennent des données (au lieu d'en avoir 2 comme dans l'exemple donné) ?
Le SI(NB.SI(....) semble ne pas fonctionner.
Merci d'avance
Christian
 

Jocelyn

XLDnaute Barbatruc
Re : Fonction DECALER

Bonjour le Forum,
Bonjour ChristianR1, Lord Nelson, JeanMarie, Monique, chris,

Hum hum que du beau monde ici

Alors petit passage sur la pointe des pieds. En fichier joint en reprenant le fichier de Lord Nelson un test avec 3 tableaux


Jocelyn
 

Pièces jointes

  • Classement_Christian.zip
    3.9 KB · Affichages: 29

chris

XLDnaute Barbatruc
Re : Fonction DECALER

Bonjour
Un poil plus court
=DECALER($B$4;EQUIV(K5;DECALER($C$4;1;SI(NB.SI($C$5:$C$9;K5);0;SI(NB.SI($F$5:$F$9;K5);1;2))*3;5;1);0);SI(NB.SI($C$5:$C$9;K5);0;SI(NB.SI($F$5:$F$9;K5);1;2))*3)
on peut nommer "ref" la formule
=SI(NB.SI($C$5:$C$9;K5);0;SI(NB.SI($F$5:$F$9;K5);1;2))
ce qui donne
=DECALER($B$4;EQUIV(K5;DECALER($C$4;1;ref*3;5;1);0);ref*3)
 

Monique

Nous a quitté
Repose en paix
Re : Fonction DECALER

Bonjour,

Avec SommeProd qui renvoie le n° de ligne et le n° de colonne
sur un nombre quelconque de tableaux.

Index ( Plage ; n° ligne ; n° colonne)
=INDEX(B$5:H$9;SOMMEPROD((C$5:I$9=K5)*LIGNE(C$5:I$9))-4;SOMMEPROD((C$5:I$9=K5)*COLONNE(C$5:I$9))-2)

Indirect ( Adresse ( Plage ; n° ligne ; n° colonne) )
=INDIRECT(ADRESSE(SOMMEPROD((C$5:I$9=K5)*LIGNE(C$5:I$9));SOMMEPROD((C$5:I$9=K5)*COLONNE(C$5:I$9))-1))

Une feuille à part dans le classeur :
s’il y a des ex aequo !
 

Pièces jointes

  • ClassementChristianV1.zip
    8 KB · Affichages: 51

chris

XLDnaute Barbatruc
Re : Fonction DECALER

Bonjour

Monique, chaque fois que j'essaye d'utiliser SOMMEPROD, fonction à laquelle tu m'as totalement convertie, en combinaison avec ligne ou colonne, je me plante.
Ça m'énerve ...

Je vais garder cet exemple : je vais bien finir par ne plus déraper sur ce cas d'utilisation.
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…