Excel - 用于查找指定范围内的第一个值满足条件的公式

时间:2016-01-14 01:39:53

标签: excel vba excel-vba

我在一个工作表中有一个唯一的日期/时间值(我们称之为WS1)。

日期&时间

01/01/2016 12:00:00

在另一个工作表中,我设置了两个列 - 我们将其称为WS2。

日期&时间

01/01/2016 11:00:00

01/01/2016 11:30:00

01/01/2016 12:00:00

01/01/2016 12:30:00

.....

十进制值

63.8

62.3

61.9

60.1

...

我的目标是使用WS1中的值在WS2的日期和时间中找到匹配的引用单元格。时间栏。然后,引用的单元格偏移1列以输入小数值列。

我们现在有相应值单元格的地址到日期& WS1中的时间。我现在希望指定从此值单元格到单元格列表底部的范围。

一旦指定了范围,我希望找到与该范围内的特定条件匹配的第一个单元格的地址。出于此要求的目的,我将逻辑评估指定为Value< 60.5。 一旦匹配此标准的第一个单元格的地址被识别,我希望抵消该地址并找到相应的日期和时间。时间。

步骤摘要:

  1. 查找匹配日期的地址& WS2中WS1的时间值
  2. 将此地址偏移1列以获取相邻的单元格引用
  3. 指定此“相邻单元格引用”到值列
  4. 末尾的范围
  5. 在符合逻辑要求的值列中查找第一个值的地址
  6. 将此地址偏移-1以恢复日期&时间栏
  7. 从步骤5中的地址获取值
  8. 感谢您的帮助。 我正在尝试使用INDIRECT,INDEX,MATCH,ADDRESS和OFFSET函数,但我可能只需要在VBA中进行。

1 个答案:

答案 0 :(得分:1)

试试这个:

=INDEX(Sheet4!A:A,MATCH(1,IF(Sheet4!A:A>=A1,IF(Sheet4!B:B<60.5,1,0),0),0))

它将找到第一个日期时间,其中列B小于60.5,即A1之后的日期。

这是一个数组公式。需要使用Ctrl-Shift-Enter确认。

使用您的数据更改对工作表的Sheet4引用。