web-dev-qa-db-fra.com

Faire répéter la formule de feuille de calcul Google à l'infini

D'accord, j'ai donc un formulaire Google qui transfère les informations dans une feuille de calcul. Sur chaque ligne, je dois faire un calcul simple. Le problème est que je ne peux pas trouver comment faire répéter une formule sur chaque nouvelle ligne à mesure que de nouvelles lignes sont ajoutées.

Oui, je sais comment utiliser la poignée de recopie pour copier les formules et ce qui ne l'est pas, mais je veux qu'il ajoute automatiquement la formule au lieu de la copier manuellement.

Par exemple, cela est utilisé pour suivre le temps, donc il y a une cellule pour Dans le temps et une cellule pour Temps d'arrêt sur chaque ligne. Je veux avoir une colonne appelée Temps passé qui soustraira leur temps d'entrée du temps de sortie pour déterminer combien de temps ils dépensé. Mais comme il y a un nombre infini de lignes, il n'est pas pratique pour moi d'entrer et de copier la formule.

Si quelqu'un a des idées, je l'apprécierais vraiment. Je regarde autour de moi depuis des siècles et tout ce que je peux trouver, ce sont des gens qui disent d'utiliser la poignée de remplissage pour copier manuellement les formules, ce qui n'est pas ce que je veux.

29
slister

Disons que les cellules Dans le temps sont dans la colonne A et ( Temps d'arrêt les cellules sont dans la colonne B, et vous voulez Temps passé être dans la colonne C. Mettez cette formule dans la cellule C2 (en supposant que A1, B1 et C1 contiennent des en-têtes, pas des données):

=ARRAYFORMULA(B2:B - A2:A)

La fonction ARRAYFORMULA demande à la feuille de calcul d'itérer la formule contenue sur les plages données et une référence sans nombre final comme B2:B fait référence à une plage qui contient toutes les lignes restantes de la feuille de calcul.

52
Brionius

Si, pour une raison quelconque, vous trouvez que les formules matricielles sont difficiles à utiliser dans votre situation, une autre option consiste à créer un miroir du tableau sur une autre feuille à l'aide d'une requête contenant les formules écrites.

Par exemple. si vous avez des nombres dans les colonnes A et B et une formule pour les additionner:

=query(Data!A:B, "select A, B, A + B")

L'avantage de cette approche est que vous souhaiterez souvent faire une agrégation et un résumé sur vos données de formulaire, et vous pouvez tuer deux oiseaux avec une pierre en le faisant dans la même requête que vous utilisez pour appliquer les formules.

Je mentionnerai une autre astuce qui a été utile dans le passé lorsque la syntaxe de requête de Google présente un manque de fonctionnalité. Vous pouvez réellement appliquer une formule matricielle aux données avant de la transmettre à la fonction de requête, comme dans l'exemple suivant, qui a une sortie équivalente à la requête précédente.

=query({Data!A:B, arrayformula(Data!A:A+Data!B:B)},
  "select Col1, Col2, Col3")

Notez que les colonnes ne sont plus référencées par lettre, mais par Col1, Col2, etc.

7
Tmdean