★「PFCバランス」の算出方法を変更 2020ver_8tei JAR_2021-05-27_1216_BUILD
authorsatomichan <git.20200328@...>
Thu, 27 May 2021 03:31:15 +0000 (12:31 +0900)
committersatomichan <git.20200328@...>
Thu, 27 May 2021 03:31:15 +0000 (12:31 +0900)
    1. たんぱく質エネルギー比率(%)

        =たんぱく質量(g)×4(kcal)÷エネルギー量(kcal)× 100

    2. 脂質エネルギー比率(%)

        =脂質量(g)×9(kcal)÷エネルギー量(kcal)× 100

    3. 炭水化物エネルギー比率(%)

        =100(%)- (たんぱく質エネルギー比率(%)+脂質エネルギー比率(%))

https://eiyo21.com/blog/fd_vol17/ の
「成分表2015年版(七訂)の計算方法のエネルギーを使った場合のエネルギー産生栄養素バランス」の計算方法による。

★「PFCバランス」の各値を整数に丸める(小数点以下で四捨五入)ように変更した。

src/main/java/jp/satomichan/nucalgen/Nucalgen.java

index 9eb18fcb5a579bdb36a2b4f0fcbff66ae3dfe5cb..3c9dbcc81486db38215c9106e0654b82dac26607 100644 (file)
@@ -207,20 +207,22 @@ public class Nucalgen {
                pfbBalanceRow1.createCell(4).setCellValue("F");
                pfbBalanceRow1.createCell(5).setCellValue("C");
 
-               final String sumPfc = "(" + _namedAreaMap.get("SUM_P") + "*4+" + _namedAreaMap.get("SUM_F") + "*9+" + _namedAreaMap.get("SUM_C") + "*4)";
+               final String sumKiloCalorieCell = _namedAreaMap.get("SUM_KCAL");
 
                rowIndex++;
                Row pfbBalanceRow2 = calcSheet.createRow(rowIndex);
                Cell pCell = pfbBalanceRow2.createCell(3);
                pCell.setCellStyle(csPool.getCellStyle("0"));
-               pCell.setCellFormula(_namedAreaMap.get("SUM_P") + "*4*100/" + sumPfc);
+               pCell.setCellFormula("ROUND(" + _namedAreaMap.get("SUM_P") + "*4*100/" + sumKiloCalorieCell + ",0)");
 
                Cell fCell = pfbBalanceRow2.createCell(4);
                fCell.setCellStyle(csPool.getCellStyle("0"));
-               fCell.setCellFormula(_namedAreaMap.get("SUM_F") + "*9*100/" + sumPfc);
+               fCell.setCellFormula("ROUND(" + _namedAreaMap.get("SUM_F") + "*9*100/" + sumKiloCalorieCell + ",0)");
+
                Cell cCell = pfbBalanceRow2.createCell(5);
                cCell.setCellStyle(csPool.getCellStyle("0"));
-               cCell.setCellFormula(_namedAreaMap.get("SUM_C") + "*4*100/" + sumPfc);
+               cCell.setCellFormula("100 - (" + new CellReference(cCell.getRowIndex(), 3).formatAsString() + " + "
+                                             + new CellReference(cCell.getRowIndex(), 4).formatAsString() + ")");
 
                return rowIndex;
        }