Excel définit une plage basée sur une valeur de la cellule

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

ainsi, par exemple: Ma sélection est A1: A5 qui sont cinq cellules. est-il possible de laisser excel déterminer ceci en fixant une valeur de cellule (comme B1) à 5.

il dans le but de changer facilement beaucoup de gammes avec un changement dans la valeur d'une cellule. Donc si je changeais la valeur de la cellule (B1) à 6. La plage passerait automatiquement à A1: A6

encore plus spécifique, je voudrais faire inversée.

dernier exemple: La sélection doit être A6:A10 (ce sont les cinq cellules). Dans B1 j'ai la valeur 5. Si je change la valeur de B1 en 6. La plage devrait passer à A5: A10

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

21
demandé sur user3491168 2014-04-03 00:38:15

6 réponses

dites que vous avez le numéro 1,2,3,4,5,6, dans les cellules A1, A2, A3, A4, A5, 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 n'importe quel nombre de 1 à 6). dans la cellule A7, vous pouvez écrire la formule suivante:

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

CONCATÉNATE vous donnera l'index de la cellule Ax (si vous mettez 3 dans B1, CONCATÉNATE ("A",B1)) donne A3).

conversion indirecte " A3 " en indice.

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

12
répondu Cici 2017-05-23 12:02:17

vous pouvez également utiliser OFFSET:

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

Il se déplace dans la plage $10$par $B$1-1 (devient $6$($A$5)) et puis redimensionne la gamme de $B$1 lignes ($A$6:$A$10 ($A$5:$A$10))

4
répondu Siphor 2014-04-02 21:02:33

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 cherchez pour votre dernier exemple:

=SUM(INDIRECT("A"&1+B1&":A"&B1,TRUE))
1
répondu Stepan1010 2014-04-02 21:05:24

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

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

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

B1 est le nombre de lignes à additionner

1
répondu jackal23 2016-07-17 01:05:43

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

= somme (indirecte (CONCATÉNATE (B1, C1)): indirecte (CONCATÉNATE (B2, C2))

dans la version italienne D'Excel:

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

où les cellules B1-C2 contiennent ces valeurs:

  • , 1
  • , 5

Vous pouvez changer ces valuese pour changer la gamme finale à wish.


fractionnement de la formule en parties:

  • somme (indirecte (CONCATÉNATE (B1, C1)): indirecte(CONCATÉNATE (B2,C2))
  • CONCATÉNATE (B1, C1) - résultat: A1
  • INDIRECT (CONCATENATE (B1, C1)) - résultat par référence à A1

D'où:

= Somme (indirecte (CONCATÉNATE (B1, C1)): indirecte(CONCATÉNATE (B2,C2))

résultats dans

= somme (A1: A5)


je vais écrire ici quelques mots clés SEO pour les utilisateurs Italiens:

  • come creare dinamicamente l'indirizzo di un intervallo in excel
  • formule pour definire de l'onu intervallo di celle dans excel.

Con la formula indicata qui sopra basta scrivere nelle caselle da B1 A C2 gli estremi dell'intervallo per vedelo cambiare dentro la formula stessa.

1
répondu jumpjack 2016-09-03 16:08:57

vieux post mais c'est exactement ce dont j'avais besoin, question simple, comment le changer pour compter colonne plutôt que la rangée. Merci à l'avance. Novice to Excel.

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

C'est-à-dire que mes données sont A1 B1 C1 D1 etc plutôt que A1 A2 A3 A4.

-1
répondu Matt 2018-02-07 23:56:47