私はStDev関数を使用する他の人が作成したレポートを作成しています。私はそれが十分に簡単だと思ったが、データは各レコードに複数の値を含むことができるので、各レコードからどの値を取るかを決定するifステートメントが使用されています。私はレコードに1つの値(StDevで使用されるべきもの)を含むExcelにテーブルをエクスポートしてから、そこでSDを計算してチェックを行いました。Crystal Reports 13数式フィールドの標準偏差
レポートやExcelの私には非常に異なる値を与えている:(
をので、私は(バックレポートへ行くと投票を決めるの一種として機能するようにSDの手書きを計算するためにいくつかの追加の式フィールドを使用しています指が交差すると値の3番目の値が生成されません...)。
私は構文エラーを解決しましたが、ランタイムエラーが発生しています以下に示すコードの...
私の数式フィールドは:
{@StDevArrayPopulate} - グループフッター
NumberVar Array varStDevArray;
NumberVar varCounter :=1;
NumberVar varMean := 0;
NumberVar varStDev := 0;
NumberVar varStDevArrayCount;
// START OF MEAN
// Sum of all of the values in the array
for varCounter:= 1 to varStDevArrayCount step 1 do
(
varMean := varMean + varStDevArray [varStDevArrayCount];
);
// Divide by the total number of values in the array
varMean := varMean/varStDevArrayCount; // !! This is the line that highlights after the error message !!
// END OF MEAN
// START OF STANDARD DEVIATION
// Subtract the mean from each value in the array and square the result
for varCounter := 1 to varStDevArrayCount step 1 do
(
varStDevArray[varStDevArrayCount] := (varStDevArray [varStDevArrayCount] - varMean) * (varStDevArray [varStDevArrayCount] - varMean);
);
// Sum of all of the values in the array
for varCounter:= 1 to varStDevArrayCount step 1 do
(
varStDev := varStDev + varStDevArray [varStDevArrayCount];
);
// Divide by the total number of values in the array
varStDev := varStDev/varStDevArrayCount;
// Square root of mean of differences
varStDev := Sqr(varStDev)
// END OF STANDARD DEVIATION
{@StDevArrayCalculate}に - - 詳細セクション
NumberVar Array varStDevArray;
NumberVar varStDevArrayCount;
varStDevArray [varStDevArrayCount] := {ValueToSummarise};
varStDevArrayCount := varStDevArrayCount + 1;
{@StDevArrayCalculate}のグループフッターに
NumberVar varMean;
NumberVar varStDev;
"The mean is " & varMean & ", and the standard deviation is " & varStDev & "."
私はRunning Totalフィールドを使用しようとしましたが、Populate formulaフィールドが実行される前に最初のレコードを数える必要があるため、エラーが発生していました。また、4番目のフィールドをヘッダに追加して、varStDevArrayCountを1に初期化してみました。
誰にも提案はありますか?