0

我正在尝试编写一个excel公式来使用POI获取列中具有特定值的行数。当我们应用过滤器时,计数应该会自动更新。例如:如果一列的值是“Y”或“N”,我需要获取特定列中具有“Y”的行数。当我们对 excel 中的任何列应用过滤器时,此计数应自动更新。

我尝试使用,

cell1.setCellFormula("COUNTIF(S11:S6768,\"N\")");

但 COUNTIF 不会自动更新过滤器。

我也试过,

cell1.setCellFormula("SUMPRODUCT(--(S11:S6768=\"N\"),SUBTOTAL(3,OFFSET(S11,ROW(S11:S6768)-ROW(S11),0)))+(NOW()*0)");

但这显示#VALUE!在结果单元格中,而不是公式的结果。一旦我点击编辑公式并按回车,它就会显示正确的结果。然后当我们过滤任何列时它开始更新。

我试过workbook.setForceFormulaRecalculation(true)了,但没有帮助。我收到一个 RuntimeException,说 SUMPRODUCT 中的某些内容不正确。

我使用的 POI 版本是 3.9

有没有人知道我可以使用任何其他功能来满足我的要求,或者我在这个阶段如何进行?

4

1 回答 1

0

我修好了它。我必须使用所需的公式创建模板并将数据附加到模板以使其正常工作。公式在打开 excel 和过滤器时评估良好。

于 2013-06-26T14:23:10.803 回答