web-dev-qa-db-fra.com

Excel Définir une plage basée sur une valeur de cellule

Est-il possible de définir une plage basée sur une valeur donnée dans une cellule.

Ainsi, par exemple: Ma sélection est A1: A5 Ce sont cinq cellules. Est-il possible de laisser Excel le déterminer en définissant une valeur de cellule (telle que B1) sur 5.

Dans le but de facilement changer beaucoup de plages avec un changement dans une valeur de cellule. Donc, si je voudrais changer la valeur de la cellule (B1) à 6. La plage passera automatiquement à A1: A6

Encore plus spécifique, je voudrais le faire inversé.

Dernier exemple: la sélection doit être A6: A10 (il s’agit des cinq cellules). Dans B1, j'ai la valeur 5. Si je modifie la valeur de B1 en 6. La plage devrait passer à A5: A10

Quelqu'un pourrait-il m'aider ???

23
user3491168

Supposons que vous avez le numéro 1,2,3,4,5,6 dans les cellules A1, A2, A3, A4, A5 et A6, respectivement. dans la cellule A7, nous calculons la somme de A1: Ax. x est spécifié dans la cellule B1 (dans ce cas, x peut être un nombre quelconque compris entre 1 et 6). dans la cellule A7, vous pouvez écrire le formulaire suivant:

=SUM(A1:INDIRECT(CONCATENATE("A",B1)))

CONCATENATE vous donnera l'indice de la cellule Ax (si vous mettez 3 en B1, CONCATENATE ("A", B1)) donne A3).

INDIRECT convertir "A3" en index.

voir ce lien tiliser la valeur dans une cellule comme référence de cellule dans une formule?

15
Cici

Vous pouvez également utiliser OFFSET:

OFFSET($A$10,-$B$1+1,0,$B$1)

Il déplace la plage de 10 $ A de 1 B $ à 1 $ (devient 6 $ US (5 $ A)), puis redimensionne la plage à 1 $ B de rangées (devient 6 $ A: 6 $: 10 $ A (5 $ A: A $ 10))

5
Siphor

Voici une option. Il fonctionne en créant une INDIRECT(ADDRESS(...)) à partir de ROW et de COLUMN de la cellule de départ, A1, jusqu'à la ligne initiale + le nombre de lignes conservées dans B1.

SUM(INDIRECT(ADDRESS(ROW(A1),COLUMN(A1))):INDIRECT(ADDRESS(ROW(A1)+B1,COLUMN(A1))))

A1: est le début des données dans la colonne "A"

B1: est le nombre de lignes à additionner

2
jackal23

Basé sur la réponse de @Cici, je donne ici une solution plus générique:

= SOMME (INDIRECT (CONCATENATE (B1, C1)): INDIRECT (CONCATENATE (B2, C2)))

En version italienne d'Excel:

= SOMMA (INDIRETTO (CONCATENA (B1; C1)): INDIRETTO (CONCATENA (B2; C2)))

Où les cellules B1-C2 contiennent ces valeurs:

  • A, 1
  • A, 5

Vous pouvez modifier ces valeurs pour modifier la plage finale à votre guise.


Fractionnement de la formule en parties:

  • SUM (INDIRECT (CONCATENATE (B1, C1)): INDIRECT (CONCATENATE (B2, C2)))
  • CONCATENER (B1, C1) - le résultat est A1
  • INDIRECT (CONCATENATE (B1, C1)) - le résultat est la référence à A1

Par conséquent:

= SOMME (INDIRECT (CONCATENATE (B1, C1)): INDIRECT (CONCATENATE (B2, C2)))

résulte en

= SOMME (A1: A5)


Je vais écrire ici quelques mots-clés de référencement pour les utilisateurs italiens:

  • venez creer dinamicamente l'indirizzo di un intervallo dans Excel
  • formule à définir un intervalle dans Excel.

Cliquez sur la formule pour obtenir plus de détails sur chaque cas de la catégorie B1 à C2 sur le serveur Dell.

1
jumpjack

Cela devrait être proche de ce que vous cherchez pour votre premier exemple:

=SUM(INDIRECT("A1:A"&B1,TRUE))

Cela devrait être proche de ce que vous recherchez pour votre dernier exemple:

=SUM(INDIRECT("A"&1+B1&":A"&B1,TRUE))
1
Stepan1010