J'ai un tableur que je me sers de mon temps libre payé (PTO). Je cumule un certain nombre d’heures à chaque période de paie (que je connais à l’avance). Lorsque je prends du temps, j'ajoute une ligne et je garde un total cumulé.
Les données ressemblent généralement à ceci:
A B C D
+--------------------------------------
1|Date Accr Used Balance
2|start 20
3|Jan-7 4 24
4|Jan-12 8 16
5|Jan-21 4 20
6|Jan-28 4 16
7|Feb-4 4 8 12
8|Feb-18 4 16
9|Mar-3 4 20
La formule pour calculer le solde est essentiellement la suivante: prenez le solde précédent, ajoutez les heures accumulées et soustrayez les heures utilisées. Donc, dans D3, la formule est =D2+B3-C3
, dans D4, =D3+B4-C4
, etc. date avec activité.)
Lorsque je vais ajouter du temps libre, j'insère généralement une ligne pour la date à laquelle je prends l'heure (par exemple, si je prends du temps libre le 22 février, j'insérerais une ligne entre les lignes 8 et 9 ). Malheureusement, la formule de la ligne 10 (l'ancienne ligne 9) devient =D8+B10-C10
. Ce n'est pas la fin du monde, car je peux simplement remplir à nouveau automatiquement à partir des lignes ci-dessus. Cependant, parfois, j'ajoute un enregistrement à l'aide de l'application Google Sheets Android, et il n'est pas facile de le remplir automatiquement.
Je me demandais si je pouvais modifier la formule pour que l'insertion d'une ligne ne lui permette pas de s'ajuster de la sorte.
Je sais que je peux utiliser $
pour empêcher les références de changer, mais je devrais le faire pour chaque cellule, ce qui représente encore plus de travail.
Puis-je créer une formule qui fait ce qui suit?
{cell above} + {cell two to the left} - {cell one to the left}
La commande offset
fait ce que vous voulez: =offset(D3, -1, -2)
est la valeur 1 ligne au-dessus et deux colonnes à gauche de D3. Donc, votre formule pour D3 pourrait être
=offset(D3,-1,0) + offset(D3,0,-2) - offset(D3,0,-1)
Étendu au bas de la colonne, il effectuera les calculs prévus indépendamment des insertions de lignes.
Une alternative à l'utilisation de OFFSET est l'utilisation INDIRECT et la notation R1C1.
Remarque: pour le positionnement relatif, utilisez R [1] C [1].
La formule de D3 à D9 pourrait être:
=INDIRECT("R[-1]C[0]",FALSE)+INDIRECT("R[0]C[-2]",FALSE)-INDIRECT("R[0]C[-1]",FALSE)
Remarques: pour le meilleur ou pour le pire, les références ne changeront pas si de nouvelles lignes ou colonnes sont ajoutées.