- 締切済み
エクセル関数についてです。
こんにちは。教えてほしいことがあります。 エクセルで作業進捗を作成して終了時間を算出する関数が知りたいです。 12時時点の作業残と3時時点の作業残を集計して終了時間を調整したいです。 (1)12時はE9(作業終了時間で関数入れる場所です) 作業数B9、人数C9、一時間一人当たりの平均値D9です。 ※条件としては昼は12:45から開始します。休憩時間は15:00~15:15の0:15分です。 (2)3時はB14(作業数量時間で関数入れる場所です。 作業数B14、人数C14、一時間一人当たりの平均値D14です。 ※条件としては3時は15:15からラスト(無限)でカウントしたいです。(休憩時間なし) あとエラー値を出したくないです。 何もうちこまなかったらセルを空白にしたいです。 説明下手で申し訳ありませんが本当によろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- queuerev2
- ベストアンサー率78% (96/122)
質問者様の意図をあまりよく理解できていないとは思いますが・・・ まず(1)ですが、B9の作業数、C9の人数、D9の一時間一人当たりの平均値から、休憩時間も考慮して作業終了時間を算出してE9に表示したいというご希望と存じます。 とすると、算出に使用する式として、 必要な作業時間(単位は時間)=作業数÷(人数×一時間一人当たりの平均値) でよろしいでしょうか。 あとは、12:45から作業を開始し、15:00で終わらない場合は15分加算するということでよろしいでしょうか。 以上の前提で解答いたします。 その他の条件は以下のようにします。 1. 終了時刻が明日正午までなら終了時刻を表示し、明日午後以降なら「明日午後以降」という文字列を表示する。 無限をご希望とのことなのですが、表示やエラー処理を簡単にするため明日の正午で区切ります。 この場合の最大作業時間は12:45開始時で23時間となります。(15:15開始なら20.75時間) また、12:45~15:00の作業時間は2.25時間です。 (これらの作業時間は数式で利用します) 2. B9~D9は正の数値のみを有効な入力とし、有効な入力がないセルがある場合はE9に空文字列("")を表示する。 解答ですが、 まず、以下の数式をセルE9に入力してください。 =IF(AND(ISNUMBER(B9),ISNUMBER(C9),ISNUMBER(D9)), IF(AND(B9>0,C9>0,D9>0), IF(B9/(C9*D9)>23, "明日午後以降", TIME(12,45,0)+B9/(C9*D9)/24+IF(B9/(C9*D9)<=2.25,0,TIME(0,15,0)) ), ""), "") あとは、E9の書式を、時刻を表示するように設定してください。 (「セルの書式設定」で「時刻」からお好みの形式を選ぶ等してください) 次に(2)ですが、作業数を算出してB14に表示するというご希望と存じます。 条件は以下のようにいたします。 1. 作業数を算出する式は上記の(1)のものを変形して用いる。 2. 作業終了時刻はE9の値を使用。E9が数値でない場合はB14に空文字列("")を表示する。 3. C14, D14は正の数値のみを有効な入力とし、有効な入力がないセルがある場合はB14に空文字列("")を表示する。 解答ですが、 B14には以下の数式を入力してください。 =IF(AND(ISNUMBER(C14),ISNUMBER(D14),ISNUMBER(E9)), IF(AND(C14>0,D14>0),(E9-TIME(15,15,0))*24*C14*D14,""), "") B14の書式ですが、標準あるいは数値にしてください。 今回は1つのセルだけで済ませましたが、複数のセルを使用して計算の途中経過を別のセルに置く方がやりやすい場合も多いと思います。 たとえば(1)の場合、F9を =B9/(C9*D9) としてE9から参照するようにするとよいと思います。 また、作業開始時間や休憩時間を別のセルに置くようにすればある程度の時間変更にも容易に対応できます。