是否可以编写一个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),那么可以复制到下方。