Excel 2010中的二维查找

时间:2012-01-08 07:30:27

标签: excel formula lookup

我的数据看起来与此类似

表包含多个行标签标题(堆叠行标签):

                     |20%     |30%  |
|25/01/11   |buy     |1       |1.1  |
|           |sell    |0.8     |0.9  |
|27/01/11   |buy     |1.02    |1.03 |
|           |sell    |1.1     |1.2  |
|01/02/11   |buy     |1.05    |1.07 |

我正在尝试使用查找公式根据交易的日期和类型检索数据:说明什么是27/01/11卖出价的30%的倍数 任何帮助都将非常感谢!

UPD

必须有一个解决方案,而不添加一个独特的列来查找... Excel 2000有一种方法可以通过使用自然语言公式来实现,正如您在方法2,示例2中的文章中所看到的 - support.microsoft.com/kb/275170

UPD 2

有可能吗?日期不仅会有差距,而且还会跳过一两天......就像在示例中一样

UPD 3

enter image description here

目前发布的解决方案存在问题:

如果查询日期是26/01/2011,公式将返回N / A(在完美的解决方案中,它应返回最接近的匹配(向下舍入到上一个日期) - 即,如果列中没有查找日期然后应返回上一个最近的日期)

堆叠行标题意味着我将行排列成这样的组(日期和类型是行标题) enter image description here

4 个答案:

答案 0 :(得分:4)

如果F1包含所需的日期,F2%,F3“购买”或“卖出”

=INDEX($C:$D,MATCH(F1,$A:$A,0)+IF(F3="sell",1,0),MATCH(F2,$C$1:$D$1,0))

考虑所有三个因素

修改

根据您的修改,要获得您想要的内容,您只需要将完全匹配参数从0更改为1。来自Excel帮助文件

  

Match_Type:1或省略MATCH查找小于或等于lookup_value的最大值。 lookup_array参数中的值必须按升序排列

所以公式变为

=INDEX($C:$D,MATCH(F1,$A:$A,1)+IF(F3="sell",1,0),MATCH(F2,$C$1:$D$1,0))

此外,如果您想对%值执行相同操作,请对另一个MATCH执行相同的操作

=INDEX($C:$D,MATCH(F1,$A:$A,1)+IF(F3="sell",1,0),MATCH(F2,$C$1:$D$1,1))

答案 1 :(得分:1)

假设您的数据在A列中开始,而您的查询日期在单元格F1中,请尝试以下操作:

=INDEX(D:D, MATCH(F1,A:A,0) + 1, 1)

这可以通过查找与日期(MATCH)匹配的行,将其偏移1来获取卖出行,并使用INDEX函数从列D中检索值。

答案 2 :(得分:0)

考虑你有从A1开始的值。日期25-01-2011将在A2,27 / 01将在A4等20%,将在C1和30%,将在D1

在F1中查找你想要的查找日期,在G1中查找你想要的百分比(20或30%),在H1(买或卖)中查找你想要的类型

在I1中输入以下formuka。你有结果。

=INDEX(C2:D6,IF(H1="buy",MATCH(F1,A2:A6,0),IF(H1="sell",MATCH(F1,A2:A6,0)+1)),MATCH(G1,C1:D1,0))

答案 3 :(得分:0)

在这些情况下,我发现在数据的左侧包含一个“关键”列很有帮助,这大大简化了公式。在数据的左侧插入一列,并将其设置为日期和买/卖的组合(A2 = B2&“_”& C2):

                                   |20%     |30%  |
25/01/11_buy  |25/01/11   |buy     |1       |1.1  |
25/01/11_sell |           |sell    |0.8     |0.9  |
27/01/11_buy  |27/01/11   |buy     |1.02    |1.03 |
27/01/11_sell |           |sell    |1.1     |1.2  |
01/02/11_buy  |01/02/11   |buy     |1.05    |1.07 |

然后,只需做一个vlookup +匹配:

=VLOOKUP({needed date and type}, A1:E6, MATCH({needed %}, A1:E1,0),0)

这种方法的优点是它使公式简单易读