首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有没有办法强制对Power Query M表和记录表达式进行紧急求值?

有没有办法强制对Power Query M表和记录表达式进行紧急求值?
EN

Stack Overflow用户
提问于 2019-01-11 01:07:12
回答 1查看 292关注 0票数 1

我正在用PowerBI做蒙特卡洛的可视化工作。到目前为止,我能够执行蒙特卡洛模拟,但我被困在创建可视化上。

我创建了一个包含两列的表,iteration和result,这两列可以有任意数量的行(假设本例中有1.000行)。我希望以大约20个条形图的形式显示结果,但是,由于结果可以是任何数字,因此我必须将结果分组到20个范围内,我将在图形中显示这些结果。我完成了所有这些工作,我得到了一个很好的表,其中有一个名称(这是范围的文本表示)、最小值、最大值,以及在这个范围内有多少次迭代。

但是后来我注意到迭代的总数与1.000次不匹配,我检查了为什么会这样,我注意到似乎重新计算了多个变量。所以我创建了一些测试代码来看看发生了什么:

代码语言:javascript
运行
复制
    tableMinGevolg = Record.Field(Table.Min(MonteCarlo_runs, "gevolgTotaal"), "gevolgTotaal"),
    test1 = tableMinGevolg,
    test2 = tableMinGevolg,
    test3 = tableMinGevolg,

运行此代码可以/将导致测试变量的3个不同的值。因此,我深入研究,发现Power Query M对记录和表表达式使用惰性计算。因为蒙特卡洛模拟使用了随机性,所以我认为这会导致我的问题。每次引用该表时,都会对这些值进行评估,随机性可能会产生不同的结果,这会扰乱我的结果。

我想知道是否有可能强制对变量进行急切求值,这样我就可以确保在我计算这些范围时不会再次执行蒙特卡洛模拟?

EN

回答 1

Stack Overflow用户

发布于 2019-01-11 01:12:32

尝试使用Table.Buffer function将表加载到内存中。

代码语言:javascript
运行
复制
tableMinGevolg = Table.Buffer(Record.Field(Table.Min(MonteCarlo_runs, "gevolgTotaal"), "gevolgTotaal"))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54133644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档