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 :confused:...

Je vais garder cet exemple : je vais bien finir par ne plus déraper sur ce cas d'utilisation. :p
 

Statistiques des forums

Discussions
312 843
Messages
2 092 759
Membres
105 526
dernier inscrit
Hiro