0

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です

私の要件に使用できる他の機能や、この段階でどのように進めることができるかについて、誰かが考えていますか?

4

1 に答える 1

0

それを私が直した。必要な数式でテンプレートを作成し、データをテンプレートに追加して機能させる必要がありました。数式は、Excel を開くときとフィルターで正しく評価されます。

于 2013-06-26T14:23:10.803 に答える