La fonction Decaler

Brigitte

XLDnaute Barbatruc
Re : La fonction Decaler

Bonjour,

Je t'invite à consulter l'aide en ligne d'excel sur cette fonction. Si ce n'est pas assez explicite, je vais essayer de te retrouver un classeur exemple que m'a fait chris (de ce forum et très douée) qui en donne un petit exemple parlant.

Si je t'oubliais, mets moi un mp pour me le rappeler.
 

ROGER2327

XLDnaute Barbatruc
Re : La fonction Decaler

Bonsoir à tous
Traduction de la fonction DECALER en VisualBasic pour Excel :
  1. Code:
    =DECALER(H9;3;2)
    correspond à
    Code:
    Range("H9").Offset(3, 2)
    (plage J12)
    _
    _
  2. Code:
    =DECALER(H9;0;0;4;5)
    correspond à
    Code:
    Range("H9").Resize(4, 5)
    (plage H9:L12)
    _
    _
  3. Code:
    =DECALER(H9;3;2;4;5)
    correspond à
    Code:
    Range("H9").Offset(3, 2).Resize(4, 5)
    (plage J12:N15)
Ce n'est pas le problème posé, mais ça peut servir...
Bonne nuit.
ROGER2327
 

chris

XLDnaute Barbatruc
Re : La fonction Decaler

Bonjour

Brigitte à dit:
Voici le petit fichier de chris... qui te donne un exemple, regarde les formules dans les cellules de la ligne 4 ou 5...

quelques précisons :
Dans cet exemple qu'on avait fait vite fait (d'où les valeurs négatives) je précise que la partie basse correspond aux dépenses réalisées chaque mois pour les projets qui démarrent tous à la même date.

L'intérêt ici de la fonction DECALER est de simplifier la saisie : on peut utiliser la fonction SOMME de façon simple mais c'est pas facile de viser les bonnes cellules et en plus si la durée change, la formule est fausse alors que DECALER simplifie la saisie et résout l'évolution éventuelle.
 

gnina1973

XLDnaute Occasionnel
Re : La fonction Decaler

Bjr Chris

Decidement j'ai du mal avec cette fonction, quand tu utilises ta fonction tu vas calculer quoi excatement ( les 5000 c quoi ?) , de plus je n'arrive pas à voir en quoi cela facilite la saisie cette fct ... bref je suis hors sujet total ......
Desole mais ce qui m'echappe c que j'ai un mal fou a voir son interet ?????????

merci
 

chris

XLDnaute Barbatruc
Re : La fonction Decaler

Re

Le but est de calculer le coût de chaque phase de chaque produit.
Les phases 1 et 2 n'ayant pas la même durée et étant différentes d'un produit à l'autre si on utilise SOMME de façon classique il faut faire

  • =SOMME(B7:B9) pour la phase 1 du produit 1
  • =SOMME(C7:C12) pour la phase 1 du produit 2
  • =SOMME(D7: D13) pour la phase 1 du produit 3
  • =SOMME(B10:B11) pour la phase 2 du produit 1
  • =SOMME(C13:C16) pour la phase 2 du produit 2
  • etc
donc pas très pratique car on ne peut pas copier les formules d'une cellule à l'autre et si une durée est modifiée il faut penser à changer une voire deux formules.
DECALER permet une formulation plus dynamique.

