POIを使用して、列に特定の値を持つ行の数を取得するためのExcel数式を作成しようとしています. フィルターを適用すると、カウントが自動更新されます。例:列に「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! を示しています。数式の結果ではなく、結果のセルに。式の編集をクリックしてEnterキーを押すと、適切な結果が表示されます。次に、列のいずれかをフィルタリングすると、更新が開始されます。
試しworkbook.setForceFormulaRecalculation(true)
ましたが、役に立ちません。SUMPRODUCT で何かが適切でないことを示す RuntimeException が発生します。
私が使用しているPOIのバージョンは3.9です
私の要件に使用できる他の機能や、この段階でどのように進めることができるかについて、誰かが考えていますか?