- 締切済み
エクセル 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になるような数式がわかりません。 よろしくお願いします。。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- jindon
- ベストアンサー率43% (50/116)
前の質問にも回答をしていますが... 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)
作業行を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)
こんにちは。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)
C列の意味が良く分かりませんが、D列はB列の時間の重み付けをした数値と思えばよいのでしょうか? D列のデータで順番を付ければよいのであれば、 C1に=RANK(D1,$D$1:$D$5,1)と入力しこれをC5までコピーで順番は出ます。
- shinkun0114
- ベストアンサー率44% (1553/3474)
ちょっとよくわからないのですが。。 上の表の >Eさん 9:00 1 9:00 これはわかります。 しかし、下の表の >Eさん 9:00 2 9:30 これの意味がつかめないのですが、 「意図せず、こうなってしまって困る」 「こうしたいのに、ならないから困る」 このどちらでしょう?
補足
返信ありがとうございます 上の表は今の現状です。 下の表はしたいことです。 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列の時間の少ない人の順番づつに 番号を繰り越したいと思っています。 不明な点多いですがよろしくお願いします。