POI 3.12 VLOOKUP错误:当前工作簿中不存在指定的命名范围“其他工作表名称”

时间:2016-03-29 21:04:25

标签: java apache-poi

apache POI 3.12可以在不同的表格上进行VLOOKUP吗?假设我有一个公式如下(此公式适用于Excel):

VLOOKUP(N6,Baskets,14,0)

我正在尝试使用它从Baskets工作表中获取值,并在另一张工作表上使用它。

它给出了这个错误:

org.apache.poi.ss.formula.FormulaParseException: Specified named range 'Baskets' does not exist in the current workbook.

在搜索网页时,我还没有真正找到答案。 The POI API for VLOOKUP向我建议它只能用于当前工作表中指定的范围。但是,我可能只是在table_array的参数名称中添加含义。这就是我在文档上发现的所有内容。

在这里找到答案之后是我困惑的根源 根据{{​​3}},数组参数必须有多个列。第一列必须包含搜索条件,其他列必须包含用作索引参数的列。最后,index参数是相对于数组参数而不是工作簿的列索引。

1 个答案:

答案 0 :(得分:2)

我为你找到了一个有效的例子。

formulaCell.setCellFormula("IF(ISERROR(VLOOKUP('" + Baskets + "'!$A$4:$A$360,'" + processName + "'!$A$2:$B$80,2,FALSE)),\"\",VLOOKUP('" + Baskets + "'!$A$4:$A$360,'" + processName + "'!$A$2:$B$80,2,FALSE))" );

我使用VLOOKUP查找,不同工作表中的数据等于当前工作表中的数据。

processName只是一个用于比较我的数据的字符串。

我的问题是VLOOKUP声明周围的另一张!$A$4:$A$360 ""''的指定范围。