2

各列/カテゴリについて、別のシートから過去 X 日間の値を集計するスプレッドシートがあります。

この X は、列/カテゴリごとに異なります。

これは私が現在提訴している方程式で、D$2 (集計したい日数) の値に応じて、最大で 1 週間分の値を集計します。(式は、人間が読みやすいように書式設定されています):

=               Daily!D15 
 + IF(D$2 >= 2, Daily!D14, 0)  
 + IF(D$2 >= 3, Daily!D13, 0) 
 + IF(D$2 >= 4, Daily!D12, 0)  
 + IF(D$2 >= 5, Daily!D11, 0) 
 + IF(D$2 >= 6, Daily!D10, 0)  
 + IF(D$2 >= 7, Daily!D9 , 0)

これは、1 ~ 7 日の範囲でのみ集計したい場合に限り、問題なく機能します。しかし、数式を変更せずに任意の日数を集計できるように、このスプレッドシートをアップグレードしたいと考えています。たとえば、99 個の IF ステートメントを含む数式を作成しなくても、100 日を集計できるようにしたいと考えています。

4

1 に答える 1

3

オフセットは本当に便利です。指定された参照に関連するセルの範囲を返します。あなたの例では、次を使用します:

=SUM(OFFSET(Daily!D15,0,0,-D$2,1))

説明: 参照から始めて、Daily!D150 行と 0 列をシフトしてから、D$2 行と 1 列の範囲を選択します。-D$2 は負であるため、範囲は下方ではなく上方に拡張されます。

最後の 2 つの引数 ('height' と 'width') はオプションです。省略した場合、返される範囲は指定した範囲と同じ寸法になります。実際、この場合、 を使用することができ=SUM(OFFSET(Daily!D15,0,0,-D$2))、1 列の幅は の幅によって暗示されDaily!D15ます。ただし、読みやすくするために、両方の次元を含めるか、どちらも含めないことをお勧めします。

于 2013-10-13T17:36:44.077 に答える