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

エクセル超初心者からの質問です。


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

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


要するに、
2010年1月1日22:00?1月15日13:35までは12時間ごと
2010年1月15日13:35?1月24日23:23までは11時間56.4分ごと
2010年1月24日23:23?2月22日11:45までは11時間52.8分ごと


といった感じになるのですが、将来的に減少する日時はまだ決まっていないので、いつ減少しても対応出来るようにしたいのです。

どうやったらいいのか初心者でもわかるように出来るだけ詳しく教えてください。


ポイントは内容に応じて分配しますのでよろしくお願い致します。

●質問者: winbd
●カテゴリ:コンピュータ
✍キーワード:エクセル スタート ポイント 初心者 対応
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● heke2mee
●50ポイント

テキストだけじゃ書きにくいですが、こんな感じですかね

1.下の式を全部選択して

セルのA1の位置で貼り付ける

2.名前つきセルを3つ作る(分からないときは http://www.ken3.org/vba/backno/vba013.html)

基準日時 例)H1のセルに設定する

間隔 例)I1のセルに設定する

遅延パーセント 例)J1のセルに設定する

3.名前つきセルに値を入れる

基準日時に2010/1/1 22:00:00

間隔に12:00:00

遅延パーセントに0.5

4.セルの書式を変更

A列は日付

C列は時分秒

D列は時分秒



遅延フラグのB列に1を入れるとそれ以降の日時が

変わります。

行を増やすには1行を選択してコピーする


日時遅延フラグ

=基準日時=間隔-D2=間隔*E2/100=IF(B2=0,E1,E1+遅延パーセント)

=A2+C2=間隔-D3=間隔*E3/100=IF(B3=0,E2,E2+遅延パーセント)

=A3+C31=間隔-D4=間隔*E4/100=IF(B4=0,E3,E3+遅延パーセント)

=A4+C4=間隔-D5=間隔*E5/100=IF(B5=0,E4,E4+遅延パーセント)

=A5+C5=間隔-D6=間隔*E6/100=IF(B6=0,E5,E5+遅延パーセント)

=A6+C61=間隔-D7=間隔*E7/100=IF(B7=0,E6,E6+遅延パーセント)

=A7+C7=間隔-D8=間隔*E8/100=IF(B8=0,E7,E7+遅延パーセント)

=A8+C8=間隔-D9=間隔*E9/100=IF(B9=0,E8,E8+遅延パーセント)

=A9+C9=間隔-D10=間隔*E10/100=IF(B10=0,E9,E9+遅延パーセント)

=A10+C10=間隔-D11=間隔*E11/100=IF(B11=0,E10,E10+遅延パーセント)

◎質問者からの返答

>1.下の式を全部選択してセルのA1の位置で貼り付ける

そのまま貼り付けるとまとまってコピーされちゃいますね。

Cに「=間隔*E2/100」Dに「=間隔*E2/100 =IF(B2=0,E1,E1+遅延パーセント)」ってことですよね?


追記:出来ません><

C2が######## D2がTRUEって表示されちゃいます。


2 ● hiko3karasu
●30ポイント

A1に 2010/1/1 22:00

B1に 12:00:00

C1に 0.0025

といれます

A2に =A1+B2

B2に =B$1-C2*C$1

としてA2とB2をコピーして

A3、B3より下のセルにペーストします。

あとはC2より下に最初は0、商品が増えるまでの時間が減少するたびに、1、2、3と増やしていく。商品が増えるまでの時間が減少していない時は同じ数字を入力する。

C2に 0

C3に 0

C4に 0

C5に 0

C6に 1

C7に 1

C8に 1

C9に 1

C10に 2

C11に 2

のような感じで。


3 ● SALINGER
●30ポイント

Excelの関数で行うとして、開始日と間隔減少日を入力することで、

商品が増える日時を求める関数を作ることはできます。


次のようにA列最初を開始日、以下を間隔減少日とします。

B列は数式を入れB2を下にオートフィルしてください。

B列は商品が増える日時が列挙されます。


A B
1 2010/1/1 22:00 数式1
2 2010/1/15 13:35 数式2
3 2010/1/24 23:23
4 2010/2/22 11:45

減少する日時の前後を厳密に処理すると数式は長くなりました。

数式1

=A1+0.5-IF(INDEX(A:A,MATCH(A1,A:A,1)+1)="",(MATCH(A1,A:A,1)-1)*0.0025,IF((A1+0.5-MATCH(A1,A:A,1)*0.0025)>=INDEX(A:A,MATCH(A1,A:A,1)+1),MATCH(A1,A:A,1)*0.0025,(MATCH(A1,A:A,1)-1)*0.0025))

数式2

=B1+0.5-IF(INDEX(A:A,MATCH(B1,A:A,1)+1)="",(MATCH(B1,A:A,1)-1)*0.0025,IF((B1+0.5-MATCH(B1,A:A,1)*0.0025)>=INDEX(A:A,MATCH(B1,A:A,1)+1),MATCH(B1,A:A,1)*0.0025,(MATCH(B1,A:A,1)-1)*0.0025))

※シリアル値として処理していますので、セルの表示形式はyyyy/m/d h:mm:ssなど、日付にしてください。

シリアル値とは1日を1とする数値です。それで12時間は0.5となりその0.5%は0.0025となります。


MATCH関数と引数の説明はこちら

http://excel.onushi.com/function/match.htm

関連質問


●質問をもっと探す●



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