Microsoft 365 Mettre cote à cote des données qui se situent sur des colonnes séparées de x fois

Lilidelavallée

XLDnaute Nouveau
Bonjour

Je suis nouvelle sur votre site et je cherche déséspéremment depuis des mois à faire l'opération que je vous joins.

J'ai des données "taux" toutes les 6 colonnes parce que le tableau sur lequel je bosse était mal fait à la base.

Je voudrais récupérer les données taux mois par mois en glissant pour étendre mon résultat, peut être avec la cellule décaler... Je n'y arrive pas.

Pouvez-vous m'aider s'il vous plait ?

Toutes mes excuses s'il y a déjà des explications. Je n'ai pas trouvé.
 

Pièces jointes

  • Classeur9.xlsx
    12.5 KB · Affichages: 7

mapomme

XLDnaute Barbatruc
Supporter XLD
Re,

Pourriez vous m'expliquer le coup de la sélection de la colonne -1 ?
VB:
=DECALER($H6;0;6 * (COLONNES($A:A)-1))

Cette formule est destinée à renvoyer la valeur de la cellule $H6 de 6 en 6.
Soit un décalage de colonnes de 0 puis 6 puis 12 puis 18, ...
Le décalage (qu'on nommera X) doit donc successivement valoir 0, 6, 12, 18, ...
La formule devient DECALER($H6;0;X)

Comment faire varier X de 6 en 6.
Le pas sera de 6 et vaudra 6*0, 6*1, 6*2, 6*3, ...
Il faut donc trouver un moyen ou une fonction qui commence à 0 et qui ensuite s'incrémentera de 1 à chaque copie vers la cellule à droite.
Pour cela, on va compter le nombre de colonnes depuis la colonne qu'on désigne par $A. La colonne A de départ est toujours la même d'où le $. Le $ va rendre la référence (colonne A) absolue. De ce fait, si $A intervient dans une formule, la copie vers la droite restera à $A.
L'astuce est de compter le nombre de colonnes à partir de la colonne $A. Pour cela, on utilise COLONNES($A:A) qui renvoie le nombre de colonnes contenu dans $A:A.
Quand on va copier cette formule vers la droite la formule devient successivement:
COLONNES($A:A) puis COLONNES($A:B) puis COLONNES($A:C) puis COLONNES($A : D), ...
ce qui donne: 1 puis 2 puis 3 puis 4 puis ...
Nous y sommes presque : On veut en fait partir de 0 et la formule fait débuter à 1.
Il faut retirer 1 de la formule pour obtenir 0, 1, 2, 3, ...
Soit COLONNES($A:A)-1 puis COLONNES($A:B)-1 puis COLONNES($A:C)-1 puis COLONNES($A: D)-1, ...

La première formule devient donc : DECALER($H6;0;X) avec X=6 * (COLONNES($A:A)-1)
(COLONNES($A:A)-1) variant de un par un à partir de 0, 6*(COLONNES($A:A)-1) va varier de 6 à partir de 0.

Le -1 sert donc à débuter la série à 0.
 

Lilidelavallée

XLDnaute Nouveau
Je me reconnecte sur mon PC du bureau à 22H un vendredi pour vous remercier. L'explication est limpide et je pense que je vais pouvoir ré-utiliser l'astuce.
Un grand merci pour avoir pris le temps.
PS : c'est un truc hyper simple sur excel ou ça devient un peu compliqué là ? Je me rends compte qu'en entreprise nous en avons une utilisation plus que limitée, c'est dommage.
 

Discussions similaires

Statistiques des forums

Discussions
312 038
Messages
2 084 824
Membres
102 681
dernier inscrit
racsam77