在 Powerapp 中计算图库中数字的平均值

Calculate average of numbers in Gallery in a Powerapp

我目前正在制作一个 powerapp,学生应该可以在其中输入他们的成绩。我目前正在处理显示平均值和 运行 的函数,解决我无法在 ForAll() 中使用 Set() 的问题。我有一个画廊的所有平均成绩。

我目前使用的代码是

Set(sum, 0);
Set(weight, 0);

ForAll(
    GradeGallery.AllItems,
    sum = sum  + ThisRecord.Note * ThisRecord.Gewichtung;
    weight = weight + ThisRecord.Gewichtung;
);

Set(average, sum / weight)

Power Apps 的语言 (Power Fx) 的核心是一种声明性(函数式)语言,而不是命令式语言:虽然有一些方法可以进行命令式计算,但如果您避免使用它们,您将充分利用该平台.在这种情况下,您可以使用以下表达式来计算图库项目的平均值:

Sum(GradeGallery.AllItems, ThisRecord.Note * ThisRecord.Gewichtung) /
    Sum(GradeGallery.AllItems, ThisRecord.Gewichtung)

请注意,如果图库中没有任何项目,这可能会导致除以零,因此您可以使用类似下面的表达式来避免这种情况:

With(
    { all: GradeGallery.AllItems },
    If(
        CountRows(all) = 0,
        0,
        Sum(all, Note * Gewichtung) / Sum(all, Gewichtung)))