Excel从当前行和上一行获取值

时间:2017-07-09 15:47:50

标签: excel-formula apache-poi vlookup

我试图从上面的当前行和行获取下拉列表的值。我使用了excel的VLOOKUP函数。如截图给出的帐户类型(列A)我想得到它&#39 ; s当前和上面的行的帐户名称。 换句话说,当A4值是ASSET时,我想获得下拉列表E4的账户名称(房子,家具,商店)。

  CellRangeAddressList parentRange = new  CellRangeAddressList(1, SpreadsheetVersion.EXCEL97.getLastRowIndex(), PARENT_COL,PARENT_COL);
  DataValidationHelper validationHelper=new HSSFDataValidationHelper((HSSFSheet) chartOfAccountsSheet);
  DataValidationConstraint parentConstraint=validationHelper.createFormulaListConstraint("VLOOKUP($B2,$A$2:$B"+ SpreadsheetVersion.EXCEL97.getLastRowIndex()+",2,TRUE)");
 chartOfAccountsSheet.addValidationData(parentValidation);

enter image description here

1 个答案:

答案 0 :(得分:0)

你可以试试这个。
创建动态命名范围。
转到公式 - >名称管理员 - >新的并定义一个范围。 使用此公式可参考:

=OFFSET(Sheet1!$B$2,0,0,COUNTA(Sheet1!$B:$B)-1,1)

这将创建从B2到最后一个非空行的范围。

然后继续,突出显示您想要下拉列表的范围。
点击数据验证 - >然后单击列表F3以选择列表的命名范围。
当你走的时候你的范围会扩大,下拉列表会选择这些项目。 注意:它不会重复。
希望能帮助到你。