ある日付から満何年経過しているか(つまり満年齢)を求めるケースについては別途紹介しています(こちら)が、ここではさらに(年未満の)満経過月数、そして月未満の経過日数を求めてみることとします。
右のようなテーブルを例としてみます。入会日から今日(システムの日付)までで満何年何か月と何日経過が経過しているのかを求めます。
クエリデザインです。
次のような列を設けます。
満経過月数を求める列
満月: DateDiff("m",[入会日],Now())+(Day([入会日])>Day(Now()))
満経過年数を求める列
満年: [満月]\12
※\がスラッシュとして表示されているかもしれません。
満経過月数(年未満の月数部分)を求める列
満年未満月: [満月] Mod 12
経過日数(月未満の日数部分)を求める列
月未満日: DateDiff("d",DateAdd("m",[満月],[入会日]),Now())
列名がちょっと雑だったかもしれません_ _)
満経過月数(「満月」列の値)を12で割った商(整数部分)が満経過年(年齢でいえば満年齢)です。また、同じものを12で割った余りが満経過月(年未満の部分)となります。
月未満の経過日数については、まずもとの日付に満経過月数を加えた日付を求め、その日付と今日(システムの日付)の日数の差を求めています。
システムの日付としてNow関数を用いているのは、Date関数より1文字短くできるというだけの理由です。
平成28年12月25日におけるデータシートビューです。
「5年8か月12日」などと表示したい場合は適宜「&」でつないでください。