Supposons que je veuille calculer la somme d'une colonne, puis soustrayez la somme d'une autre colonneMAISen n'utilisant que les valeurs d'une ligne donnée à la ligne actuelle (celle dans laquelle la formule réside).
Ainsi, dans un "langage personnalisé informel", il me faudrait quelque chose comme ceci:
Je suis dans C5 := (somme (A1: "A" + ROW ()) - somme (B1: "B" + ROW ()))
Comment puis-je écrire une expression correcte dans Excel pour cela?
Vous pouvez essayer d'utiliser INDIRECT
, qui accepte une référence de chaîne à une plage et renvoie la plage elle-même:
=SUM(INDIRECT("A1:A"&ROW()))-SUM(INDIRECT("B1:B"&ROW()))
Ici, nous commençons avec un 'stub' de "A1:A"
. Nous obtenons alors la ligne courante avec ROW()
(donc 5 dans cet exemple) et la concaténons avec notre stub, nous donnant INDIRECT("A1:A5")
. Puisque INDIRECT
retournera la plage référencée par son argument ("A1:A5"
ici), nous pouvons l'envelopper avec la formule SUM
pour obtenir le résultat (ce qui est identique à SUM(A1:A5)
). Nous faisons ensuite la même chose pour la colonne B
.
Je pense que vous pouvez regarder en arrière. Vous devez ancrer la première référence de cellule dans l'appel à SUM
à la première ligne, mais laissez la deuxième référence de cellule changer avec la ligne. Essayez ceci en cellule C1 :
=SUM(A$1:A1) - SUM(B$1:B1)
Maintenant, lorsque vous copiez cela dans la colonne, cela devient:
C2: = SUM (A $ 1: A2) - SUM (B $ 1: B2)
C3: = SUM (A $ 1: A3) - SUM (B $ 1: B3)
C4: = SUM (A $ 1: A4) - SUM (B $ 1: B4)
C5: = SUM (A $ 1: A5) - SUM (B $ 1: B5)
C5:= (SUM))-(SUM))
Essaye ça:
C5:= (SUM(INDIRECT("A1:A" & ROW()))-(SUM(INDIRECT("B1:B" & ROW()))