【问题标题】:Excel Match Multiple Criteria with Match Type = 1 Breaks with Large DatasetExcel 匹配多个条件,匹配类型 = 1 大数据集中断
【发布时间】:2014-03-25 10:59:42
【问题描述】:

鉴于已经满足两个条件(日期),我想搜索数据中是否存在数字(例如 1430)。如果该数字不存在,我想返回最大值,对于这两个条件,小于我的目标数字。

我正在使用以下方法: http://support.microsoft.com/kb/59482

此外,我通过 Excel 的帮助系统依靠 MATCH 的帮助文件,概述 MATCH_TYPE:

1 or omitted: MATCH finds the largest value that is less than or equal to lookup_value. The values in the lookup_array argument must be placed in ascending order, for example: ...-2, -1, 0, 1, 2, ..., A-Z, FALSE, TRUE.

因此,我对数据进行了排序,使两个日期系列从最旧到最新排序,目标值从最小到最大排序。

这个:

{=INDEX(data!$C$2:$C$21, MATCH(a2&b2&c2,data!$A$2:$A$21&data!$B$2:$B$21&data!$C$2:$C$21,1))}

(其中 a2 = 2/16/01,b2 = 3/17/01,c2 = 1430)

在我的小测试集上运行良好,按预期返回 1425:

Trade   Maturity    Strike
15-Feb-01   17-Mar-01   600.00
15-Feb-01   17-Mar-01   625.00
15-Feb-01   17-Mar-01   650.00
16-Feb-01   16-Mar-01   1300.00
16-Feb-01   16-Mar-01   1325.00
16-Feb-01   16-Mar-01   1375.00
16-Feb-01   17-Mar-01   1400.00
16-Feb-01   17-Mar-01   1410.00
16-Feb-01   17-Mar-01   1425.00
16-Feb-01   17-Mar-01   1450.00
16-Feb-01   17-Mar-01   1475.00
16-Feb-01   17-Mar-01   1500.00
16-Feb-01   18-Mar-01   600.00
16-Feb-01   18-Mar-01   625.00
16-Feb-01   18-Mar-01   650.00
16-Feb-01   18-Mar-01   675.00
13-Mar-01   21-Apr-01   600.00
13-Mar-01   21-Apr-01   625.00
13-Mar-01   21-Apr-01   650.00
13-Mar-01   21-Apr-01   675.00

但是在包含超过 82,000 行数据的实际测试集上失败了。具体来说,当我在整个数据集上运行搜索时,它会返回目标交易日期之前最后一个日期的最大值(例如 650)。

我已经搜索了几个小时,让它在我的脑海中浸泡了几天,但似乎无法解决这个问题。有什么想法吗?

【问题讨论】:

  • 当你将 3 个数字连接在一起时(日期是数字)“600”大于“1500”,这就是它失败的原因,请参阅我的解决方案...

标签: excel indexing match


【解决方案1】:

试试这个数组公式:

=VLOOKUP(F1;IF((A2:A21=G1)*(B2:B21=H1);C2:C21;"");1;1)

根据您的区域设置,您可能需要替换“;”由“,”

F1 包含 G1 和 H1 交易和成熟度,在这种情况下是要寻找的行使价

【讨论】:

  • 这行得通。谢谢!!!!!!两个问题:1)您知道索引匹配方法失败的原因吗?并且,2) 公式中的 if 语句是否创建了一个新数组?
  • 另外,我怎么能确定它的最大价值小于我的目标?
  • 它不是索引+匹配失败,它的连接,数字将变成文本,在文本中,“600”大于“1500”。只要为每个交易排序了长行权,到期组合就会起作用。
  • 2) 是一个包含空文本的数组,表示没有匹配的交易、到期组合并包含匹配交易、到期组合的执行值
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-04
  • 2019-10-22
  • 1970-01-01
  • 1970-01-01
  • 2014-04-01
相关资源
最近更新 更多