• ベストアンサー

営業日数を自動計算をしたいのですが

エクセル2003を使っています。 シート1に営業日数、シート2~に表示形式の日付で1ヶ月分の日付を入力しています。 これをシート2~の1ヶ月分の営業日数を自動的にシート1に入力できるようにしたいです。 休みの日はセルをオレンジで塗りつぶしています。 何かいい方法はないでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.6

特定色で塗りつぶしてあるセルのカウント(全体から除く)なら、VBAで可能です。 ユーザ関数で設定すれば、計算は可能ですが、セルの色を変えても自動計算で反映されないところがやっかいですね。 (基本的に関数は値の計算なので、塗りつぶしの色を変えても自動的には呼び出されない) 以下、ユーザ関数の例です。 Function ColorCount(sn As String) As Long Dim sht As Worksheet, r As Long Const sColor = 46 '//休日の指定色(オレンジ) Const col = 1 '//色判定の対象列番号(1=A列) Set sht = Worksheets(sn) ColorCount = 0 For r = 1 To Cells(Rows.Count, col).End(xlUp).Row If Cells(r, col).Interior.ColorIndex <> sColor Then ColorCount = ColorCount + 1 Next r End Function *関数の引数は「シート名」になっており、このシートのA列(どこが日付か不明なのでとりあえずA列にしてあります)の使用列の中からオレンジ色(どの色か不明なのでカラーインデックス46と仮定)の塗りつぶしでない行の数を返します。 ただし、上に記したように、関数を設定した後で、シートの色塗りを変更したりしても自動計算されません。 これを多少なりとも解決するには、式で =$C$1*0+ColorCount("Sheet1") のような呼び出し方をしておいて、集計シートのC1(ダミーのセル)の値を変更してあげれば、再計算されます。(値は数字であれば何でもOK)

badboyvlo1
質問者

お礼

ありがとうございます。 難しいみたいですので手動で入力します。

その他の回答 (5)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.5

エクセルでは祝祭日を認識する事が難しいので、シート2~に営業日有無のフラグ列を設定し、事前に情報入力(仮に1を平日等)しておけば、 各シートの最終行で計数(SUM関数)した値を参照、又はシート1で直接フラグ列を計数した方が簡単と思いますが如何でしょうか。

badboyvlo1
質問者

お礼

ありがとうございます。 難しいみたいですので手動で入力します。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.4

質問をまとめると、シート2のある列に日付が縦にいれてあって、 休みの日の場合は、オレンジに塗りつぶしてある。 日付の中で、塗りつぶしてないセルの数を求めよ といった感じでしょうか。 残念ながら、エクセル2003ではセルの色を認識する関数がありません。 過去スレですが、マクロ、或いは4.0マクロを利用した方法です。 http://oshiete1.goo.ne.jp/qa4652961.html 参考になると思いますが、結構厄介です。

badboyvlo1
質問者

お礼

ありがとうございます。 難しいみたいですので手動で入力します。

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.3

休日が、不定休:土日が出勤であったり、平日が休日だったりした場合は実際に休日日か出勤日のカウントを行うことが必要になるかと思いますが、塗りつぶされたセル数のカウントは関数では実行できませんので、別のセルに休日であることを示す必要があります。 (●とか1とかの表記で) その上でSUMIF関数等で休日数をカウントして反映される方法ではいかがでしょうか。

badboyvlo1
質問者

お礼

ありがとうございます。 難しいみたいですので手動で入力します。

  • gyouda1114
  • ベストアンサー率37% (499/1320)
回答No.2

>シート2~の1ヶ月分の営業日数を自動的にシート1に入力できるようにしたいです。 シート2にどのように営業日が入力されていますか 例えば営業日に○をつけているとか >休みの日はセルをオレンジで塗りつぶしています。 休みの日を塗りつぶしているだけでは、そのセルを数えることはできませんのでシート2から営業日数を数えるのは難しいと思いますよ。

badboyvlo1
質問者

お礼

ありがとうございます。 難しいみたいですので手動で入力します。

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

=NETWORKDAYS(開始日,終了日,祝日) の感じで平日の日数をカウントすることが出来ます。 ここで言う「祝日」は、あらかじめ祝日を登録しておき、その登録しているセル範囲を指定することで計算されるようになります。

badboyvlo1
質問者

お礼

ありがとうございます。 難しいみたいですので手動で入力します。

