在 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,Sum(all,Note * Gewichtung) / Sum(all,Gewichtung)))

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...