[[20040625160650]] 『勤務管理を記号で管理したい』(キリキ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『勤務管理を記号で管理したい』(キリキ)

勤務管理を記号で管理《例 12:00 の場合 12A》記号を時間に変換したい

勤務管理を時間ではなく、記号で管理しています。
例 12:00 → 12A 以降15分毎に12B・12C・12D

※契約時間も、3時間〜8時間と個別に違います。
IF関数で時間に変換したのですが、パターンが7種類以上あるのですが、どうしたらできるでしょうか?

IF関数の条件は7つ以上は出来ないのでしょうか?

=IF(シート名!A1="12A",0.5,IF(シート名!A1="12B",0.510416666666667
,IF(シート名!A2="12C",0.520833333333333,IF(・・・・・・・etc を続けたい。


はじめまして。ちょっと手間のある方法ですけどご参考までに。
一応試したらできました。
私の提案は「一度に計算しないで、12とAを別々にして計算」しました。

まずA1に12Aと入っているとしましょう。本来B1に12:00と表示したいところですが、私の方法では12:00と表示するのはE1セルとさせてください。
B1とC1とD1に次の式を入れます。

B1=LEFT(A1,2)  →これでB1には12と表示します。
C1=RIGHT(A1,1)  →これでC1にはAと表示します。

D1=IF(C1="A","00",IF(C1="B","15",IF(C1="C","30",IF(C1="D","45"))))
→これでD1には00と表示します。

そしてE1=CONCATENATE(B1,":",D1)  →これでE1には12:00と表示します。

B列からD列が見栄えが悪かったら、グループ化で隠してください。

※この場合だとA列で、0時45分の場合は、00Cという表記が必要になります。

(原始的とみり)


 チョット出遅れました。
1. IF関数を使用する場合
=IF(RIGHT(A1,1)="A",TIME(LEFT(A1,LEN(A1)-1),0,),IF(RIGHT(A1,1)="B",TIME(LEFT(A1,LEN(A1)-1),15,),IF(RIGHT(A1,1)="C",TIME(LEFT(A1,LEN(A1)-1),30,),IF(RIGHT(A1,1)="D",TIME(LEFT(A1,LEN(A1)-1),45,),"wakarimasen"))))
2. 上記1を短くしたような式
=TIME(LEFT(A1,LEN(A1)-1),LOOKUP(RIGHT(A1,1),{"A","B","C","D";0,15,30,45}),)
3. 対比表を作成し、VLOOKUP関数で読ませる式(範囲は適当にしています)
=VLOOKUP(A1,$F$1:$G$8,2,0)
仮に12Eを変換しようとした場合、
1は、wakarimasen 2は12:45 3は#N/A が返ります。
ちょっと時間がなくなりました。以下略ということで・・・(sin)


す、すばらしい。私も勉強になりました。<sinさん (原始的とみり)


原始的とみりさん、sinさん、ありがとうございます。

もう一つ質問があります。

上記のような計算式に、休みがあるときはどのようにすればいいのでしょうか?

※休みの場合は"/"の記号を使用しています。


 こんにちわ。遅くなりました。

 >上記のような計算式に、休みがあるときはどのようにすればいいのでしょうか?
 >※休みの場合は"/"の記号を使用しています。
 IF関数で良いのでは??? 
IF(A1="/",0,式)  ネストも大丈夫ですし・・・
それとも別の事なのでしょうか? (sin)

その通りですね・・・

初歩的な質問でした。
原始的とみりさん、sinさん、ありがとうございました。


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.