• 締切済み

エクセル IF関数 初心者です。。

A    B   C  D Aさん 9:00  1  9:00 Bさん 10:00 2  9:30 Cさん 11:00 3  10:00 Dさん 12:00 4  10:30 Eさん 9:00  1  9:00 A列氏名 B列時間 C列 B列IF関数 9:00からは1、10時からは2、 11からは3・・・ D列はC列のVLOOKUP関数 1=9:00、2=9:30、3=10:00・・・ そこでお聞きしたいのですが・・ A    B   C  D Aさん 9:00  1  9:00 Bさん 10:00 3  10:00 Cさん 11:00 4  10:30 Dさん 12:00 5  11:00 Eさん 9:00  2  9:30 IF関数を用いて IF(B1>=0.375),1,if(B1>=0.416666666666667),2,IF(B1>=0.458333333333333),3・・・ Eさんが2になるような数式がわかりません。 よろしくお願いします。。

みんなの回答

  • jindon
  • ベストアンサー率43% (50/116)
回答No.5

前の質問にも回答をしていますが... Lookup テーブルが K,L列の1行目から (左端の1,2,3,4,5...は要りません。)    K L 1 8:30 8:50 2 8:50 9:10 3 9:10 9:30 名前がA2から入力されているとして。 D2に =IF(B2="","",RANK(B2,$B$2:$B$20,1)) E2に =IF(D2="","",IF(D2=1,--TEXT("8:30","h:mm"),IF(INDIRECT("E"&MATCH(D2-1,$D$1:$D$20,FALSE))=MAX($K$1:$K$20),MAX($K$1:$K$20),MIN(IF($K$1:$K$20>INDIRECT("E"&MATCH(D2-1,$D$1:$D$20,FALSE)),IF($K$1:$K$20>B2,$K$1:$K$20,""),""))))) として、配列数式なので Ctrl+Shift+Enter で確定。 F2に =IF(E2="","",VLOOKUP(E2,$K$1:$L$20,2,FALSE)) D2:F2を下方コピー + ペースト "来た時間"に同時刻が発生するとエラーになりますので、1秒でも差をつけてください。 ご希望どうりになりますか・・・

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

作業行を1列使いますが(IF関数の利用ではないですが)下記のようなのはどうですか。 (例データ) A列 B列  C列 9:00 1 0.37506944 9:00 2 0.37513889 9:00 3 0.37520833 10:00 5 0.41673611 10:01 6 0.41743056 9:03 4 0.37715278 (関数式) C列に=A1+COUNTIF($A$1:A1,A1)/10*1/(24*60) C2以下複写する。 結果は上記C列の通り。 同時刻の人は、下に行くに連れ1/10秒加算して、わざと差をつけた値をセットしているもの。 B1セルに=RANK(C1,$C$1:$C$6,1)と入れて下方向に複写 する。 結果は上記B列の通り。 同時刻は上記では9人以上出ると都合が悪くなる。 上記式の1/10を1/100加算することにすれば99人まで同時刻でもよさそう?

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.3

こんにちは。maruru01です。 意図がいまいちよく分かりませんが、とりあえず。 C1に、 =RANK(B1,$B:$B,1)+COUNTIF($B$1:B1,B1)-1 D1に、 ="9:00"+"0:30"*(C1-1) と入力して、C1:D1を下の行へコピーしてみて下さい。

  • dejiji-
  • ベストアンサー率38% (327/858)
回答No.2

C列の意味が良く分かりませんが、D列はB列の時間の重み付けをした数値と思えばよいのでしょうか? D列のデータで順番を付ければよいのであれば、 C1に=RANK(D1,$D$1:$D$5,1)と入力しこれをC5までコピーで順番は出ます。

回答No.1

ちょっとよくわからないのですが。。 上の表の >Eさん 9:00  1  9:00 これはわかります。 しかし、下の表の >Eさん 9:00  2  9:30 これの意味がつかめないのですが、  「意図せず、こうなってしまって困る」  「こうしたいのに、ならないから困る」 このどちらでしょう?

myumyu7131
質問者

補足

返信ありがとうございます 上の表は今の現状です。 下の表はしたいことです。 C列はIF関数で9:00以降は1 10:00以降は2と出すようにしています。 やりたいことは、 Aさん、Eさんが同じ数字になってしまいます。 例えば Aさん 9:00   1  9:10  Bさん 9:00   2  9:30  Cさん 9:00   3  9:50  Dさん 10:00   5  10:30  Eさん 9:00   4  10:10    :  :    :   : IFを使うとAさん、Bさん、Cさん、Eさんは1 Dさんは2となると思うのですが・・ B列の時間の少ない人の順番づつに 番号を繰り越したいと思っています。 不明な点多いですがよろしくお願いします。   

関連するQ&A