人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセル初心者からの再質問です。
http://q.hatena.ne.jp/1263319539

例えば2010年1月1日22:00をスタート地点として、12時間ごとに商品が1個増える。

しかし途中で、商品が増えるまでの時間が減少することがある。
減少する時間は1回につき0.5%(12時間のうち3.6分)。
減少した瞬間から?0.5%となる。


で、減少したときに次に商品が増える時間は、
=A1+(1*(B1-A1))+(0.995*(0.5-(B1-A1)))
で求められました。

そこから
=A2+(0.5*0.995)
と入力すればその後の商品追加日時も出せるのですが、
時間減少時に入力が多く、いまいちスムーズではありません。

商品追加日時をもっとスマートに算出する方法を教えてください。


違うやり方で、もっと簡単な方法もあるよーって方も大歓迎です。

●質問者: winbd
●カテゴリ:コンピュータ
✍キーワード:A1 いまいち エクセル スタート スマート
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● marcy2021
●30ポイント

商品が増えるまでの時間がいつ減少するか。そのタイミングが将来的に不確定とのことですので、

減少するタイミングをご自身で(E列に)指定できるような構成を考えました。

ここでは、商品追加の所要時間(初期値)を「720分」、所要時間の減少分を「3.6分」という風に、

単位を「分」に統一して話を進めていきます。


完成イメージの抜粋は、ご覧のような感じです。(★印はセルの枠線)


1★2010/1/1 22:00★(空白)★0★No

2★2010/1/2 10:00★720★0★No

3★2010/1/2 21:56★716.4★1★Yes

4★2010/1/3 9:52★716.4★1★No

5★2010/1/3 21:44★712.8★2★Yes


以下の記載をご覧になりながら、実際にExcelに入力してみてください。


■ 1行目には、分かりやすく項目名を記載します。

A1: 商品個数 B1: 商品追加日時

C1: 商品追加の所要時間(分) D1: 所要時間の通算減少回数 E1: 所要時間の減少タイミング(Yes/No)


※ B列こそが、あなたの欲しい日時となります。

「2010/1/7 8:34」といった形式で表示されるよう、B列の書式を設定してください。


■ 2行目は、スタート地点(初期値)の値を入力します。

A2: 1 B2: 2010/1/1 22:00

D2: 0


※ C2、E2は空白でかまいません。


■ 3行目が本番です。=(イコール)から始まる以下の数式を入力します。

A3:=A2+1 B3:=B2+TIME(0,C3,0) C3:=720-D3*3.6

D3:=IF(E3="Yes",D2+1,D2)



以上で下準備は完了です。3行目の入力が完了したら、A3からD3までの4セルをコピーし、

4?1000行目(お好きにどうぞ)に対して貼り付けてください。


あなたがE列に「Yes」と入力した行で、

商品追加の所要時間が逓減しているのを確認することができると思います。


よろしかったら、お試しください。

◎質問者からの返答

ひじょーにわかりやすい説明でありがたいのですが、

これだと「商品が増えた時間」にしか時間減少が認められないですよね?

これは前の質問でも回答してくれた方がたくさんいました。


例えば1/2 5:00に時間減少が発生することもあるので、

そうなると、5:00から10:00までだけ-0.5%の時間減少が適用されるわけです。

そこが難しいのです。


2 ● heke2mee
●30ポイント

前のコメントに記入したけど、見てないかもしれないので念のため書いておきますね。

思ってるのと違うかな?

こちらにExcelのブックをアップしました

DLキーワード hatena

公開期限:2010年1月20日 0時0分0秒

http://www1.axfc.net/uploader/Sc/so/73370

◎質問者からの返答

わざわざ作って頂いてありがとうございます。

これもやはり商品増加時?次の商品増加までを-0.5%にしちゃうタイプですよね。

5時間分は-0%、残り7時間は-0.5%というような場合をどう処理するかが問題なのです。


3 ● naninanida11
●0ポイント

プロパティで修正する。

vbaで組んじゃう。

http://q.hatena.ne.jp/1263396369

◎質問者からの返答

0ポイント


4 ● SALINGER
●200ポイント ベストアンサー

もう解決しているかもしれませんが、話を複雑にした責任もあるので回答しておきます。

前回の回答に割合の部分を組み込みました。


A B
1 =B1 2010/1/1 22:00:00
2 数式 2010/1/15 10:00:00
3 上をコピー 2010/1/24 23:23:00
4 上をコピー 2010/2/22 11:45:00

数式

=IF(INDEX(B:B,MATCH(A1,B:B,1)+1)="",A1+0.5-0.0025*(MATCH(A1,B:B,1)-1),IF(INDEX(B:B,MATCH(A1,B:B,1)+1)<A1+0.5-0.0025*(MATCH(A1,B:B,1)-1),A1+(INDEX(B:B,MATCH(A1,B:B,1)+1)-A1)*(1-0.005*(MATCH(A1,B:B,1)-1))+(0.5+A1-INDEX(B:B,MATCH(A1,B:B,1)+1))*(1-0.005*(MATCH(A1,B:B,1))),A1+0.5-0.0025*(MATCH(A1,B:B,1)-1)))

コメントを見るとA列が商品増加日時、B列が期間減少日時となっていたので合わせました。

B列の期間減少日時は対応する期間の横に書くのも手間なので上詰めで順番に入力にしました。

12時間の間に2回以上の変更には未対応です。(それは数式では難しそうです)

◎質問者からの返答

おお!思い描いてた理想にかなり近いです!

やっぱり2回以上の変更の対応は難しいですよね><


でもこれだけコンパクトで使いやすければ十分です。ありがとうございます!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