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

我有两个excel的词汇。 一个在某些date有参数改变,另一个有生产果汁的date。 喜欢这个

电子表格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创build类似的东西是否可行? 任何人都可以告诉我如何做datesearch部分至less? 这将是非常感谢!

您可以使用VLOOKUP公式来执行您想要执行的操作,而不是使用VBA。

VLOOKUP的语法如下所示:

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

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

如果您无法更改电子表格1中信息的sorting顺序,那么稍微复杂一点的INDEX(MIN(INDEX()))函数对就可以。

最近的果汁统计

G2中的标准公式是,

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

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

如果date of parameter change在Book2 Sheet1 A1中,并且date of the created juice在A1中,则在C1中:

 =VLOOKUP($A2,[Book2.xlsx]Sheet1!$A:$C,COLUMN()-1) 

如果 Book2中的date顺序相反,并且两张纸张同时打开(或者需要完整的path),那么可以复制到下方。