是否可以编写一个VBA代码来搜索完全相同的数据或过去最接近的数据?

时间:2014-10-07 07:33:31

标签: excel vba excel-vba

我有两本excel wordbook。一个在某些日期有参数变化,另一个有生产果汁的日期。喜欢这个

电子表格1

date of parameter change        %apples     %oranges
30/09/2014                           55            45
25/09/2014                           50            50
20/09/2014                           45            55

电子表格2

date of the created juice      %people that liked it    %apples  %oranges
    26/09/2014                     88                                  
    22/09/2014                     91                                  

我想将苹果和橙子的%参数复制到第二个工作簿中,以便结果看起来像

date of the created juice      %people that liked it    %apples  %oranges
    26/09/2014                     88                      50      50                  
    22/09/2014                     91                      45      55

所以基本上如果在26/09上制作果汁,那么我想拥有用于果汁的参数。显然没有使用30/09的参数,但使用了25/09的参数,因为它是在果汁制作的前一天。

是否可以使用VBA创建类似的内容?任何人都可以告诉我如何至少进行日期搜索部分吗?非常感谢!

3 个答案:

答案 0 :(得分:2)

您可以使用VLOOKUP公式来做您想做的事情,而不是使用VBA。

VLOOKUP的语法如下:

VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])

要查找与您要查找的值的近似匹配项,可以将range_lookup参数设置为TRUE

答案 1 :(得分:1)

如果您无法更改电子表格1 中信息的排序顺序,则会出现稍微复杂的INDEX(MIN(INDEX()))函数对。

Most Recent Juice Statistics

G2中的标准公式是

=IFERROR(INDEX(B$2:B$4, MIN(INDEX(ROW($1:$3)+($A$2:$A$4>$E2)*1E+99,,))),"")

可以向右和向下复制或填充。当没有符合您条件的日期时,IFERROR包装器会显示一个空白单元格(如2014年9月19日所提供的图像中所示)。为了演示而在单个工作表上生成的示例,但这两个表可以在不同的工作表中,甚至可以在不同的工作簿中。

答案 2 :(得分:0)

如果{2}在Book2 Sheet1 A1中,而date of parameter change在A1中则在C1中:

date of the created juice

横向和向下复制可以提供提供 Book2中的日期顺序相反,两张图纸同时打开(或者需要完整路径)。