aardio 文档

dotNet.ReoGrid 扩展库 - VLOOKUP 函数

VLOOKUP 函数用于在指定范围内搜索特定值,并返回该范围内指定列的数据。

示例场景

假设有以下数据表:
332

要在表格中查找值为7的数据,并返回第二列的对应数据,可以使用VLOOKUP函数如下:

sheet1["A7"] = "=VLOOKUP(7, A2:E6, 2)"

这个公式会在A2:E6范围内搜索索引值7:
333

结果:
334

当找到索引值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

在这种情况下,查找值4不在指定范围(A2:E6)的第一列中。因此,VLOOKUP会在排序后的第一列中寻找最接近且小于4的值,这里是3。

函数因此返回与索引值3对应的数据,结果是"Windows 2000":
336

精确匹配指定值

要强制ReoGrid精确匹配指定的索引值,可以将VLOOKUP函数的第4个参数设置为TRUE,例如:
337

结果是:
338

由于在搜索表中未找到指定的索引值,VLOOKUP函数没有返回任何结果。

// 在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。

Markdown 格式