Cet exemple n'illustre que 2 cas d'utilisation (l'utilisation en cout1 et en cout2 est un peu différente) mais il y en plein d'autres.
 

gnina1973

XLDnaute Occasionnel
Re : La fonction Decaler

Bsr

Juste une autre question je reprends ta formule :

=SOMME(DECALER(B$7;;;B2;1))

je cherche à faire parler ta formule

- B$7 : est le point de depart

- ; ; ; : que signifie cette syntaxe

- idem pour B2 et 1 ?

merci pour tes lumieres
 

JeanMarie

XLDnaute Barbatruc
Re : La fonction Decaler

Bonjour tout le monde

Comme l'avait suggéré Brigitte, il faut commencer à lire l'aide en ligne de la fonction.
Ton post

me fait dire que tu ne l'as pas lu.

Elle n'est peut-être pas installée sur ta machine.

DECALER
Afficher tout
Masquer tout
Renvoie une référence à une plage qui correspond à un nombre déterminé de lignes et de colonnes d'une cellule ou plage de cellules. La référence qui est renvoyée peut être une cellule unique ou une plage de cellules. Vous pouvez spécifier le nombre de lignes et de colonnes à renvoyer.

Syntaxe

DECALER(réf;lignes;colonnes;hauteur;largeur)

réf est la référence par rapport à laquelle le décalage doit être opéré. L'argument réf doit être une référence à une cellule ou à une plage de cellules adjacentes ; sinon, la fonction DECALER renvoie la valeur d'erreur #VALEUR!.

lignes est le nombre de lignes vers le haut ou vers le bas dont la cellule supérieure gauche de la référence renvoyée doit être décalée. Si l'argument lignes est égal à 5, la cellule supérieure gauche de la référence est décalée de cinq lignes en dessous de la référence. L'argument lignes peut être positif (c'est-à-dire en dessous de la référence de départ) ou négatif (c'est-à-dire au-dessus de la référence de départ).

colonnes est le nombre de colonnes vers la droite ou vers la gauche dont la cellule supérieure gauche de la référence renvoyée doit être décalée. Si l'argument colonnes est égal à 5, la cellule supérieure gauche de la référence est décalée de cinq colonnes vers la droite par rapport à la référence. L'argument colonnes peut être positif (c'est-à-dire à droite de la référence de départ) ou négatif (c'est-à-dire à gauche de la référence de départ).

hauteur est la hauteur, exprimée en nombre de lignes que la référence renvoyée doit avoir. L'argument hauteur doit être un nombre positif.

largeur est la largeur, exprimée en nombre de colonnes que la référence renvoyée doit avoir. L'argument largeur doit être un nombre positif.

Notes

Si les arguments lignes et colonnes décalent la référence au-delà du bord de la feuille de calcul, la fonction DECALER renvoie la valeur d'erreur #REF!.

Si les arguments hauteur ou largeur sont omis, les valeurs par défaut des arguments hauteur et largeur sont celles de l'argument réf.

La fonction DECALER n'a pas pour rôle de décaler physiquement les cellules dans la feuille ni de modifier la sélection ; elle renvoie simplement une référence. La fonction DECALER peut être utilisée avec toutes les fonctions exigeant une référence comme argument. Par exemple, la formule SOMME(DECALER(C2;1;2;3;1)) calcule la valeur totale de la plage couvrant 3 lignes sur 1 colonne et se situant 1 ligne en dessous et 2 colonnes à droite de la cellule C2.

Exemple

L'exemple sera plus compréhensible si vous le copiez dans une feuille de calcul vide.

Procédure

1. Créez un classeur ou une feuille de calcul vide.
2. Sélectionnez l'exemple de la rubrique d'aide. Ne sélectionnez pas les en-têtes des lignes ou des colonnes.


Sélection d'un exemple de l'aide

3. Appuyez sur CTRL+C.
4. Dans la feuille de calcul, sélectionnez la cellule A1 et appuyez sur CTRL+V.
5. Pour passer de l'affichage des résultats à celui des formules permettant de renvoyer les résultats, appuyez sur CTRL+` (apostrophe), ou dans le menu Outils, pointez sur Audit des formules, puis cliquez sur Mode d'audit des formules.

Quelque exemple de formule
=DECALER(C3;2;3;1;1) Affiche la valeur contenue dans la cellule F5 (0)
=SOMME(DECALER(C3:E5;-1;0;3;3)) Totalise la plage C2:E4 (0)
=DECALER(C3:E5;0;-3;3;3) Renvoie une erreur, car la référence ne se trouve pas sur la feuille de calcul (#REF!)
Ce qui n'est pas dit dans l'aide

Hauteur, largeur ne doivent pas être égale à 0, ce qui est normal, une référence doit contenir au minimum 1 cellule. Ces deux arguments sont facultatif.

Cas d'utilisation de cette fonction.

1) Dans le cas d'une liste de validation, si celle-ci est évolutive, c'est-à-dire que les items peuvent évolués, tu as plusieurs possibilités :
- soit tu indiques une plage de cellules, contenant des cellules vides, ce qui évite de modifier la plage définie dans la boîte de dialogue.
- soit tu modifies à chaque évolution de tes items, les plages, donc tu as une maintenance à faire.
- soit tu utilises cette fonction, qui permet par calcul de déterminer la plage.

2) Tu as une énorme base de donnée, tu utilises la fonction SOMMEPROD, les temps de calculs sont importants. Cette base de données est triée par un critère, Cette falcultée de déterminer une plage de cellules, te permettra de diminuer les temps de calcul.

3) Quand on utilise la fonction SOMMEPROD, qui ne permet pas des plages entières (A:A) dans les arguments, et au lieu de définir une plage fixe, on utilise cette fonction.

4) Dans des formules matricielles utilisant la fonction SOUS.TOTAL. Il y a des exmples sur le forum. En gros elle permet de hacher ligne par ligne une plage de cellules pour permettre un contrôle.

Il y a certainement d'autres cas.

Fonction équivalente : INDIRECT(ADRESSE), INDEX

J'espère que ce complément d'informations cumulé aux exemples de formules données par JB, Roger, Chris, te permettra de te faire ta propre idée d'utilisation de cette fonction.

@+Jean-Marie
 

Discussions similaires

Statistiques des forums

Discussions
312 309
Messages
2 087 107
Membres
103 470
dernier inscrit
ali2020