- ベストアンサー
出勤日を数える関数
カレンダー 1234567 89・・・・ という月曜から日曜までを1週間横長にしたものをエクセルで作成してあります これを使うことが前提です。 1、1か月のうち、土日祝は休みなので それをのぞいた日を集計 2、1か月のうち、出勤した日を集計 この二つを出したいと思っています。 また、一か月は16日~翌15日までです。 関数だけでできないでしょうか 別の場所に式をいれてもかまいません。 表の枠や文字に色をつけてもかまいません。 マクロはつかえないですし、使わない方向でお願いします。 可能な場合はコメントお願いいたします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
回答No.4の追加です。 補足を要請したのですが未だに補足がありませんので回答No.4に添付の画像のようなものとして勝手解釈の算出方法を提言します。 >1、1か月のうち、土日祝は休みなので、それをのぞいた日を集計 該当月の月曜日~金曜日(祝日を含む)の日数は次の数式で算出できます。 =COUNT(A4:E9) 祝日の日数はカレンダーの行毎に祝日一覧の列からSUMPRODUCT関数とCOUNTIF関数の組み合わせで集計します。 第1週目の数式は次のようになります。 =SUMPRODUCT((K$1:K$20=DATE(A$1,C$1,A4:E4))*(A4:E4>15)+(K$1:K$20=EOMONTH(DATE(A$1,C$1,1),0)+A4:E4)) 1ヶ月分は最大で第6週までになりますのでしてへオートフィルで下へコピーします。 作業用の列でI4:I10へ第1~6週の祝日が算出されるものとして土日祝日を除いた日数は次のようになります。 =COUNT(A4:E9)-SUM(I4:I10) >2、1か月のうち、出勤した日を集計 >表の枠や文字に色をつけてもかまいません。 Excelに標準で組み込まれた関数にはセルの文字色や罫線の種類等を検出できるものがありませんので集計できません。 但し、マクロ関数を使うことでセルの塗りつぶしの色を検出できる方法があるようです。 しかし、使い方がExcel初心者には理解できないと思いますので割愛させていただきます。(要請があれば追加で回答します)
その他の回答 (5)
- potatorooms
- ベストアンサー率28% (3506/12498)
〉カレンダー形式に表示した 補足ありがとうございます。 エクセルのカレンダー形式を把握されているということで、失礼しました。 以下、カレンダー形式で表示できているという前提で回答します。 エクセルには、表示に、日付関数があり、関数の分類に、カレンダー関数があります。 曜日を関数で求めたいなら、書式を日付で設定し直して、日付を入れ直してください。 http://proengineer.internous.co.jp/content/columnfeature/7422 表示形式で曜日を表示する方法です。 他に、デイ関数で曜日を求めることもできます。 数えるならこっちが向いていると思います。
お礼
ありがとうございます。
- bunjii
- ベストアンサー率43% (3589/8249)
>これを使うことが前提です。 年月の情報は何処に記載されていますか? また、当月16日から翌月15日としても曜日との位置関係は正しく入力されていますか? >関数だけでできないでしょうか できますよ。 数式については実際に使用している表を列記号(A、B、C等)と行番号(1、2、3等)を含めて提示してください。 例(添付画像の通り) A1=2017、B1="年"、C1=9、D1="月度” A2="勤務表" A3="月"、B3="火"、C3="水"、D3="木"、E3="金"、F3="土"、G3="日" A4=""、B4=""、C4=""、D4=""、E4=""、F4=16、G4=17 A5=18、B5=19、C5=20、・・中略・・F6=30、G6=1 A7=2、B7=3、・・中略・・E8=13、F8=14、G8=15 数式を提示すれば何も考えずに丸写しで利用するのでしょうから表の提示を待って数式を考えます。
お礼
ありがとうございます。
補足
関数を使いたいのは、集計です カレンダーを作成したいのではないです
- potatorooms
- ベストアンサー率28% (3506/12498)
日付が入っているのではなく、数字が入っているだけのものがある、ということですか? それだと、あなたの中ではカレンダーですが、エクセルにとっては単なる数字か文字の羅列したものです。 この認識であっていますか? だとしたら、曜日にする手段がないので、除外する数字か文字の羅列を別に付くって、カウントイフで数えることになると思います。
お礼
ありがとうございます。
補足
カレンダー形式に表示した、というだけです。 印刷をすればかれんだーになるというだけです。 数字が入っているだけの表です。 曜日にする手段というのはどういうものでしょうか。 下の2行がわかりません。
- aokii
- ベストアンサー率23% (5210/22062)
すみません。 記載の通りカレンダーはすでにできているのでしたら、どのようなカレンダーなのかによって、セルに記入する数式は異なります。 =NETWORKDAYS(A1,B1,休日) はカレンダーの作成方法ではなく日数計算の数式です。
お礼
ありがとうございます。
補足
カレンダーは、式がはいっているものを作成していましたが、 長すぎて編集ができないので、 そのまま上から数字を入力しました。 123と順番に手入力しています。 私が勝手に想像している計算式では 文字に色をつけるなどして、 本人の出勤日の赤だけを集計 総出勤日は、赤と休んでいる緑(土日祝をのぞく)を集計というものでした。 が、できそうにありませんでした。
- aokii
- ベストアンサー率23% (5210/22062)
その会社専用の休日が有る場合は、まずは会社専用の休日を含むカレンダーを作ることをお勧めします。 一か月が16日~翌15日まででしたら、 A1セルに開始日(例えば2017/9/16)、B1セルに終了日(例えば2017/10/15)、土日以外の休日のリストを「休日」という名前で定義し、C1セルに営業日数を表示させる場合です。 C1セルに =NETWORKDAYS(A1,B1,休日) なお、NETWORKDAYS関数が[関数の挿入]ダイアログなどに表示されないという場合、メニュー[ツール]-[アドイン]をクリックして[アドイン]ダイアログを表示させ、[分析ツール]チェックボックスをONにしてください。 以下参考(土日祝日の計算結果の検算にご利用ください) http://keisan.casio.jp/has10/SpecExec.cgi?path=01200000.%82%B1%82%E6%82%DD%82%CC%8Cv%8EZ%2F02000000.%93%FA%82%C9%82%BF%81E%97j%93%FA%2F11000100.%89c%8B%C6%93%FA%90%94%8Cv%8EZ%2Fdefault.xml
お礼
ありがとうございます。
補足
すみません。 ちょっと意味がわからなくて。 記載の通りカレンダーはすでにできています。 これは、カレンダーの作成方法ではないでしょうか? 必要なのは、日数計算です。
お礼
ありがとうございます。
補足
どちらか一つの集計ができただけでもよかったです。