32

さて、スプレッドシートに情報をダンプする Google フォームがあります。各行で、簡単な計算を行う必要があります。問題は、新しい行が追加されるたびに新しい行ごとに数式を繰り返す方法がわからないことです。

はい、フィル ハンドルを使用して数式をコピーする方法などは知っていますが、数式を手動でコピーするのではなく、数式を自動的に追加したいと考えています。

たとえば、これは時間を追跡するために使用されているため、各行にIn TimeのセルとOut Timeのセルがあります。滞在時間から滞在時間を差し引いて、彼らがどれだけの時間を費やしたかを判断する、Time Spentという列が必要です。しかし、無限の数の行があるため、数式をコピーするのは現実的ではありません。

誰かに何かアイデアがあれば、本当に感謝します。私は何年もの間見回してきましたが、フィルハンドルを使用して数式を手動でコピーするように言っている人だけを見つけることができましたが、これは私が望んでいるものではありません.

4

2 に答える 2

59

In Timeセルが列 A にあり、Out Timeセルが列 B にあり、経過時間を列 C に入れたいとしますこの数式をセル C2 に入力します (A1、B1、および C1 にはデータではなくヘッダーが含まれると仮定します) ):

=ARRAYFORMULA(B2:B - A2:A)

このARRAYFORMULA関数は、含まれる式を指定された範囲で反復するようにスプレッドシートに指示します。最後の数値のない参照B2:Bは、スプレッドシートの残りのすべての行を含む範囲を参照します。

于 2013-09-27T00:17:35.087 に答える
8

何らかの理由で arrayformula を自分の状況で使用するのが難しい場合、代わりのオプションは、数式が書き込まれたクエリを使用して、別のシートにテーブルのミラーを作成することです。

たとえば、列 A と B に数値があり、それらを合計する数式がある場合:

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

このアプローチの利点は、フォーム データに対して集計と要約を行うことがよくあることです。式を適用するために使用する同じクエリでそれを行うことにより、一石二鳥です。

Google のクエリ構文の機能にギャップがある場合に、過去に役立ったもう 1 つのトリックについて説明します。次の例のように、配列数式をクエリ関数に渡す前にデータに実際に適用できます。この例では、前のクエリと同等の出力が得られます。

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

列が文字ではなく、Col1、Col2 などで参照されるようになったことに注意してください。

于 2015-04-02T04:49:05.800 に答える