[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『各点間の補間』(onono77)
A列 B列 C列
時間 速度 累計距離
秒 時速 m
0 10 0
1 15 4.2
2 20 9.8
3 23 16.2
4 22 22.3
5 23 28.7
6 20 34.3
7 15 38.5
8 12 41.3
A B C D E F G H 1 時間 速度 累計 時間 速度 累計 距離 2 秒 時速 m 秒 時速 m 3 0 10 0 0 10 0 0 4 1 15 4.2 0 10 0 1 5 2 20 9.8 0 10 0 2 6 3 23 16.2 0 10 0 3 7 4 22 22.3 0 10 0 4 8 5 23 28.7 1 15 4.2 5 9 6 20 34.3 1 15 4.2 6 10 7 15 38.5 1 15 4.2 7 11 8 12 41.3 1 15 4.2 8 12 1 15 4.2 9 13 2 20 9.8 10 14
H列に距離を入力 E3 =LOOKUP($H3,$C:$C,A:A) G3までコピー。 E3:G3下へコピー。
ってこと?
(GobGob)
H列なし。 E3 =LOOKUP(ROW(A1)-1,$C:$C,A:A)
でもいいかも?
(GobGob)
以下に示すように、G列には1から1mおきに数字をいれておき
E列・F列をどのように算出するか悩んでおりました。
例えば
G列に、2と入れた場合は、C3,C4の間にあるので
E列は、A3,A4の値を補間して0.48
F列は、B3,B4のの値を補間して12.38
G列に8と入れた場合は、
E列は、A4,A5の値を補間して1.68
F列は、B4,B5の値を補間して18.38
と手計算でもある程度できますが、
結構な個数があり、関数を駆使してできないものかと
考えておりました。
質問内容これで伝わりましたでしょうか?
よろしくお願いします。
A B C D E F G 1 時間 速度 距離 時間 速度 累計 2 秒 時速 m 秒 時速 m 3 0 10 0 0.0 10 0 4 1 15 4.2 0.24 11.19 1(3〜4列を補間) 5 2 20 9.8 0.48 12.38 2(3〜4列を補間) 6 3 23 16.2 0.71 13.57 3(3〜4列を補間) 7 4 22 22.3 0.95 14.76 4(3〜4列を補間) 8 5 23 28.7 1.14 15.71 5(4〜5列を補間) 9 6 20 34.3 1.32 16.60 6(4〜5列を補間) 10 7 15 38.5 1.50 17.49 7(4〜5列を補間) 11 8 12 41.3 1.68 18.38 8(4〜5列を補間)
(onono77)
Sub test() Dim iMax As Long Dim i As Long Dim j As Long Dim iC1 As Long Dim iC2 As Long Dim jSt As Long Dim jEd As Long
iC1 = 3 iC2 = 3 iMax = Cells(Rows.Count, "A").End(xlUp).Row
For i = 3 To iMax - 1 jSt = Cells(i, "C").Value * 10 jEd = Cells(i + 1, "C").Value * 10 For j = jSt To jEd - 1 Cells(iC1, "D").Value = (Cells(i + 1, "A").Value - Cells(i, "A").Value) * (j - jSt) / (jEd - jSt) + Cells(i, "A").Value Cells(iC1, "E").Value = (Cells(i + 1, "B").Value - Cells(i, "B").Value) * (j - jSt) / (jEd - jSt) + Cells(i, "B").Value Cells(iC1, "F").Value = iC1 - 3 iC1 = iC1 + 1 Next j Next i
For i = 3 To iC1 - 1 Step 10 Cells(iC2, "G").Value = Cells(i, "D").Value Cells(iC2, "H").Value = Cells(i, "E").Value Cells(iC2, "I").Value = iC2 - 3 iC2 = iC2 + 1 Next i End Sub
(???)
質問への回答ではありませんが、 直線補間でしたら単純な式で出来そうですが、区間の平均速度と距離に 乖離があるので、線形補正ではまずくはないでしょうか。 (Mook)
>1m毎の速度
こっちで考えてたのでこっちにこっそり。 一覧作ればいいや、って思ってたのでそれを。
DとFを作業列に使用。 A B C D E F G H 1 時間 速度 累計距離 累計距離 速度 2 秒 時速 m 3 0 10 0 0 10 4 1 15 4.2 1.19 4 0.1 10.12 5 2 20 9.8 0.89 4 0.2 10.24 6 3 23 16.2 0.47 4 0.3 10.36 7 4 22 22.3 -0.16 4 0.4 10.48 8 5 23 28.7 0.16 4 0.5 10.60 9 6 20 34.3 -0.54 4 0.6 10.71 10 7 15 38.5 -1.19 4 0.7 10.83 11 8 12 41.3 -1.07 4 0.8 10.95
G3に 0 H3に 10 を入力 G4に 0.1 G5に 0.2 を入力 G3からG5までを選択、必要分下に連続データフィルコピー
D4 =(B4-B3)/(C4-C3) データ数分下にフィルコピー
F4 =IF(ISERROR(MATCH(G4,$C$3:$C$11,0)),MATCH(G4,$C$3:$C$11,1)+3,MATCH(G4,$C$3:$C$11,0)+2) H4 =H3+INDEX($D$1:$D$11,F4,1)/10 F4とH4も必要分下にフィルコピー
F4とH4の範囲は適宜直してください。
あんまいい数式じゃないけど。こんなカンジかね。 (1111)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.