La fonction Decaler() DECALER(référence;décalageNbLignes;décalageNbColonnes;hauteur;largeur)La fonction Decaler() permet de définir un champ variable.
Somme de n moisSur cet exemple, onveut calculer la somme des n premiers mois. Le nombre de mois est dans la cellule D2. =SOMME(DECALER(B2;0;0;D2;1))
Somme jusqu'au mois en coursEn N2: =SOMME(DECALER(B2;;;;MOIS(AUJOURDHUI()))) MFC: Variante: Le mois est choisi dans une liste En N2: =SOMME(DECALER(B2;;;;EQUIV($Q$2;$B$1:$M$1;0))) Somme des 6 derniers montantsEn C2: =SOMME(DECALER(A2;NBVAL(A:A)-7;0;6)) MFC: Liste déroulante dynamiqueSur l'exemple, la liste déroulante en B2 est alimentée
par la liste des services en colonne F. -Sélectionner B2 =DECALER($F$2;0;0;NBVAL($F:$F)-1) Récupération d'informationsUn onglet Produits contient les prix des
produits pour les mois 01,02,03,.. Si A1 contient le no de mois: Sans le no de Mois en A1:=DECALER(Produits!C3;;STXT(CELLULE("filename";A1);TROUVE("]";CELLULE("filename";A1))+1;99)-1) SommeSi et decalerOn veut la somme des colonnes B,C,D pour lesquelles les lignes contient X en colonne A. =SOMMEPROD(SOMME.SI(A2:A10;"x";DECALER(B2:B10;;{0;1;2}))) Transformation d'un tableauPlusieurs colonnes en 1 colonneEn F2: =DECALER(A$2;MOD(LIGNES($1:1)-1;LIGNES(champ));ENT((LIGNES($1:1)-1)/(LIGNES(champ)))) Plusieurs colonnes en 1 colonne En F2: =DECALER($A$2;ENT((LIGNES($1:1)-1)/3);(LIGNES($1:1)-1)-ENT((LIGNES($1:1)-1)/3)*3) Autre exempleEn F2: =DECALER($B$1;;MOD(LIGNES($1:1)-1;2)) En VBA Sub transpose() Autre exempleEn F1:=DECALER($A$2;(LIGNES($1:1)-1)*2;COLONNES($A:A)-1) Autre exempleEn D1:=DECALER($A$1;ENT((LIGNES($1:1))/2);) En G1:=DECALER($A$1;;ENT((LIGNES($1:1))/2)) Une colonne est transformée en plusieurs lignes En C1: =DECALER($A$1;(LIGNES(A$1:A1)-1)*4+COLONNES($A:A)-1;) Decaler
Colonne Ligne 1 colonne en 1 ligne :=DECALER($A$1;COLONNES($A:A)-1;0) Une colonne est transformée en plusieurs lignes: Bloc de 4, 1 ligne sur 2:=DECALER($A$1;(ENT(LIGNES(A$1:A1)-1))*(4/2)+(COLONNES($A:A)-1);0) Decaler
ligne colonne Transforme BD en colonneEn E1: =DECALER($A$1;;MOD(LIGNES($1:1)-1;3)) En VBA: Sub Essai() On regroupe des infos dispersées dans une colonne=DECALER($B$2;3*ENT((LIGNES($1:1)-1)/3);MOD(4*(LIGNES($1:1)-1);12)) Autre exempleTableau récapitulatif. =DECALER($C$1;(LIGNES($1:1)-1)*4+COLONNES($A:A)-1;) Transforme BD en tableauEn D2: =DECALER($A$2;(LIGNES($2:2)-1)*4;0) Autre exemple: En F2:=DECALER(A$2;(LIGNES($2:2)-1)*3;0) Autre exemple =DECALER($B$2;3-LIGNES($1:1);3-COLONNES($A:A)) Autre exemple: On veut transformer un tableau de 12 colonnes (2x6) en
tableau 2 colonnes. En B9: =DECALER($B$2;ENT((LIGNES($1:1)-1)/6);(LIGNES($1:1)-1)*2-ENT((LIGNES($1:1)-1)/6)*12) =DECALER($B$2;nb_lignes;nb_colonnes) Pour les 6 premières lignes du résultat: Avec une fonction personnalisée matricielle 2 lignes sont compactées sur 1 ligne =DECALER($A$1;ENT((COLONNE()-COLONNE($G$4))/4)+(LIGNE()-LIGNE($G$4))*2;MOD(COLONNE()-COLONNE($G$4);4)) Transforme Tableau en BD=DECALER(A$2;ENT((LIGNES($1:1)-1)/3);0) Autre exemple=DECALER(B$1;;ENT((LIGNES($1:1)-1)/7)) 2 Colonnes en 1 colonne=DECALER($A$2;((LIGNE()-1)/2)-MOD(LIGNE();2);MOD(LIGNE();2)) Lignes en colonne=DECALER($A$1;ENT((LIGNES($1:1)-1)/5);MOD((LIGNES($1:1)-1);5)) Transformation d'une ligne en colonne avec saut de colonne=DECALER($A$2;;LIGNES($1:1)-1+ENT((LIGNES($1:1)-1)/5)) Cumul au mois choisiOn veut le cumul des produits au mois choisi en A3. En C5:=SOMME(DECALER(objectifs;EQUIV(A5;produits;0)-1;0;1;EQUIV($A$3;mois;0))) Décalage de blocs dans une colonneOn veut décaler les blocs en colonne B -Sélectionner B7:J7
Moyenne des 3 meilleurs sur les 12 derniers mois:=MOYENNE(GRANDE.VALEUR(DECALER(B2;NBVAL(B:B)-13;0;12);{1.2.3})) MFC: =ET(LIGNE()>NBVAL(A:A)-12;LIGNE()<=NBVAL(A:A)) Sur cet exemple, nous affichons les ventes du commercial choisi en A2.
|
|