web-dev-qa-db-fra.com

Comment faire référence à une cellule lorsque l'adresse est dans une variable

Par exemple, dans une expression, au lieu d'écrire l'adresse A1, Comment puis-je écrire quelque chose comme: A(B1) avec B1 = 1.

25
Hoa Vu

Je pense qu'une autre façon d'expliquer ce que fait INDIRECT est la suivante:

Il transforme le texte en une plage, si cette plage est valide.

Par exemple. Si vous avez du texte A1, il fera référence à A1. Si vous avez le texte C2: C100, vous obtiendrez ceci comme plage.

Désormais, l'un des moyens les plus courants dans Excel pour générer du texte sous forme de plages est de concaténer. Ainsi, si vous concaténez A et 1 (CONCATENATE("A","1")), vous obtenez A1.

Et vous pouvez utiliser une référence dans ce concatenté. Disons que la cellule B1 contient 1.

=CONCATENATE("A",B1)

donne le texte A1.

Par conséquent, pour obtenir la cellule A1, vous pourriez utiliser:

=INDIRECT(CONCATENATE("A",B1))

Sauf que la fonction CONCATENATE() est maintenant un peu longue, mais ne vous inquiétez pas! Vous pouvez utiliser &:

=INDIRECT("A"&B1)

Fonctionne aussi bien.

Si vous avez quelque chose de plus complexe comme vous avez C dans A1 et 32 Dans B1, pour faire référence à la cellule C32, Vous pouvez faire:

=INDIRECT(A1&B1)

Ce qui donne =INDIRECT("C"&"32"), =INDIRECT("C32") et enfin =C32

33
Jerry

`INDIRECT 'est la fonction que vous devez utiliser.

De la documentation :

Syntaxe:

INDIRECTE (Réf; A1)

Ref représente une référence à une cellule ou une zone (sous forme de texte) pour laquelle retourner le contenu.

A1 (facultatif) - s'il est défini sur 0, la notation R1C1 est utilisée. Si ce paramètre est absent ou défini sur une autre valeur que 0, la notation A1 est utilisée.

Exemple

= INDIRECT (A1) est égal à 100 si A1 contient C108 comme référence et la cellule C108 contient une valeur de 100.

= SUM (INDIRECT ("a1:" & ADDRESS (1; 3))) totalise les cellules dans la zone de A1 jusqu'à la cellule avec le adresse définie par la ligne 1 et la colonne 3. Cela signifie que la zone A1: C1 est totalisée.

6
SeanC

= DÉCALAGE (B1, 0, 1)

OFFSET (référence, décalage de ligne, décalage de colonne, hauteur de zone par défaut à 1, largeur de zone par défaut à 1)

Exemple 1. Nous avons une table de multiplication et devons trouver la réponse pour une raison stupide avec OFFSET.

   A   B  C  D  E  F
1      1  2  3  4  5
     ---------------
2  1 | 1  2  3  4  5
3  2 | 2  4  6  8 10
4  3 | 3  6  9 12 15
5  4 | 4  8 12 16 20
6  5 | 5 10 15 20 25

Disons que nous avons besoin de 2x4 = OFFSET (A1, 2, 4) ou dans ce cas, la commutation des nombres fonctionne également bien = OFFSET (A1, 4, 2)

Exemple 2. Calculons la somme de tous les nombres de la table de multiplication précédente qui sont pour 2 ou plus. = SUM (OFFSET (A1, 2, 2, 4, 4))

3
mhv