Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7509 / 13644 ツリー ←次へ | 前へ→

【38687】利用率の算出(追加) あい 06/6/8(木) 15:07 質問[未読]
【38722】Re:利用率の算出(追加) ichinose 06/6/8(木) 23:35 発言[未読]

【38687】利用率の算出(追加)
質問  あい  - 06/6/8(木) 15:07 -

引用なし
パスワード
   【38087】時間帯別利用率の算出の記事で投稿させていただいた者です。
仕様変更があり、また躓いてしまったので質問します。 

Sheet1に下記のようなデータがあります。

A列  B列     C列    D列   E列   F列    G列
番号 部屋番号  ON日付   ON時刻 OFF日付  OFF時刻  売上 
1    1    2006/05/01 22:30 2006/05/02 09:00  \1000
2    1    2006/05/02 13:00 2006/05/02 17:05  \800
3    1    2006/05/02 18:00 2006/05/03 03:10  \2000
4    2    2006/05/02 15:50 2006/05/02 19:50  \100
5    2    2006/05/02 20:35 2006/05/03 09:50  \1400  
6    3    2006/05/02 19:00 2006/05/02 05:45  \1100
7    3    2006/05/02 08:23 2006/05/02 11:39  \800
8    3    2006/05/02 13:24 2006/05/03 14:58  \3500
.
.
.
21   1    2006/05/03 05:30 2006/05/03 09:00  \1000
22   1    2006/05/03 12:00 2006/05/03 17:05  \800
23   1    2006/05/03 18:00 2006/05/04 03:10  \2000
24   2    2006/05/03 15:50 2006/05/03 19:50  \100
25   2    2006/05/03 20:35 2006/05/04 09:50  \1400

これを元に利用率の算出をしたいのですが、以前に

(MIN($E2+$F2,$H$1+1)-MAX($C2+$D2,$H$1))*100

(H1セルに算出したい日付を入れています。)
という数式を使えば算出できると教えていただいたのですが、これでは一日分しか表示されません。
これを範囲指定できる式に変えることはできないでしょうか?
例えば、5/2〜5/3の部屋番号1の利用率は○○%(すいません。答えがわかりません。)のように。
以前の仕様では一日ごとでいいとのことだったのに、日付の範囲指定ができるように変えて欲しいと言われてしまい、全然わからなくなってしまいました。

何度も何度もすいませんがよろしくお願いします。

【38722】Re:利用率の算出(追加)
発言  ichinose  - 06/6/8(木) 23:35 -

引用なし
パスワード
   ▼あい さん:
こんばんは。


>【38087】時間帯別利用率の算出の記事で投稿させていただいた者です。
>仕様変更があり、また躓いてしまったので質問します。 
>
>Sheet1に下記のようなデータがあります。
>
>A列  B列     C列    D列   E列   F列    G列
>番号 部屋番号  ON日付   ON時刻 OFF日付  OFF時刻  売上 
>1    1    2006/05/01 22:30 2006/05/02 09:00  \1000
>2    1    2006/05/02 13:00 2006/05/02 17:05  \800
>3    1    2006/05/02 18:00 2006/05/03 03:10  \2000
>4    2    2006/05/02 15:50 2006/05/02 19:50  \100
>5    2    2006/05/02 20:35 2006/05/03 09:50  \1400  
>6    3    2006/05/02 19:00 2006/05/02 05:45  \1100
>7    3    2006/05/02 08:23 2006/05/02 11:39  \800
>8    3    2006/05/02 13:24 2006/05/03 14:58  \3500
>.
>.
>.
>21   1    2006/05/03 05:30 2006/05/03 09:00  \1000
>22   1    2006/05/03 12:00 2006/05/03 17:05  \800
>23   1    2006/05/03 18:00 2006/05/04 03:10  \2000
>24   2    2006/05/03 15:50 2006/05/03 19:50  \100
>25   2    2006/05/03 20:35 2006/05/04 09:50  \1400
>
>これを元に利用率の算出をしたいのですが、以前に
>
>(MIN($E2+$F2,$H$1+1)-MAX($C2+$D2,$H$1))*100
>
>(H1セルに算出したい日付を入れています。)
>という数式を使えば算出できると教えていただいたのですが、これでは一日分しか表示されません。
>これを範囲指定できる式に変えることはできないでしょうか?
>例えば、5/2〜5/3の部屋番号1の利用率は○○%(すいません。答えがわかりません。)のように。
変えることは出来ます。でもね・・・。

>(MIN($E2+$F2,$H$1+1)-MAX($C2+$D2,$H$1))*100

この数式は、上記の例に上げたデータで言えば

>番号 部屋番号  ON日付   ON時刻 OFF日付  OFF時刻  売上 
>1    1    2006/05/01 22:30 2006/05/02 09:00  \1000

このデータのセルH1で指定された日の利用率です。

セルH1に「2006/5/2」と指定すれば、38と結果が表示されますよね?
上記のデータの2006/5/2の利用時間は、0:00から9:00ですね?
(ON日付は2006/5/1の22:30ですから、1時間30分は、2006/5/2には入りませんから)
MIN($E2+$F2,$H$1+1)-MAX($C2+$D2,$H$1)
この計算は、この9:00時間という時間を計算し、シリアル値で結果を出しています。
シリアル値って、一日を1とした割合です。
24時間が1なら9時間はxという比例計算ですよね?
正確には0.375ですが、四捨五入で0.38----100を掛けて38
という数式です。

これを理解しているなら例えば、汎用的な期間など考えずに

2006/5/2から2006/5/3と日付期間を設定したとき


>番号 部屋番号  ON日付   ON時刻 OFF日付  OFF時刻  売上 
>1    1    2006/05/01 22:30 2006/05/02 09:00  \1000

上記のデータの利用率がいくつになるか考えてみてください。
答えがでたら、その答えにするためには、

MIN($E2+$F2,$H$1+1)-MAX($C2+$D2,$H$1)

のどのように修正すれば考えてみてください。


最終的には、2006/5/2〜206/5/3の部屋番号1の利用率を
(例を見ると部屋番号1のデータは6件ありますね?)
を出してみてください。

・期間内(2006/5/2〜2006/5/3)の部屋番号1の利用時間を行毎に算出

・部屋番号1の期間内の利用時間の合計を算出

・利用率を出すために期間で割る

それぞれを記述してどんな計算をすればよいか考えてみてください。

私は、何度でも繰り返しますが、こういう種類の質問には、
入力データの説明と出力データの説明を例題をだして記述することが
必要だと思っています。


>以前の仕様では一日ごとでいいとのことだったのに、日付の範囲指定ができるように変えて欲しいと言われてしまい、全然わからなくなってしまいました。

この数式を私が記述して、また仕様変更があったら、そのままここに投稿するのですか?
でも、それだといつまでたってもこの手の問題を自力で解決する力は備わりませんよ!!

私があい さんに考えて回答しほしいことは書きました。

投稿を待っています。

7509 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free