• ベストアンサー

Excel関数で休日出勤日数を計算

図のようなフォーマットで勤務表を作ってます。 C13セルからE15に関数を入れて、出勤者ごとに休日出勤する日数をカウントしたいです。 休出かそうでないかはB列で判断します。 B列に「休」と入っている日が休日で、休日が「休」でなかったら休日出勤です。 この例ではそれぞれ山田さんは0日、田中さんは1日、鈴木さんは3日の休日出勤があります。 C13セルからE15にどんな関数を入れたらいいでしょうか? このフォーマットはある程度変えてかまいません。 また作業用のセルもある程度使ってかまいません。 シンプルでわかりやすいやり方だとうれしいです。 よろしくお願いします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

こんばんは。 >休日が「休」でなかったら休日出勤です。 C13に =SUMPRODUCT(($B2:$B12="休")*(C2:C12<>"休")) と記入し、右にコピーします。

trap1130
質問者

お礼

とても早い回答ありがとうございました。

その他の回答 (4)

  • g00z
  • ベストアンサー率0% (0/1)
回答No.5

#3です。 質問の内容を間違えました。。 #3忘れて下さい(汗

回答No.4

配列数式ですが・・・ セルC13には =SUM(IF($B$2:$B$11>C2:C11,1,0)) の式を入れて「Ctrl」+「Shift」+「Enter」を押したのち、セルC15まで式をコピーします {=SUM(IF($B$2:$B$11>C2:C11,1,0))} ←式の前後に{}が入ります

trap1130
質問者

お礼

ありがとうございます。 どういう仕組みになっているのか理解できませんでしたが、正しく計算されてて驚きました。

  • g00z
  • ベストアンサー率0% (0/1)
回答No.3

C13へ =SUM(IF(($B$2:$B$11="休")*(C2:C11="休"),1,"")) をコピーして貼り付け 『Ctrl』+『Shift』+『Enter』 で求める日数がでます 貼り付けの際『#VALUE!』と出たらダブルクリックなどして 一度編集できる状態にしてから 『Ctrl』+『Shift』+『Enter』 あとは、D列E列・・・とコピーするだけ

trap1130
質問者

お礼

ありがとうございました

回答No.2

C13 =countifs($B2:$B11,"休",c2:c11,"<>休")  ……Excel2007以後 あるいは =sumproduct(($B2:$B11="休")*(C2:C11<>"休"))  ……Excel2003以前

trap1130
質問者

お礼

早い回答ありがとうございました。

