2013-09-26 13 views
25

Okay, so habe ich ein Google-Formular, das Informationen in eine Tabelle Dumps. In jeder Zeile muss eine einfache Berechnung durchgeführt werden. Das Problem ist, ich kann nicht herausfinden, wie man es schafft, eine Formel in jeder neuen Zeile zu wiederholen, wenn neue Zeilen hinzugefügt werden.Machen Google-Tabelle Formel wiederholen Stufenlos

Ja ich weiß, wie das Ausfüllkästchen verwenden Formeln kopieren nach unten und was nicht, aber ich will es automatisch die Formel anstatt mich manuell kopieren hinzuzufügen.

Zum Beispiel das verwendet wird, um die Zeit zu verfolgen, um eine Zelle für In Time gibt es und eine Zelle für Out Time in jeder Zeile. Ich möchte eine Spalte Zeit damit verbracht genannt haben, die ihre in der Zeit von der aus der Zeit subtrahieren, um zu bestimmen, wie viel Zeit sie ausgegeben. Aber da es unendlich viele Reihen gibt, ist es für mich nicht praktisch, hineinzugehen und die Formel zu kopieren.

Wenn jemand eine Idee hat, würde ich es wirklich schätzen. Ich habe mich schon ewig umgesehen und alles, was ich jemals finden kann, sind Leute, die sagen, dass sie den Füllgriff benutzen müssen, um Formeln manuell zu kopieren, was ich nicht will.

Antwort

45

Sagen wir, die In Time Zellen in Spalte A sind, und Out Time Zellen in Spalte B sind, und Sie möchten Benötigte Zeit in Spalte C sein Setzen Sie diese Formel in Zelle C2 (unter der Annahme, A1, B1 und C1 enthalten Header, keine Daten):

=ARRAYFORMULA(B2:B - A2:A) 

ARRAYFORMULA die Funktion weist die Tabelle die enthaltenen Formel iterieren über die angegebenen Bereiche hinaus und eine Referenz ohne eine abschließende Zahl wie B2:B bezieht sich auf einen Bereich, der alle verbleibenden Zeilen in der Kalkulationstabelle enthält.

+2

Vielen Dank, dass ist genau das, was ich brauchte. Ich habe seit Monaten danach gesucht und konnte nie eine klare Antwort finden. Noch eine Frage, da die Array-Formel-Syntax mich immer noch ein bisschen auf die Palme bringt, wie ich eine if-Anweisung implementieren würde.Zum Beispiel möchte ich etwas wie IF (B2 = "?", "?", B2-A2) – slister

+3

Egal, ich fand es heraus = ARRAYFORMULA (IF (F2: F = "?", "?", F2: F - E2: E)) Danke, dass Sie mich in die richtige Richtung weisen. – slister

+0

@Brionius Wie kann ich anwenden = HTTPResponse Formel für die gesamte Spalte für alte und neue Daten? arrayformula funktioniert nicht für = HTTPResponse! . Ich möchte die Formel nicht manuell für die gesamte Spalte kopieren! – user1788736

5

aus irgendeinem Grund Wenn Sie ARRAYFORMULA schwierig zu verwenden, in Ihrer Situation, eine alternative Möglichkeit ist, erstellen Sie einen Spiegel der Tabelle auf einem anderen Blatt unter Verwendung einer Abfrage, die die Formeln hat geschrieben hinein finden.

z. wenn Sie Zahlen in den Spalten A und B und einer Formel, sie zusammen fügen:

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

Der Vorteil dieses Ansatzes ist, dass Sie oft werden Aggregation und Verdichtung auf Ihrer Formulardaten tun wollen, und Sie können töten zwei Fliegen mit einer Klappe, indem Sie das in derselben Abfrage tun, mit der Sie die Formeln anwenden.

Ich werde einen anderen Trick erwähnen, die in der Vergangenheit als nützlich erwiesen hat, wenn die Abfragesyntax von Google eine Lücke in der Funktionalität. Sie können tatsächlich eine Matrixformel auf die Daten anwenden, bevor Sie sie an die Abfragefunktion übergeben, wie in diesem folgenden Beispiel, dessen Ausgabe der vorherigen Abfrage entspricht.

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

Hinweis, wie die Spalten sind nicht mehr durch Buchstaben bezeichnet, aber von Col1, Col2 usw.

+0

Danke für den Abfragetrick @Tmdean, das ist gut zu wissen. – slister