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???
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?
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))
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))
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
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.
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.