関連するQ&A

  • EXCELで休日出勤を計算する

    お世話になります。 知恵をお貸しいただければ幸いです。 EXCELでひと月ごとのの出勤報告書を作っています。 そこで、休日(土、日、祝)出勤手当てを支払われる日が何日あるかを自動表示させようとしています。 今のシートの構成は A列:日付(2008/9/1の形で入力し、「1」のように表示 A5:A35) B列:曜日(A列から参照し、表示形式でaaaとし「月」のように表示) C列:休日(仕方なく手入力で「休」と入れている) D列:休日出勤したか判定(=IF(OR((C5>0)*(E5>0)),"休出","")C列とE列とも入力された場合に休日出勤とし「休出」と表示) E列:出勤した日はその日の仕事内容を入力 D列の最下部で「休出」が何回あるかカウント(=COUNTIF(D5:D35,"休出")) 祝日は関数が無いので、祝日一覧を作り該当する日付から祝日を割り出すのは分かったのですが。 =IF(WEEKDAY(A5)=1,"休","")&IF(WEEKDAY(A5)=7,"休","") よろしくお願いします。

  • 勤務態様の日数を計算

    B1~AJ1に日付 A2 A3 A4 A5と社員名を B2~BJ2に日ごとに 出勤 有給 休出などを入力する A10 A11 A12 A13に社員名を入れ B10~ 出勤 有給 休出などの1ヶ月の合計を出したいのですがどういう式を適用すればいいかご指導下さい。 よろしく御願いします。 ご参考に 例   A B   C  D E 1 1日 2日 3日 4日 2山田出勤 遅刻 有給 出勤 3田中有給 出勤 出勤 休出    出勤 休出 遅刻 有給 10山田 2 0 1 1 11田中 2 1 0 1 以上

  • EXCEL関数

       A      B        C     D    E 1 田中(東京) 合格   8/1      鈴木 2 山田(大阪) 不合格  8/1      田中  3 鈴木(京都) 合格   8/3      山田 4 山田(大阪) 合格   8/4      伊藤 たとえばA1からE4にこのような入力がされているとします。(D列はなにも入力されていません。) 山田さんが合格のときF列に日付を表示し、そうでなければ空白を表示するにはどうすればよろしいのでしょうか? この場合F4に「8/4」と入るはずなのですが、 =IF(A4=E3 & "*",IF(B4="合格",C4,""),"") という式では空白になってしまうのです。 どうすればよろしいでしょうか。式には"山田"と入力せず、E3と示したいです。 分かる方教えてください。 EXCEL2000を使っています。

  • Excel複数条件 日付について

    Excelで複数条件である文字列をカウントをしたいと思っています。 sheet1   A    B   C   D   E    G   H  1     10/1 10/2 10/3 10/4・・・11/1 11/2 2 鈴木 出勤                 出勤 3 佐藤     出勤          出勤 出勤 4 田中 出勤        出勤 sheet2   A  B   C 1    10月 11月 2 鈴木 1  1 3 佐藤 1  2 4 田中 2  0 sheet1の出勤した日をsheet2の月別に出勤の文字列をカウントしたいのですが 現在は10月のセルに=COUNTIF(sheet1!B2:E2,"出勤")、11月のセルに=COUNTIF(sheet1!G2:H2,"出勤")と入力しています。 これを名前と月を条件に出勤のカウントをとれる関数はありますでしょうか。 宜しくお願いいたします。

  • 勤怠で有給 遅刻 休日出勤などの日数を出したい

    下記のような表があったとします。 A    B  C   D  E   F~     1  2  3  4  5  ~31 Aさん 出勤 有給 出勤 休出 遅刻 Bさん 出勤 出勤 出勤    出勤 Cさん 特休 出勤 有給    欠勤 上の表から下記のように数字にしたいいのです。 A 出勤 15  有給  2  休出  1 B C という具合にしたいのですが誠に恐れ入りますがご指導していただけないでしょうか。 よろしく御願いします。

  • Excel2013で出勤簿・賃金計算書の作成

    Windows 8.1 Excel 2013で各月の出勤簿から賃金計算をしておりました。 これまでごOKWAVEで指導を頂きながら順調に出来ましたが、問題が発生致しました。 ここからが質問ですが、ご指導をお願い致します。 只今、作業中のExcelの表を掲載し説明を受けるのが筋ですが、Excelの表の掲載方法が判らないため長文になりますが文書にて質問させて頂きます。 Excelの表の各列・各行・セルの状況は下記の通りで、計算式(関数)が入っています。 7行目は項目が入っており、 A列は月日・B列は曜日・C列は始業時刻・D列は終業時刻・E列は休憩時間・F列は勤務時間 ・G列は時間内勤務時間・H列は時間外勤務時間・I列は時間内支給額・J列は時間外支給額となっています。 8行目から5月1日~38行目が5月31日となっています。 B列の曜日には、関数(=TEXT(A8,"aaa")(以下関数を示します)が入っており、A列に2016/5/1と入力すれば、自動的にB列に日曜日と表示されます。 C列・D列・E列の各セルの勤務時間は、手動で入力します。 F列の勤務時間には、5:00と入力し、=IF(COUNT(C9:D9)=2,D9-C9-E9,0) G列の時間内勤務時間には、12:00と入力し、=IF(B9="日",0,MIN($F$45,F9))保護あり H列の時間外勤務時間には、=F9-G9保護あり I列の時間内支給額には、=G9*24*$E$42保護あり J列の時間外支給額には、=IF(B9="日",H9*24*$E$43,H9*24*$E$44) 保護あり A列・B列は入力後、保護する。 C列・D列・E列は保護せず、手入力のみです。 それ以外は、関数が入っているので保護あり 40行以降は、セルごとに関数が入っています。 C41セルに全勤務労働時間として、=SUM($F$8:$F$38) F41セルに全勤務労働時間として、=SUM($F$8:$F$38) C42セルに定時労働時間として、=SUM($G$8:$G$38) G42セルに定時労働時間として、=SUM($G$8:$G$38) I42セルに時間内支給額として、=SUM($I$8:$I$38) C43セルに休日労働時間として、 H43セルに時間外勤務時間として、=$C$43 J43セルに時間外支給額として、=SUMIF($B$8:$B$38,$D$43,$J$8:$J$38) C44セルに早出労働時間として、=SUM($H$8:$H$38)-$C$43 H44セルに時間外勤務時間として、=SUM($H$8:$H$38)-H43 J44セルに時間外支給額として、=SUM($J$8:$J$38)-$J$43 C45セルに勤労日数として、=COUNT($C$8:$C$38) F45セルに契約時間として、固定で08:00 J45セルに定時労働時間支給額として、=I42 J46セルに休日労働時間支給額として、=J43 J47セルに早出労働時間支給額として、=J44 J48セルに総支給額合計として、=SUM(J45:J47) D43セルに休日労働時間検索のための、日 時給関係は、  E42セルに定時労働時間時給として、769円(変更があるので、保護せず)  E43セルに休日労働時間時給として、1,039円(変更があるので、保護せず)  E44セルに早出労働時間時給として、962円(変更があるので、保護せず) 現在、入力されている関数等は上記の通りです。 参考事項ですが、 日曜日以外は、平日の時給と同額で自動的に計算するように公式を入れていましたが、この度、祝日も日曜日と同額で計算するように関数を入れたいのですが、良い方法があればご指導をお願い致します。 勝手を申しますが、よろしくお願い致します。 説明不足で理解し難いかもしれませんが、よろしくお願い致します。 長文になりましたがご容赦下さい。 よろしくお願い致します。

  • EXCEL関数で条件を満たす個数

    EXCEL関数で条件を満たす個数をカウントしたいのですが、どのようにしたらよいのでしょうか?    A列 B列 C列 D列 E列 F列 G列 H列 ----------------------------------------------------------- 1行    目標 1日 2日 3日 4日 5日   目標達成日数 ----------------------------------------------------------- 2行 山田  5  2  4  1  6  3    1 ----------------------------------------------------------- 3行 佐藤  3  1  2  6  5  4    3 ----------------------------------------------------------- 4行 岩本  4  6  2  1  2  5    2 上記のような表を作成し、目標を達成している日数をカウント するには、どのような関数を使用すれば良いのでしょうか? (H列)に目標達成日数を表示したいです。 山田さんの場合、 目標(セルB2)5以上を満たす日は、4日(セルF2)の6だけなので 目標達成日数(セルH2)は1となります。 佐藤さんの場合、 目標(セルB3)3以上を満たす日は、 3日(セルE3)の6と 4日(セルF3)の5と 5日(セルG3)の4と 目標達成日数(セルH3)は3となります。

  • エクセル(excel)の計算式(関数)について

    エクセル(excel)の計算式(関数)でよいアイディアがありましたら教えてください。 1行目は項目行です。 セルA1から右に15列=セルO1まで、 a | b | c | d | e | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 と入っています。 2行目からデータとして、 セルA2から右に5列=セルE2まで、 4 | 2 | 2 | 1 | 1 と入力したとします。(データ例(1)) あるいは、 セルA3から右にセルE3まで、 6 | 3 | 0 | 0 | 0 と入力したとします。(データ例(2)) 1つのデータの5個の数字のルールは2つで、 「合計で10以下である。」 「左から順に小さくなるか、同じ数字となる。」 です。 (目的は、) このとき、F列からO列にかけて、 データ例(1)のケースでは、 a | a | a | a | b | b | c | c | d | e データ例(2)のケースでは、 a | a | a | a | a | a | b | b | b | と表示されるように、 つまり、項目行の下にある数だけ、その列の1行目の記号を 1(F列)から右に向かって順に埋めていくような、 F列からO列までの2行目以下に入れる適当な計算式(関数)は ないでしょうか。 拙い説明で申し訳ありません。どなたかよい考えをお持ちの方がいらっしゃいましたらと存じます。 どうぞよろしくお願い致します。

  • EXCEL関数について

    EXCEL関数について Sheet1、A1~A1000セルに「1~10」までの値がランダムに入力されております。 数字は「グループ1」、「グループ2」・・・という意味です。 B列、B1~B1000セルには「1~4」までの値がランダム入力されております。 B列については、空白のセルもあります。 Sheet2、A1~A10セルに、「1~10」までの値、「グループ1」~「グループ10」までが順に入力されております。 ここで、Sheet2、B列~E列、それぞれの1~10セルを使用し、、 それぞれの「グループ」がSheet1にて「1~4」の値をいくつずつ選んでいるか算出したいのです。 「グループ1」について、「1」のカウントはB1セル、「2」のカウントはC1のセルに返します。 同じように「グループ2」はB2~E2のセルに、「グループ3」はB3~E3のセルに値を返したいのです。 「COUNTIF」等の関数でいろいろと試してみたのですがうまく反映されません。 拙文乱文、大変恐縮ですが、ご教示頂きたく何卒宜しくお願い致します。

  • Excel2010 休日出勤を関数式で表示するには

    休日に出勤した日数を下記の図のごとく計算を考えています。 (1)には別セルの年月を参照して日にちを表示しています。 (2)には別シートにある休日表を参照して、休日を表示しています。 (3)は休日に出勤した担当者名です。 (4)は休日に出勤した日数をカウントして表示させるエリアです。今、数値が入っていますが、これを関数式で表示させたいと思って、トライしていますがうまくいきません。 どなたか教えてください。

専門家に質問してみよう