我正在尝试编写一个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
有没有人知道我可以使用任何其他功能来满足我的要求,或者我在这个阶段如何进行?