Comment conserver un numéro de cellule dans une formule lors de l'ajout de lignes en haut


1

J'ai la formule suivante dans la cellule M8:

{=SUM((MOD(ROW(M$16:$M977)-ROW($M$16),4)=0)*(M$16:$M977))}

avec cette formule, obtenez le nombre total d’heures par semaine pour la colonne M de chaque quatrième ligne en regard de M16, tel que m16 + m20 + m24 + m28, etc. les informations les plus récentes sur le dessus. Lorsque vous ajoutez les quatre nouvelles lignes pour mes nouvelles données, la formule se présente comme suit:

{=SUM((MOD(ROW(M$20:$M977)-ROW($M$20),4)=0)*(M$20:$M977))}

Comment puis-je le faire pour commencer à toujours ajouter sur M16, car c’est là que seront mes nouvelles heures totales pour la nouvelle semaine.


Réponses:


0

Mettez la valeur de M16 au bas du fichier ou dans une cellule que vous ne déplacez pas! En fait, chaque fois que vous ajoutez une ligne, chaque référence à une cellule est automatiquement modifiée!


0

Tout d'abord, vous devriez changer cela en une SUMPRODUCTformule. Il ne nécessite pas que vous le saisissiez sous forme de formule matricielle et, à mon humble avis, il est plus facile à utiliser.

=SUMPRODUCT(M16:M977*(MOD(ROW(M16:M977)-ROW(M16),4)=0))

Pour éviter le comportement d'Excel lorsque vous insérez des lignes, je vous recommande de transformer vos données en tableau. (Insérer un ruban> Tableau) Il est très facile de référencer "toutes les données de cette zone" et il met à jour votre façon de voir lorsque le tableau devient plus grand ou plus petit. Dans ce cas, la formule ressemblerait à ceci:

=SUMPRODUCT(Table1[Hours]*(MOD(ROW(Table1[Hours])-ROW(Table1[[#Headers],[Hours]])-1,4)=0))

Si vous ne pouvez pas le transformer en table pour une raison quelconque, je vous recommande de créer une plage nommée et de la référencer à la place. La formule pour la plage nommée serait:

=OFFSET(Sheet3!$M$1,15,0,MATCH(9E+99,Sheet3!$M:$M)-15)

... et la formule la référant serait:

=SUMPRODUCT(rngHours*(MOD(ROW(rngHours)-ROW(OFFSET(rngHours,0,0,1,1)),4)=0))

... où rngHoursest le nom que vous avez donné à la plage nommée.


Si vous ne voulez vraiment pas utiliser de plages nommées, vous pouvez tout décomposer en une seule et même formule, mais cela va devenir compliqué, bien que sa fonction soit la suivante:

=SUMPRODUCT(OFFSET(Sheet3!$M$1,15,0,MATCH(9E+99,Sheet3!$M:$M)-15)*(MOD(ROW(OFFSET(Sheet3!$M$1,15,0,MATCH(9E+99,Sheet3!$M:$M)-15))-ROW(OFFSET(Sheet3!$M$1,15,0)),4)=0))
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.