• 締切済み

エクセル 平日の日数

エクセルで、年月を入力するだけで その入力された月の平日の日数(土日・祝日を除いた日数)が 自動に入力される方法ってありますか? つまりA2に『平成21年1月』と入力すると    A3に『20』と出てくる と、いう感じ。 さらに、年と月を違うセルに入力(年は年度もあり)した時はどうでしょうか? つまりA1に『平成20年度』    A2に『1月』    と入力すると    A3に『20』と出てくる。 と、いう感じです。 もしおわかりの方がいらっしゃいましたらぜひ教えてください。

みんなの回答

回答No.9

実に難しい問題です。 何が難しいかといえば、平日をどういうふうに定義するかという点です。 祝日決定のルールが、論理的に極めて複雑だからです。 また、春分の日や秋分の日は気象庁が毎年2月(ちょっと不確か)に翌年の春分の日や秋分の日を決定する規定(法律)になっています。 ということは、気象庁の春分の日や秋分の日を決定する仕組が解らなければ、08/01/29時点で09年の春分の日や秋分の日は不明です。 社会的に常識的な休日(盆休、年末年始休、その他独自の休日)の取扱も問題になります。 私の会社では、次の様にして平日(規定出勤日)を定義しています。 ○出勤不要日でない日を規定出勤日とする。  出勤不要日は、リストXXXに記載している日と、それ以外の土日  **リストXXXには、祝日・盆休(日付は毎年変わる)・年末年始休(日付は毎年変わる)・会社創立記念日を記述します。これを毎年手動にて作成しています。

回答No.8

実に難しい問題です。 何が難しいかといえば、平日をどういうふう定義するかという点です。 祝日決定のルールが、論理的に極めて複雑だからです。 また、春分の日や秋分の日は気象庁が毎年2月(ちょっと不確か)に翌年の春分の日や秋分の日を決定する規定(法律)になっています。 ということは、気象庁の春分の日や秋分の日を決定する仕組が解らなければ、08/01/29時点で09年の春分の日や秋分の日は不明です。 社会的に常識的な休日(盆休、年末年始休、その他独自の休日)の取扱も問題になります。 私の会社では、次の様にして平日(規定出勤日)を定義しています。 ○出勤不要日でない日を規定出勤日とする。  出勤不要日は、リストXXXに記載している日と、それ以外の土日  **リストXXXには、祝日・盆休(日付は毎年変わる)・年末年始休(日付は毎年変わる)・会社創立記念日を記述します。これを毎年作成します。

  • n_na_tto
  • ベストアンサー率70% (75/107)
回答No.7

ツール →アドイン →分析ツール にチェックを入れてください。

  • n_na_tto
  • ベストアンサー率70% (75/107)
回答No.6

前半 D1:D25に祝日リスト _______A__B_C______D_ _1_平成21年1月_20____2009/1/1_ _2_平成21年2月_19___2009/1/12_ _3____________2009/2/11_ 17___________2009/12/23_ B1 =NETWORKDAYS((A1&"1日")*1,EOMONTH((A1&"1日")*1,0),D$1:D$25) 下方向・↓ 後半 D1:D25に祝日リスト [平成以外の昭和などが入らなければもっと簡単ですが..] ______A__B__C_____D_ 1_平成20年度_1月_20__2009/1/1_ 2_平成20年度_2月_19_2009/1/12_ 3__平成21年_1月_20_2009/2/11_ 4__平成21年_2月_19_2009/3/20_ C1 =NETWORKDAYS(DATE(YEAR((SUBSTITUTE(A1,"度",)&B1&"1日")*1)+AND(RIGHT(A1)="度",LEFT(B1,FIND("月",B1)-1)*1<4),LEFT(B1,FIND("月",B1)-1)*1,1),EOMONTH(DATE(YEAR((SUBSTITUTE(A1,"度",)&B1&"1日")*1)+AND(RIGHT(A1)="度",LEFT(B1,FIND("月",B1)-1)*1<4),LEFT(B1,FIND("月",B1)-1)*1,1),0),D$1:D$25) 下方向・↓

  • kigoshi
  • ベストアンサー率46% (120/260)
