セルを参照する SUMIF を含む数式をスプレッドシートに追加しようとしています。追加しようとしている式のコードは次のとおりです。
addFormula("(100 * " + dRangeCell + " / 256) * (SUMIF(B" + (dip.start+1) + ":B" + (dip.end+1) + ",\"<\"&" + dbThresholdCell + ")) / " + profile.getImageWidth(),
dipAreaPercentageCol, row, sheet, highlightedFormat);
重要な部分は SUMIF の条件です。ここでは、値が別のセルの値よりも小さい場合に合計を計算しようとしています。
コードを実行すると、次のエラーが発生します。
Warning: Lexical error: (100 * D18 / 256) * (SUMIF(B1:B2,"<"&D21)) / 332 at char 36 when parsing formula (100 * D18 / 256) * (SUMIF(B1:B2,"<"&D21)) / 332 in cell Profile!N24
それが不平を言っている文字はアンパサンドです。ただし、その正確な数式を Excel のスプレッドシートに貼り付けると、完全に機能します。
JExcel はアンパサンドを適切に解析する方法を知りませんか? 私の状況の回避策はありますか?