搜索并返回值

时间:2018-07-30 09:50:04

标签: excel vba loops search

简而言之,我有一个更新汇率的Excel工作簿,该工作簿受日期驱动(每两周一次)。 历史工作表显示了每两周的费率–日期是驱动因素,但是我遇到的问题是,当费率没有变化时,我需要公式来搜索每两周,直到最后一次更改费率。我不确定在这里使用什么公式。

EG: 两周一–设定价格; 双周2 –费率不变; 两周三–费率无变化; 双周4 –费率不变; 双周5 –更改为费率

从二进制的角度来看,它应该是:1,0,0,0,1 –因此,如果在两周内没有变化,那么它将在两周内恢复正常;但是,如果这没有变化,则返回两周一次。 (因此就像一个循环,直到到达最后进行的更改为止)。

任何帮助将不胜感激!

示例:

18年5月14日= 1; 18年5月29日= 0; 18年6月11日= 0; 18年6月25日= 1

因此,在6月11日-由于5月29日没有变化,它将从5月14日返回值。

5月29日,它将返回5月14日的值,因为5月29日的费率没有变化

如果6月25日汇率发生变化,则它将采用该日期的值,否则它将回到5月14日。

我希望这可以澄清我的问题。

1 个答案:

答案 0 :(得分:1)

我不确定我是否完全理解您的要求,但请看一下总体思路。

假设这些是您的数据:

enter image description here

您可以运行循环,该循环保存最后一次汇率变化的索引,然后将其填充到新列中(或覆盖它-由您决定):

Dim i As Integer
Dim last As Integer
last = 0
For i = 2 To 10
    If Cells(i, 2) = 1 Then
        last = i
    End If
    Cells(i, 4) =  Cells(last, 1) //this will save you the date the data were taken from  
    Cells(i, 5) = Cells(last, 3) // this will give you the rate for that date
Next i

希望有帮助-如果我不回答问题,请随时发表评论