• 締切済み

【エクセル】最小最大値と分割数で、行を自動作成

例えば、最小最大値(時間を設定)を A1=0, B1=100 分割数(時間あたりの計算精度)を C1=1000 計算式(実際は複雑な式なので例で記入します)を D2=D1+1 とした時に、 A2以降(A3,A4....A1001)に時間を、D3以降(D3=D2+1....D1001=D1000+1)の式を自動で作成する方法を教えて下さい。 計算毎に毎回指定時間や分割数が違う計算を行う為、今は、その分のセルを手動(といってもドラッグでずーーーっと引きずるだけですが・・・)で作成する手間が掛かっております。 第3者が数字を入れるだけで、計算できるようにしたいと思っております。 宜しくお願い致します。

みんなの回答

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.5

失礼しました 単位時間辺りの分解能が 1000ということは、 Excelでは M/24000でしたね 1時間が1ではなく1日が1でした 失礼しました。 よって、A列はA1が (ROW()A1)-1)/(24*$C$1) ですね Const 補助分解能 = 24'時間 Const 基本時間単位 = 1'日 Const A列 = 1'列目 Const D列 = 4'列目 Sub TEST(ByVal 初期値 As Long, ByVal 終了値 As Long, ByVal 分解能 As Long, ByVal 開始行 As Long, ByVal シート As String) Dim COUNT As Long, メッシュ As Double, ランゲ As Range, temp As Long     開始行 = 開始行 - 1     With Sheets(シート)         Set ランゲ = .Range("A1:D" & CStr(終了値))         メッシュ = 基本時間単位 / (補助分解能 * 分解能)         For COUNT = 初期値 To 終了値 '            temp = COUNT + 開始行             ランゲ.Cells(COUNT + 開始行, A列).NumberFormatLocal = "[h]:mm:ss"             ランゲ.Cells(COUNT + 開始行, A列).Value = CDate(メッシュ * COUNT)             ランゲ.Cells(COUNT + 開始行, D列).FormulaR1C1 = "=R[-1]C[0]+1"         Next     End With End Sub 因みに A1001というのは間違いでは?

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.4

例えばN秒単位で測定したデータとします 分解能が1000ということは つまり0.001時間 ということになりますよね? B1が100ということは A列は 0/3600秒~356.4/3600秒 0.000時~0.099時 この間だけ変化すれば良い M番目のNの区間を求める式は (M-1)/分解能~M/分解能 だと思います。 A2はMが2番目なので M-1=1 つまり1が出ればよく ROW(A1)/分解能 で良いと思います。 Excelの式に直すと ROW(A1)/$C$1 ですね。 この時A列の書式設定を ユーザー定義で [H]":"mm":"ss としておけばよりグットだと思います。 ところで、 >自動で作成する… とは、 全く何も書き込まれていない 真っ新なシート 若しくはデータ取り込み直後の 値のみが書き込まれているシートに ボタンなどを押すと これらの内容が書き込まれている と、いうことでしょうか? ご連絡をお待ちしております。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

A2セルが時間の始まりでしたら次の式を入力して下方にドラッグコピーします。 =IF(A$1+(B$1-A$1)/C$1*(ROW(A1)-1)>B$1,"",A$1+(B$1-A$1)/C$1*(ROW(A1)-1)) A1セルが時間の始まりでしたら次の式をA2セルに入力して下方にドラッグコピーします。 =IF(A$1+(B$1-A$1)/C$1*ROW(A1)>B$1,"",A$1+(B$1-A$1)/C$1*ROW(A1)) D2セルには次の式を入力して下方にドラッグコピーします。 =IF(A2="","",D1+1)

回答No.2

A2: =$A$1+($B$1-$A$1)/$C$1*ROW(A1) D2: ご案内のとおり、、、 以降、A2、D2を下にコピー

  • shintaro-2
  • ベストアンサー率36% (2266/6245)
回答No.1

最初に a2に   A1+b$1/c$1 と入力して、あとはA1001までコピーしておけばすみませんか?

yotina
質問者

補足

回答有り難うございます。 目的は配布用として、自動でBOXをポップアップさせ、数値を入れるだけで、グラフ描画をさせたいと考えております。(グラフを見せたい) 私がやる分には式作成は構わないのですが、第三者にはエクセルシートは触らせないようにしたいのです。なので、裏で自動で行を挿入できるようなマクロ?を質問させて頂いております。

関連するQ&A

専門家に質問してみよう