需要Excel高级查找/参考公式

需要Excel高级查找/参考公式,excel,excel-2007,Excel,Excel 2007,我试图根据三个条件在一张表中查找一个值。查找公式位于操作数据表中,其中包含每十分钟报告一次的机器数据,其结构类似于下表(为了简化而简化) DateTime状态=>应为 01/12/2010 01:00:01 ? 16 01/12/2010 02:00:01 ? 16 01/12/2010 03:00:01 ? 16 01/12/2010 04:00:01 ?

我试图根据三个条件在一张表中查找一个值。查找公式位于操作数据表中,其中包含每十分钟报告一次的机器数据,其结构类似于下表(为了简化而简化)

DateTime状态=>应为 01/12/2010 01:00:01 ? 16 01/12/2010 02:00:01 ? 16 01/12/2010 03:00:01 ? 16 01/12/2010 04:00:01 ? 0 01/12/2010 05:00:01 ? 0 01/12/2010 06:00:01 ? 0 ... 08/12/2010 07:00:01 ? 204 状态栏应参考包含机器运行状态数据的状态数据表。这只报告机器状态的变化,即不是周期性的。状态数据表的结构与以下类似(为了简化,再次简化)

错误代码开始时间结束时间 16 01/12/2010 00:00:01 01/12/2010 03:08:56 0 01/12/2010 03:08:56 06/12/2010 12:01:21 204 06/12/2010 12:01:21 15/12/2010 01:14:01 0 15/12/2010 01:14:01 20/12/2010 09:12:42 有什么想法吗

--编辑

从快速的网络搜索来看,似乎有两种方法可以使用多个条件进行查找。首先是添加另一列连接的valeus,并在连接的字符串上使用VLOOKUP。这是不合适的,因为我试图根据日期列上的<和>(小于/大于)进行搜索

我不知道如何使用MATCH来实现这一点,因为第三个参数定义了查找是否为a大于/小于,并且我无法将两者结合起来

例如:


“操作数据”!DateTime>“状态数据”!开始时间和操作数据!日期时间<‘状态数据’!EndTime

我认为您有两种选择:

1) 添加一个新列,该列是3个查找条件的串联,并基于此进行查找


2) 第二个选项是索引匹配数组公式,这里有一个示例:

如果工作表上的“状态”错误代码在A列,开始时间在B列

工作表上的“操作数据”日期时间在A列中

公式为,对于第2行中的单元格

INDEX('Status'!$A:$A,MATCH(A2,'Status'!$B:$B,1))

假设工作表“状态”中的数据在开始时间按升序排序

谢谢,在这里发布之前,我已经研究了这两种解决方案。我编辑了这个问题以补充这一点。作为参考,我无法工作的公式是匹配的(1;(ErrorStartTime>“10分钟数据”!B2)*(ErrorEndTime如果示例数据的结构与真实数据相似,则可以在开始时间列上使用VLOOKUP,而忽略结束列。只是因为结束包含的时间与下一个开始的时间相同。从数据中不清楚为什么01/12/2010 00:40:01、01/12/2010 00:50:01和01/12/2010 00:60:01应为0。这些都是f所有都在代码16的时间范围内。此外,查看错误代码数据,一行的结束时间似乎总是下一行的开始时间。如果是这种情况,则可以忽略结束时间,并且一个简单的匹配/索引公式将返回错误代码。可能在简化过程中丢失了一些重要内容?@chris neilsen我已编辑调整表格,使代码与时间相对应。状态更新是连续的,EndTime与下一个BeginTime相同,这是正确的。您能提供一个匹配/索引公式的示例吗? Error Code Start Time End Time 16 01/12/2010 00:00:01 01/12/2010 03:08:56 0 01/12/2010 03:08:56 06/12/2010 12:01:21 204 06/12/2010 12:01:21 15/12/2010 01:14:01 0 15/12/2010 01:14:01 20/12/2010 09:12:42
INDEX('Status'!$A:$A,MATCH(A2,'Status'!$B:$B,1))