
Excel で簡単な数式を作成するのに非常に苦労しています。生徒と現在の成績の表があるとします。スプレッドシートが作成された基準日から経過した時間を自動的に認識し、基準日から何年経過したかに基づいて各生徒の成績を 1 つずつ増やす数式が必要です。6 月 1 日が何回経過したかに基づいて成績を増やしたいのですが、それは夏休みが始まる時期で、生徒を次の学年と見なすことができるからです。
私が試したことと設定しているパラメータは次のとおりです。
学年を「未就学」から始めて、「就学前 3 年」、「就学前 4 年」、「幼稚園」、「1 年生」、「2 年生」、...「12 年生」、最後に「高校卒業」と表示できるようにしたいと思います。
各学年に整数値を割り当てて、整数値を増分できるようにしました。「未就学」に 1、「Pre-K 3」に 2 を割り当て、これを「高校卒業」が 17 になるまで繰り返します。
基本的に、スプレッドシートの作成時に、各生徒の現在の学年に対してこの基本値を割り当てています。
将来このスプレッドシートを開いたときに、作成日からどのくらいの時間が経過したか、つまり 6 月 1 日が何回経過したかを計算する数式を作成します。この回数は、各生徒の成績の整数を何回増やすかを表し、その回数は整数が表す文字列に反映されます。
Excel で何かを「増分」するのに問題があります。Excel にはこの機能が組み込まれていないようです。VBA の使用を避けようとしています。
簡単に言うと、次のようになります。
私のすべてのグレードの範囲は「グレード」と呼ばれます。
すべての成績の整数値の範囲は「Grade_Values」と呼ばれます。
私の生徒の基本成績の範囲は「Beginning_Grade」と呼ばれます。
私の基準日は 2024 年 1 月 1 日です。
答え1
まず、Excel (および他のすべてのスプレッドシート) は日付を「基準日」からの日数として保存し、同じ数字の小数部分は、関連する時刻がその日付の何日前であるかを指定します。基準日を表示するには、任意のセルに
a を入力し、 (CTRTL+1) を に変更します。0
Cell formatting
Date
https://help.libreoffice.org/latest/en-US/text/scalc/01/04060102.html- 日付と時刻に関連するすべての関数がリストされています。(Excel でも同じことが見つかるかどうかはわかりません)。
最初に試すオプションの方法 (十分な結果が得られる場合) は、次のとおりです。...
=INT( (TODAY()-A1) / 365.25 )
ここで、365.25 は、A1 に「開始日」があると仮定した場合の、1 年あたりの平均日数です。
これにより、日付間で経過した年数がわかります。
アプリケーションに必要な結果を得るには、少し調整する必要があるかもしれません。
負の値は「学校に通っていない」ことを示し、0 以上はその人がどの程度学校に通っているかを示します。
また、このTEXT()
関数は日付のカスタム(文字列)表現を提供できることに注意してください。これは、Cell formatting
showと同じ書式文字列を使用します。ここ。
少し考えれば、もっと正確な式が思いつくかもしれません(本当に必要な場合)。