質問: 他店舗同日計算で知恵をお貸しください Excelで給与計算をしており、 関数を組んでいるところですが、 どうしてもうまくいかず...... 同じ日に複数店舗の勤務があった場合のみ、 カウントし、その月の店舗ごとの合計を出したいんですが......。 カウントイフ関数でA列とB列で 連番を振り、 店舗1 同日勤務回数 3 店舗2 同日勤務回数 2 となるよう抽出したいのですが、 同日勤務がない、7/12も1と数えられてしまい...... なにかよい方法はないでしょうか? フィルターとかは使わず関数のみで組まなければならず...... どうか詳しい方ご助力頂けますと幸いです。 よろしくお願いします。 例)従業員X 店舗1 同日勤務回数 3 店舗2 同日勤務回数 2 A列 B列 店舗1 7/10 店舗2 7/10 ------------ 店舗1 7/11 店舗2 7/11 ------------ 店舗1 7/12
回答: A1セルに従業員氏名、B1セルに店舗名、C1セルに日付が列見出しが有る表で2行目から下方にデータが有るとします。 ある従業員が同じ日付で違った店舗に勤務した場合の同日勤務回数を求めることにします。 そのためには分かりやすく作業列を作って対応します。 J2セルには次の式を入力してK2セルまで横にドラッグコピーしたのちに下方にもドラッグコピーします。 =IFERROR(IF(COUNTIF(A$2:A2,A2)=1,MAX(J$1:J1)+1,INDEX(J$1:J1,MATCH(A2,A$1:A1,0))),"") L2セルには次の式を入力して下方にドラッグコピーします。 =IF(AND(COUNTIFS(A:A,A2,C:C,C2)>1,COUNTIFS(A$2:A2,A2,B$2:B2,B2,C$2:C2,C2)=1),MAX(L$1:L1)+1,"") M2セルには次の式を入力して下方にドラッグコピーします。 =IF(COUNT(J2:L2)=3,SUM(J2*10^2,K2),"") E1セルに店舗名の文字列を、F1セルには次の式を入力して右横方向にドラッグコピーします。I1セルまでのドラッグコピーなので4名の従業員までになりますがそれ以上では作業列をさらに右側の列にずらして対応してください。 =IFERROR(INDEX($A:$A,MATCH(COLUMN(A1),$J:$J,0)),"") E2セルには次の式を入力して右横方向にドラッグコピーしたのちに下方にもドラッグコピーすればよいでしょう。 =IF(OR(ROW(A1)>MAX($K:$K),E$1=""),"",IF(COLUMN(A1)=1,INDEX($B:$B,MATCH(ROW(A1),$K:$K,0)),COUNTIF($M:$M,(COLUMN(A1)-1)*100+ROW(A1)))) なお、作業列が目障りでしたらそれらの列を選択して「非表示」にすればよいでしょう。 お示しの表のケースでは7/12のデータでは店舗2のデータが無いので、店舗1の同日勤務回数は3ではなく2が正しいでしょう。