関連するQ&A

  • EXCELで残りの日数を表示させたい

    EXCEL2010使用 各月ごと シート別 フォーマットを作成しております。 日付 は5/1と入力 表示形式で 日にちだけ表示 曜日 は日付のセルを参照させ 表示形式で 曜日を表示 別シートに営業 休日 日を”祝日”と名前を付けて、そこがピンク色になるように 条件付き書式を設定しています。 ここで本題、 残り日数というのを自動で算出できないでしょうか? 休みは 日曜、祝日 研修日などランダムでございます。 今は手入力で残り日数だけ入れています。

  • EXCELで残りの日数を表示させたい 2

    EXCEL2010使用 各月ごと シート別 フォーマットを作成しております。 日付 は5/1と入力 表示形式で 日にちだけ表示 曜日 は日付のセルを参照させ 表示形式で 曜日を表示 別シートに営業 休日 日を”祝日”と名前を付けて、そこがピンク色になるように 条件付き書式を設定しています。 ここで本題、 残り日数というのを自動で算出できないでしょうか? 休みは 日曜、祝日 研修日などランダムでございます。 今は手入力で残り日数だけ入れています。

  • エクセルで日付を自動入力したい…

    エクセル2003にて自動で日付、曜日が入力できる方法を教えください。 現在、日曜、祭日除く27(←MAX営業日数分)の日報の台紙シートを、12ファイル(12ヶ月分)作っています。 (1)A1のセルに日付   例;平成19年9月10日 (2)A2のセルに曜日   例;(月) (3)シート名に     例;10月 ←日付+曜日をこの形式。次は11火        という形式で日々入力しています。 シート一枚ずつに上記の作業をしています。         マクロや数式の設定等で手順を簡略化できませんでしょうか??? 毎日の作業なので効率化したく色々勉強したつもりですが改善できずに困っています。 わかる方教えて下さい。よろしくお願いします。

  • Excel97での、日数計算の仕方を教えて下さい。

    Excel97での、日数計算の仕方を教えて下さい。 例えば2001/9/1と入力すると、 別のセルに、その1ヶ月後の日付(2001/10/1)が 表示されるようにしたいんです。 どうすればいいのでしょうか。 また、一ヶ月後だけではなく 何日後、という計算方法も教えて下さい。

  • エクセルでの日数の計算

     こんばんは。エクセルで指定の日付から今日現在のに数を求めるやり方で分からないことがあり質問します。 ・A1のセルに今日の日付を、 =TODAY() と入れました。 ・A2のセルに指定日の日付(例えば2006/03/15)と入れました。 ・A3のセルに =DATEDIF(A2,$A$1,"D")と入れました。 A3のセルには指定日から今日までの日数が表示されます。  そこで質問ですが、A4のセルに指定日から今日の5日後の日数を、A5のセルに指定日から今日の5日前の日数を表示したいのですが、どの様に入力したらよいのか分かりません。やり方を教えてくださいお願いします。 

  • 日曜&祝日を除く7営業日後(EXCEL)

    EXCEL初心者です EXCEL2007(12.0.6654 5503)SP2を使用しております もしわかりましたら教えてください A   B    C     D 1 2012/6/1  2012/6/9    11日目  2012/6/21   2 2012/6/4  2012/6/12    9日目 3 2012/6/9  2012/6/18    4日目 (1)セルA列に日付がはいってます  セルB列にセルA列の7営業日後(日曜、祝日は休み。土曜日は営業)  を自動的に表示されるようにしたい (2)セルD1には今日の日付がはいってます  セルC列にB列の日付から今日まで何日経ったか、営業日の日数(日曜、祝日は休み。土曜日は営業)  で自動的に表示されるようにしたい 説明がわかりずらかったらすみません 補足しますのでその旨記載お願いします

  • Excelでの日数計算、表示の仕方

    Windows98、Microsoft Excel2000を使っています。 エクセルで料金計算のシートを作成していて、いつからいつまでという日数によって料金が違うので、日数を「2002/10/1」から「2002/10/5」までの「5日まで」というふうに計算して「5」という数字を表示させるようにしています。ここまではいいのですが、これが40日を過ぎるとさすがに「○日」という表示では分かりにくくなるので「1ヶ月まで」、「2ヵ月まで」と表示させたいのですが、出来るのでしょうか? 例えば、「2002/10/1」から「2002/12/1」までの「2ヶ月」というかんじで、今まで「何日」という日数を計算していたものを「何カ月」と出来ないでしょうか? “セルの書式設定→表示形式”のところで何かすればいいのでしょうか?? 説明がわかりにくいかもしれないのですが、宜しくお願いいたします。

  • エクセルに付いて

    エクセルで日誌をかいているのですが、シートを月日数分にして 1日目のシートに年・月・日を入力したら、自動で同じセルの所に月日数分の連続日付を入力出来ないでしょうか。 曜日も同じように入力したいのですが。(日付とセルの位置は違います)宜しくお願いします。

  • 日数を計算したい場合

    エクセル2000で、セルに日付けが入力してあり、日付と日付との間の日数を計算したい場合、どうすればいいのですか?日付の入力は2002/6/18と入力してあります。 よろしくお願いします。

  • VBAで月の日数を表示させたい

    EXCEL2000でVBAを作成しています。 シートのセルに =EOMONTH(T4,1) という公式がはいっています。表示は平成17年10月分になっています。 ここのセルの日付に応じて月日数を表示したいのです。 何をしたいかというと 単価×31(月の日数)の計算をするため月日数をセルに自動入力したいのです。 よろしくお願いします。

専門家に質問してみよう