
以下のような元データがあります。
↓
https://gyazo.com/0da64cc8d1d4727b97973cae0ffa6970
※システム抽出
土日含め、連続7日以上欠勤が続いている人を抽出したいのですがピボットやSUMIF等考えたのですが良い案が浮かびません。
元データから該当する人を抽出するには、どのような数式を組めば良いでしょうか?
何卒ご教授願います。
No.4
- 回答日時:
>元データから該当する人を抽出する
No.3さんも指摘されておられますが、抽出の意味をどうとらえるかで対応が変わります。
取り敢えず、ある人が「土日含め、連続7日以上欠勤が続いている」状態である該当日付に〇印をつけるという方法で該当者を明示することにしてみました。
便宜上、ご質問者が示された表を「勤務管理表」と呼びます。
勤務管理表の適当な場所に、祝日および企業独自の休業日を一覧として作成し、その範囲に「祝日」という名前をつけておくものとします。
添付画像①をご覧ください。祝日・休業日の一覧には12/28を「御用納め」として12/29~1/3までを年末年始の休業としています。また2022年の祝日を登録してあります。
なお、「勤務管理表」の日付はシリアル値(年号まで含めた値)で入力されているものとし、表示形式を「mm/dd」として「11/19」のように表示しているものとします。
ご質問者が示された表の右列に「連続欠勤」という列をつくり、そこに〇印を表示することにします。画像でい言えばI2セルに
=IF((SUMPRODUCT((F2-7+COLUMN(A:G)=$F$2:$F$8)*($D$2:$D$8=D2)*($G$2:$G$8=25))+SUMPRODUCT((WEEKDAY(F2-7+COLUMN(A:G),3)>4)*1)+SUMPRODUCT((F2-7+COLUMN(A:G)=祝日)*(WEEKDAY(祝日,3)<5)))>=7,"〇","")
という数式を記述し、下方向へコピーしています。
考え方は、No.3さんが既にお示しになっておられます。
「勤務管理表」に入力されている日付から遡って「連続した日付7日分」を予め用意し、その7日間を「勤務管理表に欠勤と入力された日」、「土曜日・日曜日」、「祝日・休業日」に該当しているかを各々調べその合計日数が7になれば、連続した7日間全ての日において出勤していない(連続欠勤)ということになります。
前提としては
(1)「勤務管理表に入力された日」には土日祝日、会社の休業日はない
(2)「勤務管理表」には欠勤以外(ex.早退や遅刻など)も記録されるが、記事コード25が「欠勤(1日)」を意味する
といったところでしょうか。
これで、「連続欠勤」〇印でフィルターをかければ、該当者が抽出できます。
しかし、この抽出ルールだと困ったことが起きます。
添付画像➁をご覧ください。
年末年始は12/29~1/3まで6日間連続して会社の休業日、祝日、土日が続くため、山田 一郎さんは1/4に1日欠勤しただけで7日間連続欠勤したことになってしまいます。
このような事態を回避するためには、単純に「土日祝日を含んで7日連続欠勤」という抽出ルールではなく、「土日祝日を挟んで7日連続欠勤」というような抽出ルールにするなどの工夫が必要かも知れません。

こんにちわ。
この度は分かりやすくご説明頂きまして
ありがとうございます。
とてもわかりやすいご説明で、大変勉強になります。
前提条件は問題ないので、早速週明け計算式を入れて試してみたいと思います。
No.3
- 回答日時:
「元データから該当する人を抽出したい」とのことですが、抽出とは、どのレベルを期待していますか?
①マクロ一発で、別シートに抽出したい。
②関数で、とりあえず、該当者か否かの判別ができればOK。
もし②程度で良いのであれば・・・、
Countifs関数で、スタッフコードが一致していて、対象日が対象日以上、かつ、対象日+6日以下の件数をカウントします。
さらに、休日データからも同じ期間の件数をカウントします。
最終的に、上記の合計が7以上のものが対象者となるはずです。
こんにちわ。
ご提示頂きましてありがとうございます。
②の関数で判断できれば問題ありません。
countifsですね。
考え方をご教授頂きありがとうございます。
No.2
- 回答日時:
> 土日祝日除く平日欠勤された分しか載りません
そういうことならやりたいことは(不可能とは言いませんが)無理があるように思います。
例えば2021年の11/17~11/22まで出勤しなかった場合「連続7日以上欠勤が続いている人」としてカウントするのはかなり困難です。
祝祭日だけではなく、年末年始休暇とかも勘案するとなると余計です。
せめて元データの他に休日データのシートが必要かと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
エクセルの都道府県名連続入力を抽出削除するには
Excel(エクセル)
-
エクセルのセル中で最初の0を表示する方法
Excel(エクセル)
-
Excel 【データの加工】
Excel(エクセル)
-
4
Excel関数について 下記の業務をもっと効率よく出来る関数がないか悩んでます(´;Д;`) ※質屋
Excel(エクセル)
-
5
【計算量Log n】僕は実際の面接でソートの計算量を聞かれて、log nですかねと言ったら「は?」と
Excel(エクセル)
-
6
Excelで置換を行う場合[検索と置換]ダイアログボックスから置換を行って おりますが、例えば
Excel(エクセル)
-
7
どちらからも検索して一覧表を作成できるエクセル表を作りたい
Excel(エクセル)
-
8
式の結果が0の時に空白にしたセルと、別のセルを足した結果を出す場合
Excel(エクセル)
-
9
エクセル特定記号で囲まれた数字、文字を抽出
Excel(エクセル)
-
10
Excel 同じセルの隣のセルを並び替える
Excel(エクセル)
-
11
Microsoft Excelで別シートを参照すると#Value!と表示される
Excel(エクセル)
-
12
(Excel)最小限のデータ入力で別シートに転記しリストを作成したい。
Excel(エクセル)
-
13
エクセルについて質問です。
Excel(エクセル)
-
14
エクセル相違の発見
Excel(エクセル)
-
15
Excelのエラーで困ってます。
Excel(エクセル)
-
16
Excel関数で空き時間を抽出したいのですが、添付しました画像のようにC列とD列が使用時間でその他の
Excel(エクセル)
-
17
Excel教えてほしいです。
Excel(エクセル)
-
18
エクセルって複雑な処理は避けた方が良くないですか?
Excel(エクセル)
-
19
エクセル4つ飛び平均
Excel(エクセル)
-
20
Excelで連番を振る方法について
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
このカテゴリの人気Q&Aランキング
-
4
(Excel)あるセルに文字を入力...
-
5
あるセルに特定の文字列を打つ...
-
6
エクセルで、変な矢印がでて、...
-
7
エクセルのセル内の余白の設定...
-
8
エクセル: セルの枠を超えて表示
-
9
EXCELで式からグラフを描くには?
-
10
エクセルで作った新しいウイン...
-
11
Excelで隣のセルと同じ内容に列...
-
12
エクセル:シート名を手入力で...
-
13
エクセルである行以下全部を削...
-
14
グラフの横・縦項目が全部表示...
-
15
Excelで数式だけを消して、数値...
-
16
印刷用紙の中央に点線をいれた...
-
17
EXCELで2つの数値のうち大きい...
-
18
エクセル 同じ値を探して隣の...
-
19
複数のセルの入力内容を一度に...
-
20
エクセル 特定の文字を入れる...
おすすめ情報
公式facebook
公式twitter