web-dev-qa-db-ja.com

何かがかかる日数に基づいて日付を動的に変更する方法はありますか?

すべてのタスク、その所要時間、および期限を追跡するためのGoogleシートを作成しているとします。

Task                    |Number of days| Start Date | Date Done
Buy plane tickets       |       5      | 15.12.2019 | 20.12.2019
Reserve hotel           |       2      | 21.12.2019 | 23.12.2019
Prepare snacks for trip |       1      | 24.12.2019 | 25.12.2019
Go on trip              |      14      | 26.12.2019 | 10.01.2020

別のタスクが途中で追加された場合、Googleスプレッドシートで日付を動的に更新する方法はありますか?

レンタカーをプランに追加したいとします。5日かかります。グーグルシートに追加すると、シートがこれから自動的に更新される方法はありますか?

Task                    |Number of days| Start Date | Date Done
Buy plane tickets       |       5      | 15.12.2019 | 20.12.2019
Reserve hotel           |       2      | 21.12.2019 | 23.12.2019
Rent a car              |       5      | 24.12.2019 | 29.12.2019
Prepare snacks for trip |       1      | 24.12.2019 | 25.12.2019
Go on trip              |      14      | 26.12.2019 | 10.01.2020

これに?

Task                    |Number of days| Start Date | Date Done
Buy plane tickets       |       5      | 15.12.2019 | 20.12.2019
Reserve hotel           |       2      | 21.12.2019 | 23.12.2019
Rent a car              |       5      | 24.12.2019 | 29.12.2019
Prepare snacks for trip |       1      | **30.12.2019** | **31.12.2019**
Go on trip              |      14      | **01.01.2020** | **14.01.2020**

新しく導入されたタスクに基づいて、他のすべてのタスクを本質的に自動的に遅延させますか?

希望する動作の例を含むGoogleシートへのリンク

Googleスプレッドシートに方法がない場合、これを行うために知っている他のツールはありますか?

1
Mike Meyers

C4セルに貼り付け:

_=ARRAYFORMULA(QUERY(IF(B4:B=""; ;SUMIF(ROW(B3:B); "<="&ROW(B3:B); B3:B)+
 DATEVALUE(C3)); "where Col1 is not NULL"; 0)+ROW(INDIRECT("A1:A"&COUNTA(A4:A))))_

0


D3セルに貼り付け:

=ARRAYFORMULA(IF(LEN(A3:A); TO_DATE(C3:C+B3:B); ))

0

スプレッドシートのデモ

1
user0