• 締切済み

エクセル dmina関数 条件指定

えてください。 a b c d e g 1 社員コード  出社時刻  退社時刻  売上       社員コード 2 101   7:00 13:00 5000       101 3 102   9:00 14:00 2000       社員コード 4 103  10:00 16:00 5500       102 5 101  17:00 19:00 2000        ・    ・    ・      ・     ・          一日の社員の出社退社時刻と売上金額の表です 社員は100人ほどいます。 一日に2回出勤する社員もいるので、 一日に2回出勤する社員は、出社時刻の早い時刻と退社の遅い時間を数式で 求めたいと思います。 社員101の出社時刻=dmin(a1:e5,e2,d1:d2)で求めたのですが、 社員102の出社時刻を求める時上の数式をコピーすると、条件セルが(d2:d3) となってしまいます。 条件指定を(d1:d2) (d3:d4) (d5:d6)とコピーしたい場合何かいい方法がありますか?      一行ずつセルを変えていくのは社員が100人ほどなので大変です。      教えてください。

みんなの回答

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

A列が社員コードでB列が出社時刻、C列が退社時刻、D列が売上となってデータが2行目か下方にあるとしたら次のようにしてはどうでしょう。 作業列としてE2セルには次の式を入力して下方にドラッグコピーします。 =IF(A2="","",IF(AND(COUNTIF(A$2:A2,A2)<>1,COUNTIF(A$2:A2,A2)=COUNTIF(A:A,A2)),A2,"")) その上で例えばF2セルから下方には社員コードをダブりなく下方に入力します。 次にG1セルには出社時刻、H1セルには退社時刻、I1セルには売上とそれぞれ文字を入力します。 G2セルには次の式を入力してH2セルまで横のドラッグコピーしたのちに下方にもドラッグコピーします。 =IFERROR(INDEX($A:$C,IF(COLUMN(A1)=1,MATCH($F2,$A:$A,0),IF(COLUMN(A1)=2,IF(COUNTIF($E:$E,$F2)=0,MATCH($F2,$A:$A,0),MATCH($F2,$E:$E,0)),"")),COLUMN(A1)+1),"") I2セルには次の式を入力して下方にドラッグコピーします。 =IF(G2="","",SUMIF(A:A,F2,D:D)) このようにすることで出社時刻は最初に出社したときの時刻、退社時刻は最後に退社したときの時刻がそれぞれG列およびI列に表示されます。I列は必要ないかもしれませんね。ご参考になればよいですね。

関連するQ&A