根据Excel中2个数据集的时间戳选择数据值

时间:2014-05-13 19:56:25

标签: excel vba timestamp match lookup

我正在处理两组数据:一组是简单的位置数据,另一组是天气数据。位置数据和天气数据都具有与它们相关联的时间戳和日期,尽管天气数据是每小时的位置 - 因为位置数据是单个日期上的单个时间点。我希望做的是将位置数据与最近的定时天气记录相匹配,这样该位置将与该气象站当时记录的众多变量相关联。我的数据大致如此:

位置数据

5/16/12   9:16AM     Easting Northing

天气数据

5/16/2012  8:00AM   Temperature  Wind  Humidity Radiation etc. etc.
5/16/2012  9:00AM   Temperature  Wind  Humidity Radiation etc. etc.
5/16/2012  10:00AM   Temperature  Wind  Humidity Radiation etc. etc.

对于此示例,该位置将与该日期的9:00 AM天气数据匹配,因为它最接近上午9:00。此外,它也必须是DATE敏感的,因此当从5/1/2012到5/31/2012有一系列值时,它必须从5/16/2012中选择。此条目的最终输出如下所示:

5/16/12 9:16 AM Easting Northing Temperature风湿度辐射等等(这些天气变量是从2012年5月16日上午9:00的天气数据输入中选择的。)

我知道这是一个很多信息,也许是一个有问题的问题,但我已经挖了一段时间,似乎无法弄明白。下面提供的链接有点接近,但我需要排列每行的所有值。

Find the Closest match in EXCEL based on multiple criteria

1 个答案:

答案 0 :(得分:0)

此示例可以更容易地在数据库中完成,但如果您需要在Excel中执行此操作,则需要找到每个位置数据点的温度范围边界。然后,您将确定哪个边界点(上限或下限)与位置数据点的时间相比具有最低的绝对时间差。然后,那个时间是您想要的天气数据点。

您可以使用Array formulas在Excel中执行此操作。

以下是你如何做min:

   =MIN(IF(Weather_Date_Range<=Location_Data_Point_Date_Range,Weather_Date_Range,999999999999))

要做到最大值,请用MAX替换MIN,&lt; =用&gt; =和999999999999用0

然后,您将有两个公式比较(最小和位置数据点日期)和(最大和位置数据点日期)之间的绝对差异。绝对差异最小的是距离位置数据点日期最近的天气观测值。