回答No.5

これは、とりあえずVBAなしではまず無理でしょう(不可能ではないかもしれませんが)。 VBAを使ってもそんな簡単な話ではありません。 1)閏年を判別するためにグレゴリオ暦のルールを解っている必要があります。 http://koyomi.vis.ne.jp/directjp.cgi?http://koyomi.vis.ne.jp/reki_doc/doc_0300.htm 2)春分の日、秋分の日を知るために計算方法を押さえておかなければなりません。 http://koyomi.vis.ne.jp/directjp.cgi?http://koyomi.vis.ne.jp/syunbun.htm 3)国民の祝日、振替休日などを知るために「国民の祝日に関する法律」を知っている必要があります。 特に、過去の年月についても調べたいのであれば、この法律がいつどのように改正されたのかまでケアする必要があります。 http://ja.wikipedia.org/wiki/%E5%9B%BD%E6%B0%91%E3%81%AE%E7%A5%9D%E6%97%A5%E3%81%AB%E9%96%A2%E3%81%99%E3%82%8B%E6%B3%95%E5%BE%8B #1のご回答は、数年分のカレンダーがあらかじめ用意されていることが前提条件のように思います。 それが可能なのであれば、VLLOKUP関数等で解決できると思います。 しかし、何もないところから、年月だけをいれて平日の日数を求めるためには、上述の1)~3)を念頭にVBAを作成する必要があると思います。

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.4

WORKDAY関数、NETWORKDAY関数を使ってください  =WORKDAY(開始日,日数,祭日)  =NETWORKDAYS(開始日,終了日,祭日)  A1に開始日  B1に終了日  C1からC20に祭日 を入力した場合  =WORKDAY(A1,B1-A1,C1:C20)  =NETWORKDAYS(A1,B1,C1:C20) こんな感じで使います 【分析ツールアドイン】を組み込む必要がありますけどね 組み込み方が分からないのであれば諦めて VLOOKUP関数などを使ってください 日付の年月日を分けてセルに入力するのであれば、DATEVALUE関数を使って日付けを示すシリアル値に直しましょう  =DATEVALUE(日付文字列)  =DATEVALUE("平成20年1月20日")  =DATEVALUE(A1&A2&A3) などと使います

  • F_PAPA
  • ベストアンサー率40% (8/20)
回答No.3

まぁ、簡単(?)なのは、NETWORKDAYS関数でしょうか? 例えば、 A1セル=2009/1/1 A2セル=2009/1/31 と入力し、セルの書式設定を「ggge"年"m"月"」にしておく。 祝祭日をC1~C10セルあたりに入力しておく A3セルに =NETWORKDAYS(A1,A2,C1:C10) 1月1日と2日が祝祭日として登録してあれば「20」と返って来るはずですが。

回答No.2

ありません。 Excelでは日付や曜日を扱うことはできますが、祝日の概念は導入されていないためです。 もし祝日一覧のようなものを入れることができれば半自動化は可能でしょう。 土日だけであれば、4ないし5回ずつありますから、各月の日数(減算で求めるかDATEDIF関数を使うか)と月初めの曜日(WEEKDAY関数)を条件にIF文で判断して日数を求めることが可能かと思います。 また年と月は別のセルにしても同じセルにしても、文字列結合や抽出関数を使えば簡単に結合・分離できるので同じことです。減算で各月の日数を求めるなら、DATE関数の使いやすいように別々のセルに入力しておいた方が良いでしょう。 なお、Excelには年度の概念もなかったと思う(というか年度って組織によって異なりますよね?)ので、IF文等で対応(月が3以下なら年から1を減ずる)しかないかなと思います。

noname#77348
noname#77348
回答No.1

日数の表を作って、VLOOKUPとか、HLOOKUPとか、INDEXを使ってください。 これはヒントです。 「課題の丸投げ」は禁止行為ですので。 やってみれば簡単です。 もっともっと勉強しましょう。 以上

関連するQ&A

専門家に質問してみよう