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

【急ぎです】エクセル上でデータの補間をする方法を教えてください。
現状あるデータは http://ultra.boy.jp/labo/02_clock.xls に置いてあります。

緯度経度データを一定でない感覚で取得してますが、
計測していない時点を含め、毎秒の緯度経度データが必要です。
空白セルを補間する最も簡単な方法を教えてください。

●質問者: まさきん
●カテゴリ:コンピュータ 科学・統計資料
✍キーワード:エクセル セル データ 感覚
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● ota2244
●20ポイント

http://www.hatena.ne.jp/

URLはダミーです。


少々ややこしいですが、下記の方法ではいかがでしょうか?


全て2行目の式として記述します。

一旦2行目に記述後、他の行にコピーしてください。


E列(現在の行から上方向の有効データ)「=IF(B2<>"",B2,E1)」

F列(現在の行から上方向の有効データまでの行数)「=IF(B2<>"",0,F1+1)」

G列(現在の行から下方向の有効データ)「=IF(B2<>"",B2,G3)」

H列(現在の行から下方向の有効データまでの行数)「=IF(B2<>"",0,H3+1)」

I列(有効データ、または中間データ)「=IF(B2<>"",B2,E2+((E2-G2)*F2)/(F2+H2))」


これでI列のデータが「longitude」の中間データとなります。

「latitude」も同様にすれば中間データが取れます。


VBAを使えばいかようにもなりますが、あえて使わない方法をあげてみました。

ご参考までにどうぞ。


2 ● Baku7770
●20ポイント

なんのデータかとか補間の目的にもよりますが、ここは単純な線形補間で構わないでしょう。

セルB3なら

=B$2+(B$36-B$2)*($A3-$A$2)/($A$36-$A$2)

になります。

参考:各種補間アルゴリズム

◎質問者からの返答

ありがとうございます。

一度はこの式で補完していたのですが、他のデータもあり、コピペの少ないやり方でできればと思います。


3 ● takemori
●40ポイント

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

ツール→マクロ→VisualBasicEditor

貼り付けて三角の再生ボタン押してください。

Sub test()

i = 2

With Worksheets("_2_clock")

Do While i < 8000

be = i

af = i

b = .Range("B" & i).Value

c = .Range("C" & i).Value

i = i + 1

For i = i + 1 To 8000 Step 1

If i > 8000 Then

MsgBox ("終了")

Exit Sub

End If

If .Range("B" & i).Value <> "" Then

af = i

Exit For

End If

Next i

If i > 8000 Then

MsgBox ("終了")

Exit Sub

End If

If (af - be) > 0 Then

For j = be + 1 To (af - 1) Step 1

.Range("B" & j).Value = .Range("B" & j - 1).Value + ((.Range("B" & af).Value - .Range("B" & be).Value) / (af - be))

.Range("C" & j).Value = .Range("C" & j - 1).Value + ((.Range("C" & af).Value - .Range("C" & be).Value) / (af - be))


Next j

End If

i = af

Loop

End With

End Sub

◎質問者からの返答

ありがとうございます!!

希望道理の結果が得られました!

これにて質問を終わらせていただこうと思います。

関連質問


●質問をもっと探す●



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