Faire référence à une cellule de la ligne précédente dans le même tableau dans Excel?

14

Comment puis-je référencer la cellule de

  • la Colorcolonne,
  • dans la rangée précédente,
  • de la même table,

d'une cellule du même tableau? Sans compter sur les numéros absolus de ligne / colonne de la feuille de calcul si possible.

Comme [[Color],-1]quelque chose ...

SuperDuck
la source

Réponses:

25

Si vous souhaitez utiliser le format de référence structuré, essayez

=OFFSET([@Colour],-1,0)

Vous pouvez également le faire sans utiliser de références structurées. Par exemple, dans la ligne 2 du tableau (la première ligne de données), entrez

=D1

... si "Couleur" est dans la colonne D. (Ajustez à votre situation). Ce dernier sera beaucoup plus rapide dans les grands ensembles de données, car Offset () est volatile et recalculera chaque fois que N'IMPORTE QUELLE cellule du classeur change. Cela peut avoir un impact considérable sur les performances.

teylyn
la source
2

Je crée presque toujours une colonne distincte dans ma table nommée "I" pour index, qui est numéroté 1,2,3,4 ... Ensuite, pour obtenir la valeur précédente, utilisez INDEX([Colour],[@I]-1).

Vous pouvez également la numéroter la colonne à partir de 0 et ajuster la formule en conséquence, car vous accédez presque toujours à la ligne précédente.

La OFFSETfonction volatile fait planter mes gros classeurs, je recommande donc d'éviter à tout prix.

user3575270
la source
Comment créez-vous l'index dans une table qui obtient tout le temps de nouvelles données? Manuellement? Ou avec une formule? Ce dernier serait le catch 22, non?
teylyn
@teylyn Je le fais normalement manuellement. Ceci est préférable pour moi car lorsque je trie les index de données ne changent pas. Je suis sûr que vous pouvez faire =ROW()-2
preuve de
1
Si vous utilisez une formule pour créer l'index, puis faites référence à cet index dans une autre formule, vous pouvez également imbriquer la formule de l'index dans la deuxième formule.
teylyn
Vous pourriez utiliser ROW() - ROW([#Headers]) - 1.
Solomon Ucko
2

Je sais que c'est un ancien post, mais comme j'avais besoin de quelque chose de similaire maintenant, je suis sûr que cela pourrait être utile à quelqu'un plus tard. Si vous avez besoin de faire une somme cumulée sur une colonne de table, par exemple:

  • La colonne 1 contient les données "revenu" (valeurs positives et négatives)
  • La colonne 2 est le "solde" du compte

Pour chaque ligne, vous devez ajouter le solde précédent (colonne 2, ligne précédente) et le revenu (colonne 1, ligne actuelle) pour calculer le solde actuel.

Une façon de le faire est d'utiliser cette formule dans la colonne 2, basée sur la réponse de teylyn:

=SUM([@Column1];OFFSET([@[Column2]];-1;0))

Cela gérera certaines erreurs survenues dans la première ligne

PUAR
la source