powerapps - 在 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)))
推荐阅读
- javascript - 为什么预增量不适用于 setState
- python - 如何使用 Selenium 抓取更新的 HTML 表?
- sql-server - 主数据文件扩展名显示为 bak
- javascript - 如何检查集合中的继续课程?
- macos - docker:来自守护进程的错误响应:拨打 unix docker.raw.sock:连接:没有这样的文件或目录。苹果系统
- laravel - 如何在 docker 容器中重新启动 Laravel 队列工作者?
- javascript - 无效的正则表达式:无效的组说明符名称 - 在任何 iOS 设备上中断的正则表达式
- php - Laravel Vuejs 中的服务器端处理数据表
- python - 将最小值和最大值标记为阴影点?
- java - 将当前行与上一行进行比较。爪哇