# dotNet.ReoGrid 扩展库 - VLOOKUP 函数

`VLOOKUP` 函数用于在指定范围内搜索特定值，并返回该范围内指定列的数据。

## 示例场景

假设有以下数据表：  
![332](../images/332.png)

要在表格中查找值为7的数据，并返回第二列的对应数据，可以使用VLOOKUP函数如下：

```aardio
sheet1["A7"] = "=VLOOKUP(7, A2:E6, 2)"
```

这个公式会在A2:E6范围内搜索索引值7：  
![333](../images/333.png)

结果：  
![334](../images/334.png)

当找到索引值7时，函数返回指定范围内第二列的数据——"Windows XP"。

## VLOOKUP函数使用注意事项

在ReoGrid中使用`VLOOKUP`函数时，需要注意以下几点：

1. **排序要求**：搜索表中作为查找参考的第一列数据必须按升序或降序排序，以确保函数的搜索逻辑正确运行。
2. **第一列限制**：`VLOOKUP`的搜索操作仅限于指定搜索表的第一列，无法让函数搜索其他列。
3. **数据类型一致性**：第一列可以包含数值或文本数据，但必须保持一致的排序方式，函数才能准确执行。
4. **处理不存在值**：当指定的索引值与第一列中的任何条目不完全匹配时，`VLOOKUP`将返回排序数据中最接近且小于该值的匹配项。例如，如果查找值为8，而第一列中的排序值为5、7和10，`VLOOKUP`将返回与7对应的结果，因为这是最接近且小于8的值。

## 处理不存在的查找值

当`VLOOKUP`函数遇到查找值与搜索范围第一列中的任何条目都不完全匹配时，它会返回最接近且小于该值的匹配项。例如，使用公式`=VLOOKUP(4, A2:E6, 2)`处理以下数据表：  
![335](../images/335.png)

在这种情况下，查找值4不在指定范围(A2:E6)的第一列中。因此，`VLOOKUP`会在排序后的第一列中寻找最接近且小于4的值，这里是3。

函数因此返回与索引值3对应的数据，结果是"Windows 2000"：  
![336](../images/336.png)

## 精确匹配指定值

要强制ReoGrid精确匹配指定的索引值，可以将`VLOOKUP`函数的第4个参数设置为`TRUE`，例如：  
![337](../images/337.png)

结果是：  
![338](../images/338.png)

由于在搜索表中未找到指定的索引值，`VLOOKUP`函数没有返回任何结果。

```aardio
// 在aardio中使用VLOOKUP函数的示例代码
import dotNet.ReoGrid;

// 创建表格控件
var winform = win.form(text="ReoGrid VLOOKUP示例";right=800;bottom=600)
var grid = ReoGrid.ReoGridControl(winform);
var sheet1 = grid.CurrentWorksheet;

// 填充测试数据
sheet1["A2:E6"] = [
    [1, "Windows 95", 1995, "16-bit", "Chicago"],
    [3, "Windows 2000", 2000, "32-bit", "NT 5.0"],
    [5, "Windows XP", 2001, "32/64-bit", "Whistler"],
    [7, "Windows Vista", 2007, "32/64-bit", "Longhorn"],
    [10, "Windows 7", 2009, "32/64-bit", "Vienna"]
];

// 使用VLOOKUP查找值7并返回第二列数据
sheet1["A7"] = "=VLOOKUP(7, A2:E6, 2)";  // 返回"Windows Vista"

// 精确匹配查找示例
sheet1["A8"] = "=VLOOKUP(4, A2:E6, 2, TRUE)";  // 不返回结果，因为4不存在

winform.show();
win.loopMessage();
```

> **提示**：在aardio中，ReoGrid控件的公式语法与Excel兼容，可以直接在单元格中输入公式字符串。使用VLOOKUP时，确保第一列已排序以获得正确结果。对于精确匹配，记得设置第四个参数为TRUE。