
私はエクセル初心者です。以下は私のスプレッドシートの簡略版です:
start date end date eday duration
-21 4
12 0
begindate = "03/03/2020"
eday 列とduration 列、begindate の値に基づいて開始日と終了日を計算する数式を作成したいと思います。
start date = begindate + eday
end date = start date + duration
したがって、上記の例に数式を適用すると、次の結果が期待されます。
start date end date eday duration
02/11/2020 02/11/2020 -21 4
03/15/2020 03/19/2020 12 0
begindate は03/03/2020
常に同じになります。
数式は機能しましたが、フィルハンドルを使用すると数式が正しくコピーされません。
以下の質問について初心者に助けてください:
開始日付「03/03/2020」を保存するのに最適な場所はどこでしょうか - 別のワークシートですか? ハードコードしますか? 他にありますか?
開始日と終了日の計算式は何ですか?
列内のすべての行に数式をコピーするにはどうすればいいですか
どうもありがとうございます。
答え1
Excel の日付と時刻について最初に覚えておきたいのは、それらは実際には単なる数字であり、数値書式を使用して日付/時刻のように書式設定されているということです。今日の日付 (2019 年 9 月 7 日) は 43715 で、現在の時刻 (午前 12:20) は 0.14302083 です...
DATE()
、TODAY()
またはなどのマジックナンバー (基本的には 1900 年 1 月 1 日からの日数) を取得できるワークシート関数がありますNOW()
。
そのためには、あなたのエド列が でC
、データが行から始まる場合は2
、開始日式はA2
as=DATE(2020,3,3)+$C2
とあなたの終了日B2
式を として入力します=$A2+$D2
。これが最も簡単な方法です。
$C
絶対列参照 ( 、$A
、 )を使用して、コピー/貼り付けや入力の場所に関係なく、$D
Excel が常に列C
、 、 を参照するように強制していることに注意してください。A
また、相対行参照 ( ) を使用して、コピー/貼り付けや下方向への入力を行うと、行番号が入力の一部として変更される (つまり、行 では、数式は になります) ようにしています。この操作が必要なときもあれば、そうでないときもあるため、 と を試して、どのような結果になるかを確認してください。D
2
3
=$A3+$D3
$
$
おそらくあなたは元々開始日セルに値を入力し、数式で相対参照を使用して、下方向に入力すると、開始日変更されました。私の言う通りなら、絶対参照が必要になります開始日J
セル、たとえば列行にあった場合1
、数式は$J$1
ではなく になりますJ1
。
自信がついてきたら、より複雑な機能を使用して、より回復力のある、または構成可能なものにすることができます。たとえば、次のようになります。
あなたは名前マネージャー固定された定数の日付を保存するには、 という新しい名前を作成し
BeginDate
、その値を に設定します=DATE(2020,3,3)
。これで、 の開始日数式を に更新できA2
、=BeginDate+$C2
その固定値はどこでも使用されるようになります。4列の範囲を次のようにフォーマットすることができます。ヘッダー付き表、これにより、列参照の代わりにヘッダー名を使用できるようになります。範囲をテーブルとして書式設定すると、開始日列(
A2
)=BeginDate+[eday]
に入力して、終了日列(B2
)に を入力できます=[start date]+[duration]
。これは表なので、表が大きくなるにつれて、両方の数式が自動的に入力されます。次に、 の単純な数値書式を適用します。ショートデートあなたの開始日そして終了日列。値を入力していない場合は、
eday
またはduration
数式を変更することで、テーブルに計算された日付が表示されないようにすることができます。開始日より複雑なもの:=IF([eday]="", "", BeginDate+[eday])
...そして式を変えると終了日に:
=IF(OR([start date]="",[duration]=""), "", [start date]+[duration])