我们有一个每周更新的文件,其结构如下:
ID Code Days Yield
KZW1KM093436 NTK273_1343 4 2.1781
KZW1KD913708 NTK091_1370 11 2.1683
KZK1KY011222 MKM012_0122 17 2.1602
KZW1KM063603 NTK182_1360 32 2.1419
KZW1KM093477 NTK273_1347 32 2.1419
KZW1KD913740 NTK091_1374 39 2.1342
KZW1KM063629 NTK182_1362 46 2.1269
KZW1KM093501 NTK273_1350 53 2.1202
我有以下静态数据点(天):
28
91
182
273
364
730
1825
2555
3640
我希望在文件获得更新时(基本上每周)获取这些静态日的插值。文件更新后,数据结构也会发生变化(按Days
排序)。如果数据中Days
列中的值等于Static
数据中的任何值,那么我想从Yield
中获取相应的值。否则,我想从Days
获取最接近的上限值和下限值并进行插值Yield
。
到目前为止,我能够在Static
列旁边添加另一列Yield
值:
Sub io()
Dim r As Integer
Dim maxval As Integer
Dim c As Integer
c = 5
Cells(4, c) = 28
Cells(5, c) = 91
Cells(6, c) = 182
Cells(7, c) = 273
Cells(8, c) = 364
Cells(9, c) = 730
Cells(10, c) = 1825
Cells(11, c) = 2555
Cells(12, c) = 3640
maxval = Cells(Cells(Rows.Count, 3).End(xlUp).Row, 3).Value
Range("B1") = maxval
r = 4
Do Until Cells(r, 3) = "" Or Cells(r, 5) = ""
If Cells(r, 3) > Cells(r, 5) Then
Range(Cells(r, 1), Cells(r, 4)).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Else
If Cells(r, 5) > Cells(r, 3) Then Cells(r, 5).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End If
r = r + 1
Loop
数据的结构变为:
ID Code Days Yield Static
KZW1KM093436 NTK273_1343 4 2.1781
KZW1KD913708 NTK091_1370 11 2.1683
KZK1KY011222 MKM012_0122 17 2.1602
28
KZW1KM063603 NTK182_1360 32 2.1419
KZW1KM093477 NTK273_1347 32 2.1419
KZW1KD913740 NTK091_1374 39 2.1342
KZW1KM063629 NTK182_1362 46 2.1269
KZW1KM093501 NTK273_1350 53 2.1202
现在我想删除所有冗余行并添加另一个使用插值的列,但无法继续。任何帮助将不胜感激。