プロが教えるわが家の防犯対策術!

例えば
・2000年1月1日生まれの人が、2010年1月1日の時点では「小学○年生」
・2000年1月1日生まれの人が、2015年1月1日の時点では「高校○年生」
・2000年1月1日生まれの人が、2020年1月1日の時点では「大学○年生」
を求める関数を教えてください。(浪人等は考慮しなくて結構です。)

教えて!goo グレード

A 回答 (2件)

以下のページに方法論が記載されています。


これを使ってご自分でトライして下さい。
 
https://kokodane.com/2013_kan_025.htm
    • good
    • 0

こんにちは


>求める関数を教えてください
直接求める関数はありませんので関数を組み合わせる必要があります
リスト表を使用しない場合、長い(長いの定義は主観)数式になるのかなと思いますが
自身で考えるのに(学習であれば)良いロジックだと思います

手取り早くユーザー定義関数を作成するなんて方法もあります
一応、記します
ユーザー定義関数をご存知であれば使ってみてください
Public Function what_academic_year(fiscal_year As Integer, birthday As Date) As String
Const Academic_List As String = "未就学年齢,小学1年生,小学2年生,小学3年生,小学4年生,小学5年生,小学6年生,中学1年生,中学2年生,中学3年生,大学1年生,大学2年生,大学3年生,大学4年生,就学年齢外"
Dim n As Long
With Application
n = fiscal_year - Year(.EDate(birthday - 1, -3)) - 6
n = .Min(n, 14): n = .Max(n, 0)
End With
what_academic_year = Split(Academic_List, ",")(n)
End Function

Sub Register_what_academic_year()'ダイアログレジスタに登録
Application.MacroOptions Macro:="what_academic_year", Description:="引数 1 (対象年度)と 引数2(生年月日) で学年を調べる関数です。", _
Category:="ユーザー定義", ArgumentDescriptions:=Array("調べる年度: 整数", "生年月日 : 日付")
End Sub

投稿を躊躇しましたが、書いてしまったので・・
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

教えて!goo グレード

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング