• ベストアンサー

日にちのカウント

1か月(添付 7月)の日曜日と祝日を除いた日数を セルE37にカウントしたいのでが教えてください。 関数のことはよく解らないので、説明を添えていただくとうれしいです。添付のカレンダーも教えて もらい作りました。宜しくお願いします。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.7

No.4・5です! ほんとぉ~っに!何度もごめんなさい。 前回の数式では終了日をB35セルにしていますので、小の月には対応できないと思います。 そこで前回までの方法と一緒ですが、終了日が大の月・小の月両方に対応できる数式にしてみました。 表示したいセルに =NETWORKDAYS(B5,MAX(B5:B35),H4:H19)+COUNTIF(C5:C35,"土") としてみてください。 数式の意味はNETWORKDAYS関数はNo.4で説明したとおりで、 終了日は表示されているシリアル値の最大値(月末)にしています。 (2月及び大の月の行数を考えると、MAX関数の範囲指定は最後の4行だけでも構いません) 尚、日付で表示されると思いますので数式を入力後、セルの表示形式は「標準」にしてください。 親の仇のように何度も顔を出して失礼しました。m(_ _)m

その他の回答 (6)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.6

A2:A32に2011年7月の1日ー31日の日付があるとします(日付シリアル値であること) 一方G1:G10とかに2011年の祝日日付を作っておきます。(日付シリアル値であること) =SUMPRODUCT((WEEKDAY(A2:A32)<>1)*1)-SUMPRODUCT((MONTH(G1:G5)=7)*1) で除く日曜27日から祝日1日を引いて26日になります。 G1:G5 2011/5/5 2011/5/6 2011/7/21 2011/9/15 以上は5,7,9月の祝日の1部で、手抜きしてます。 本当は1年間分でも祝日をG列に作っておくと良い。この表は毎年見直さないといけない苦しさはありますが、これ以外どうしようもないです。 また祝日は、表を使わないで、祝日を判定する関数など無く、これ以上スマートには行きません。別方法でWorkday関数を使うにしても、表のようなデータをユーザーが定義しないとダメです(世界各国違います)。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

NO.$です! たびたびごめんなさい! 投稿した後で大きな間違いに気づきました。 「土」の数をマイナスではなくプラスしなくてはいけませんでした。 NETWORKDAIS関数ですでに「土」の数は入っていなかったのでマイナスではなく、プラスです。 数式を =NETWORKDAYS(B5,B35,H4:H19)+COUNTIF(C5:C35,"土") に訂正してください。 何度も失礼しました。m(_ _)m

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんばんは! 土日・祝日を除いた日数をカウントする関数としてNETWORKDAYS関数というものがあります。 ※ 当方使用のExcel2003以前のバージョンですと メニュー → ツール → アドイン → 「分析ツール」にチェックを入れておく必要があります。 この関数を利用した一例です。 せっかく曜日まで表示するように関数でお考えのようですが、曜日のC列に一手間加えます。 B列がシリアル値だと思いますので、 C5セルに =IF(B5="","",TEXT(B5,"aaa")) という数式を入れオートフィルで下へコピーしておきます。 (○曜日まで表示したい場合は aaa の部分を aaaa とします) これで「土」の数がカウントできますので、 表示したいセルに =NETWORKDAYS(B5,B35,H4:H19)-COUNTIF(C5:C35,"土") としてみてはどうでしょうか? 尚、数式の意味は NETWORKDAYS(開始日,終了日,祝日) ← これで開始日~終了日の間の土日・祝日を除いた日数が表示されます。 (祝日データを空白にすれば、土日を除いた日数となります) それから「土」の数を引いています。 上記の数式の結果は当方の画面では「15」となっています。 参考になれば良いのですが・・・m(_ _)m

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

 B4:C35の表を使わずとも、B1セルとB2セルにおける年と月の指定さえあれば、次の関数で、日曜日と祝日を除いた日数を、求める事が出来ます。 =SUMPRODUCT((MONTH(DATE(SUBSTITUTE($B$1,"年",),SUBSTITUTE($B$2,"月",),ROW(INDIRECT("Z1:Z31"))))=SUBSTITUTE($B$2,"月",)+0)*(WEEKDAY(DATE(SUBSTITUTE($B$1,"年",),SUBSTITUTE($B$2,"月",),ROW(INDIRECT("Z1:Z31"))))>1)*(COUNTIF($H:$H,DATE(SUBSTITUTE($B$1,"年",),SUBSTITUTE($B$2,"月",),ROW(INDIRECT("Z1:Z31"))))=0))

  • hrt_shu
  • ベストアンサー率42% (27/64)
回答No.2

すいません、こちらのリンクでお願いします。 http://myb35.web.fc2.com/excel/sample.xlsx

0103mrtaro
質問者

お礼

カレンダーから日にちのカウントでご指導いただき、有難うございました。 リンクから見させていただきました換算表には、正直びっくりしました。 たいへんお手間を取らせてしまい、頭が下がります。 自分のような初心者には、たいへん勉強になる換算表です。 今後も別の形で利用し、参考にさせていただきます。 これからも、ご指導ご鞭撻を宜しくお願いいたします。

  • hrt_shu
  • ベストアンサー率42% (27/64)
回答No.1

こちらにサンプルプログラムをアップしておきました。 参考にしてください。

参考URL:
https://skydrive.live.com/?cid=80c1a8d480008788&permissionsChanged=1&id=80C1A8D480008788%21193#

関連するQ&A

専門家に質問してみよう