• ベストアンサー

年度の表で月を判断する関数を知りたい

Excel2003で、下表のように、実施日を含む月(月内は済と判断)は「済」で、実施日後の月は「未」と判断する関数を作成したいです。年度の表なので1,2、3月は4月より後列なので 関数がわかりません。どうぞご教示ください。 実施日          4月5月・・・1月2月3月 2014/02/03 平成26年度 済 済 ・・・済 済 未       平成27年度 未 未 ・・・未 未 未

質問者が選んだベストアンサー

  • ベストアンサー
  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

4月5月・・・1月2月3月は、2013/4/30 2013/5/31 ・・・2014/1/31 2014/2/28 2014/3/31と記載して、これらのセルの書式を、ユーザー定義で "m"月" とした場合、 実施日と記載されたセルをA1として、C2セルに、 =IF(C$1<$A$2,"済","未")

ccdds
質問者

お礼

早速のご回答をありがとうございました。 そうかそうすれば良かったのですね。助かりました。

その他の回答 (4)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.5

 今仮に2014/02/03等の実施日が入力されているセルがA3セルであり、「4月」と入力されているセルがD2セルであるものとします。  又、「4月」~「3月」の月名や「平成26年度」等の年度は文字列データとして入力されているものとします。  その場合、まずD3セルに次の関数を入力して下さい。 =IF(ISERROR(FIND("年度",$C3)/SUBSTITUTE($C3,"年度","年1月1日")/DAY($A$3)+("1904年"&D$2&"1日")),"",IF(SUBSTITUTE($C3,"度",D$2&"1日")-DATE(YEAR($A$3)-(MONTH(D$2&"1日")<4),MONTH($A$3),1)<0,"未","済"))  次に、D3セルをコピーして、E3~O3のセル範囲に貼り付けて下さい。  次に、D3~O3のセル範囲をコピーして、D列~O列の4行目以下に貼り付けて下さい。  以上です。

ccdds
質問者

お礼

ありがとうございました。 丁寧にありがとうございました。

  • msMike
  • ベストアンサー率20% (364/1804)
回答No.4

添付図参照(見えるかな?) 1.書式を「ggge"年度"」に設定したセル B2 に日付 2014/1/1 を入力して、 __此れを[連続データ(年単位)]でオートフィル 2.書式を「G/標準"月"」に設定したセル C1 に数値 4 を入力して、此れを __ 1 を[増分値][とする[連続データ]としてズズーッと(セル N1 まで)オート __フィル 3.セル L1 以右に数値 1、2、3 を入力 4.セル C2 に次式を入力して、此れを右および下方にズズーッとオート __フィル __ =IF(DATE(YEAR($B2-2),COLUMN(D1),1)<$A$2,"済","未")

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.3

Excel 2002で検証してみました。 C1へ文字列の 4月 を入力して右へオートフィルコピーします。 B2へ日付の 2014/4/1 を入力し、書式をユーザー定義の [$-411]ggge"年度";@ にします。 B3はB2から下へコピーして、日付の値を 2015/4/1 に修正します。 C2へ次の数式を入力します。 =IF(DATE(YEAR($B2)+(SUBSTITUTE(C$1,"月","")*1<4)*1,SUBSTITUTE(C$1,"月",""),1)<=$A$2,"済","未") C2を右へN2までオートフィルコピーし、そのまま下へコピーしました。

ccdds
質問者

お礼

ありがとうございました。 できました。これも使えます。

  • dogs_cats
  • ベストアンサー率38% (278/717)
回答No.2

各年度の一覧表に対する関数処理は下記方法では如何でしょう。 添付画像参照 B2に西暦で2014/1/1 ユーザー定義書式 ggge"年度" B2をB3にコピー B3式(1年後の元号表示) =EDATE(B2,12) B3式を下方にコピーで1年毎の元号表示します。 月表示のC1~N1は整数で入力します。 ユーザー定義 0"月" (整数入力である事を理解して頂くため、ユーザー定義書式をわざ設定していません) C2式 =IF($A$2>=DATE(YEAR($B2)+INT(COLUMN()/12),C$1,"1"),"済","未") N2までオートフィル 下方へオートフィル 各月の月初(1日)よりA2の日付が過ぎていれば済とする。 例題では実施日が2014/2/3は4月年度開始月の場合は24年度となりますので、実施日を2015/2/3としました。 関数のINT(COLUMN()/12)で1月以降の年数を1年増加させています。 COLUMN()は関数の入力されてる列番号を取得します。C列の場合は3(A列が1で順番に数値が)12月は今回K列なのでCOLUMN()で得られる数値は11となります。 intは小数点以下を切り捨てます。 12月はint(11/12)となり、結果は0となり年数増加しません。 1月は列番号12です。int(12/12)で結果は1で年数増加します。2,3は分子が1増加するだけなので年数増加は1となります。 ユーザー定義書式 http://www.relief.jp/itnote/archives/003864.php

ccdds
質問者

お礼

ありがとうございました。できました。 早速使います。

関連するQ&A