Formule Excel: copier la valeur de chaque nième colonne -

Table des matières

Formule générique

=OFFSET($C$5,0,(COLUMN(A8)*n)-1)

Sommaire

Pour copier des valeurs ou générer des références avec un modèle comme toutes les 3 colonnes, toutes les 5 colonnes, etc., vous pouvez utiliser une formule basée sur les fonctions OFFSET et COLUMN. Dans l'exemple illustré, la formule en C8 est:

=OFFSET($C$5,0,(COLUMN(A8)*3)-1)

Qui peut être copié sur la ligne 8 pour récupérer toutes les 3 valeurs de la ligne 5.

Explication

Dans Excel, vous ne pouvez pas facilement créer des formules qui ignorent les colonnes suivant un certain modèle, car les références dans la formule changeront automatiquement pour maintenir la relation entre la cellule source d'origine et la nouvelle cellule cible. Cependant, avec un peu de travail, il est possible de construire des références de formule qui suivront un modèle spécifique en utilisant la fonction OFFSET.

La fonction OFFSET est conçue pour créer des références à l'aide de "décalages" à partir d'une cellule de départ. Dans l'exemple illustré, la cellule de départ est C5, fournie à OFFSET en tant que référence absolue afin qu'elle ne change pas lorsque la formule est copiée:

=OFFSET($C$5

Pour l'argument rows, nous fournissons zéro, car nous voulons rester dans la même ligne. Pour l'argument des colonnes, nous utilisons une sous-formule pour calculer la valeur de décalage requise:

(COLUMN(A8)*3)-1

Nous utilisons A8 à l'intérieur de COLUMN pour renvoyer 1 (puisque A est la première colonne), puis multiplions par n (qui vaut 3 dans ce cas) pour obtenir 3.

Lorsque la formule est copiée sur la ligne de droite, la valeur renvoyée par COLUMN s'incrémente de 1, ce qui crée le «nième modèle».

À partir de 1

Si vous souhaitez commencer la copie à la première valeur, vous pouvez ajuster la formule comme ceci:

=OFFSET($C$5,0,(COLUMN(A11)-1)*3)

En soustrayant 1, on force un décalage de colonne de zéro dans la première formule.

Copier dans des lignes au lieu de colonnes

Pour copier des colonnes en lignes, vous pouvez modifier la formule comme ceci:

=OFFSET($C$5,0,(ROW(C1)*3)-1)

Ici, la fonction COLUMN a été remplacée par la fonction ROW et une référence à la première ligne de la colonne, de sorte que l'incrémentation fonctionne correctement lorsque la formule est copiée dans plusieurs lignes.

Articles intéressants...