365・LibreOfficeなどに関するメモ2022-04-06(Gスプレッドシート)日付が年度の何日目か求めるGoogleスプレッドシートGoogleスプレッドシートで、ある日付がその年度の何日目かを求める例です。単純なようで多くの要素を含んだ計算です。年度開始日(年度が4月始まりの場合4/1)を1日目とします。EDATE関数とDATE関数を組み合わせて、日付が年度の何日目なのかを求めることができます。具体的には「=日付-DATE(YEAR(EDATE(日付,-年度開始月+1)),年度開始月,0)」となります。手順まず年度が4月始まりである場合についてです。B列にいくつかの日付が入力されています。C3セルに次のような式を入力して下方にコピーし、B列の日付が年度の何日目(4月1日を1日目とする)にあたるのかを求めています。C3セル=B3-DATE(YEAR(EDATE(B3,-3)),4,0)まず「EDATE(B3,-3)」は「日付(B3)の3か月前の日付」です。これをYEAR関数で囲んだ「YEAR(EDATE(B3,-3))」は、「日付の3か月前の日付が属している年」であり、これはつまり年度を表す数(年度開始日が属する年)となります。DATE関数で囲んで「DATE(YEAR(EDATE(B3,-3)),4,0)」とすることで、年度開始日の前日つまり3月31日の日付が求められます。あとはこの日付を元の日付から差し引くことで、日付が年度の何日目なのかが求められます。年度の数字を求める部分については、次の記事でも紹介しています。www.officeisyours.comこちらの画像は、年度開始月をB3セルで指定させたうえで各日付が年度開始日から何日目なのかを求める例です。C6セルに次の式を入力して下方にコピーしています。C6セル=B6-DATE(YEAR(EDATE(B6,-B$3+1)),B$3,0)B3セルへの参照がコピーによりずれないように絶対参照($)を用いています。最初の例では年度開始月=4のケースを考えましたが、一般化すると「=日付-DATE(YEAR(EDATE(日付,-年度開始月+1)),年度開始月,0)」と表すことができ、日付と年度開始月をそれぞれセル参照で置き換えたものがこの式です。C6セルにARRAYFORMULA関数を用いた次のような式を入力すれば、5つの答えを一括して求める(表示させる)ことができます。式はやや長くなりますがセルのコピーがいらなくなり、絶対参照も省略できます。365はデスクトップ版、LibreOfficeは記事作成時の安定バージョンを用いた結果を示しています。サイトポリシー等についてはこちらをご覧ください。(1)検索スポンサーリンク引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。