![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
office2007を使用しています。
上司に週間で出勤日数と勤務時間を報告することになりました。
今までは月間の勤務時間と日数を報告するだけでよかったので、
単純に時間は入力した値をsum関数で、日数は入力された時間のセルをcount関数で足し算、と集計していました。
今後は指定した期間(曜日で集計し、1日~末締めのため毎月変動する)の時間と日数を報告します。
期間の日付は
時間は累計した値から2週目なら1週目の値を引き算、3週目は2週目と1週目の値を引き算・・・
で求められました。
では、日数のカウントはどうすればよいんでしょうか?
count関数を使ってできるんでしょうか?
よろしくお願いいたします。
![「Excelで特定の期間の出勤日数を割り出」の質問画像](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/a/1161600_5497da913bf90/M.jpg)
No.2ベストアンサー
- 回答日時:
お示しの表が有るとしてA2セルには該当する年月を表示させることにして今年の12月でしたら2012年12月と入力します。
パソコンは自動的に判断して2012/12/1と表示されます。A2セルを右クリックして「セルの書式設定」から「表示形式」の「ユーザー定義」で種類の窓に yyyy"年"mm"月" と入力してください。2012年12月と表示されます。B3セルとB4セルは結合セルで1と入力し、C3セルとC4セルには2と入力します。
二つの結合セルを選択してからAF3セルまで右横方向にドラッグコピーします。これで1から31までが表示されます。
5行目から下方には実際の時間が入力されることになりますね。
解析結果の表示ですがAG3セルには日数、AH3セルには時間数と入力します。
AG5セルには次の式を入力して下方にドラッグコピーします。
=IF(COUNT(B5:AF5)=0,"",COUNT(B5:AF5))
AH5セルには次の式を入力したのちに「セルの表示形式」の「表示形式」でユーザー定義」にして種類の窓には [h]:mm と入力してOKします。その後に下方にドラッグコピーします。
=IF(AG5="","",SUM(B5:AF5))
AI2セルには第1週と入力してからAI2セルとAJ2セルを結合セルとします。その後にAS2セルまで右横方向にドラッグコピーします。第6週までが表示されます。
AI3セルには次の式を入力してAT3セルまでドラッグコピーします。
=IF($A$2="","",IF(COLUMN(A1)=1,1,IF(IF(MOD(COLUMN(A1),2)=0,7*ROUNDUP(COLUMN(A1)/2,0)-WEEKDAY($A$2)+1,7*ROUNDUP(COLUMN(A1)/2,0)-WEEKDAY($A$2)-5)>DAY(DATE(YEAR($A$2),MONTH($A$2)+1,0)),IF(OR(AH3="",AH3=DAY(DATE(YEAR($A$2),MONTH($A$2)+1,0))),"",DAY(DATE(YEAR($A$2),MONTH($A$2)+1,0))),IF(MOD(COLUMN(A1),2)=0,7*ROUNDUP(COLUMN(A1)/2,0)-WEEKDAY($A$2)+1,7*ROUNDUP(COLUMN(A1)/2,0)-WEEKDAY($A$2)-5))))
これで週の初めの日と終わりの日にちが交互に表示されます。月の最終日までが表示されます。
AI4セルには日数、AJ4セルには時間と入力してからAI4セルとAJ4セルを選択して右横方向にドラッグコピーします。
AI5セルには次の式を入力してAJ5セルまで隣にドラッグコピーします。
=IF(OR($AH5="",AI$3=""),"",IF(MOD(COLUMN(A1),2)=1,COUNT(INDEX($B5:$AF5,MATCH(AI$3,$B$3:$AF$3,0)):INDEX($B5:$AF5,MATCH(AJ$3,$B$3:$AF$3,0))),SUM(INDEX($B5:$AF5,MATCH(AH$3,$B$3:$AF$3,0)):INDEX($B5:$AF5,MATCH(AI$3,$B$3:$AF$3,0)))))
AJ5セルを選択してから「セルの表示形式」で「ユーザー定義」の「種類」の窓には [h]:mm と入力してOKします。
AI5セルとAJ5セルを選択してから右横方向にドラッグコピーすれば完成です。
ありがとうございます。
悩んだ挙句自力でcountifとoffsetを使う方法を発見しました。
=COUNTIF((OFFSET($C$6,0,0,1,BR4)),">0")
で、できました。
へたくそな説明に丁寧にご説明いただいたのでBAにさせて頂きます。
No.3
- 回答日時:
回答No2です。
最後の文章では次のように下方へのドラッグコピーを書き忘れました。一度こちらが指定した通りで新しいシートで試験してください。AI5セルとAJ5セルを選択してから右横方向にドラッグコピーしたのちに下方にもドラッグコピーすれば完成です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 求人情報・採用情報 月単位、週40時間の変形労働時間制で、 日曜祝日土曜半日の固定休+シフト制(平日一日)の企業の場合、 1 2023/08/10 23:43
- Excel(エクセル) EXCELピボットテーブル関数について 2 2023/04/10 20:35
- 労働相談 有給の計算について 3 2023/05/20 13:11
- Excel(エクセル) TEXT関数(負の値)を集計のため数値に変換したい 5 2022/05/15 23:04
- Excel(エクセル) マクロ/VBAについて教えてください。 10 2022/05/27 12:59
- Visual Basic(VBA) VBAで時間(00:00形式)を積算(足し算)したい 1 2022/11/15 17:04
- Excel(エクセル) Excelの関数で可能でしょうか、日付や式の値の自動更新 4 2023/05/19 17:17
- Excel(エクセル) EXCEL値貼り付け(ある条件のもと自動化) 5 2023/06/06 12:21
- 所得・給料・お小遣い 週休3日制のシフト制の日割り計算を教えてください。 給与 22万(総支給) 週休3日制 10時間勤務 1 2022/05/25 07:54
- Excel(エクセル) セルに特定の色が出た時だけ、式を発動させたい 4 2022/06/17 10:32
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで表
-
【マクロ】for next構文について
-
職場の人から聞かれており、こ...
-
ユーザー定義関数をアドイン登...
-
PDFの請求明細をエクセルにしたい
-
Excel関数-文字列で自動作成さ...
-
Excelデータをコピペして、ペー...
-
エクセルの関数について教えて...
-
エクセルで不等号記号(≠)が上に...
-
スプレッドシート、Excelでの数...
-
スプレッドシートで使う数式を...
-
Excelで50個のセルに同じ文字を...
-
[オートフィルタ]で抽出された...
-
エクセルの問題です。絶対値の...
-
エクセル関数を教えてください
-
各ページの1番上の表示について
-
Microsoft Officeの中古は信用...
-
pdfの表をexcelにはりつけて計...
-
Excelのif関数で文字が見えなく...
-
Excel 2019 は、SPILL機能があ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA、別ブックへ転記す...
-
エクセルでの作業計算方法について
-
時間によってファイル名が変わ...
-
【関数】適切な文字数の数字を...
-
Excelについて教えてください
-
エクセル初心者です 関数の入れ...
-
【マクロ】ファイル名の変更に...
-
UNIQUE関数が使えないバージョ...
-
エクセルの計算
-
【関数】先頭だけにある、半角...
-
Excelで、決まった行を繰り返し...
-
Excelでセルの値が同じか...
-
LOOKUP関数を使えばいいのでし...
-
Excel
-
はがきについて。
-
エクセルの条件付き書式につい...
-
エクセルのデーターが2か月前の...
-
エクセル②
-
エクセルで「-0.0」と表示さ...
-
Microsoft1Officeの互換ソフト...
おすすめ情報