powerquery - 如何使用 List.Generate 作为循环
问题描述
这可能很简单,但如果能帮助我朝着正确的方向前进,我将不胜感激。我正在尝试在电源查询中使用 list.generate 根据与 1-5 的差异来计算 tix 的数量。必须使用循环,例如 list.generate。
当前的 tix-1
当前的 tix-2
当前的 tix-3
当前的 tix-4
当前的 tix-5
= Table.AddColumn(#"Added Custom1", "Count", each List.Count(Table.SelectRows(#"Added Custom1", (C) =>
(
[Tix]=C[Tix]-(List.Generate(()=>1,each _ 5, each _ - 1))
)
)[Column1]))
这是样本数据。这个想法是让我能够将生成的一系列数字作为循环放入。这是最简单的表示,因为对于其他公式,我需要生成的数字作为 x,例如。(-1/2 x*x + 41/2 x)。
+-------------+------------+
TIX |TIX count |
5,000,243 | 0 |
6,991,904 | 0 |
6,991,905 | 1 |
6,991,906 | 2 |
6,991,907 | 3 |
6,991,908 | 4 |
7,000,234 | 0 |
+-------------+------------+
简单地说,我的目标代码应该是这样的,我相信可以通过 list.generate 来简化。
= Table.AddColumn(#"Added Custom1", "Count", each List.Count(Table.SelectRows(#"Added Custom1", (C) =>
(
[Tix]=C[Tix]-1
+[Tix]=C[Tix]-2
+[Tix]=C[Tix]-3
+[Tix]=C[Tix]-4
+[Tix]=C[Tix]-5 )
)
)[Column1]))
根据几乎类似的帖子尝试了另一个代码:Power Query M loop table/lookup via a self-join。这也会返回错误。请告知我做错了什么。
= Table.AddColumn(
#"Renamed Columns",
"Count",
List.Sum(
List.Generate(
() => [Continue = 1],
each [Continue]<6,
each [Count =
List.Count(
Table.SelectRows(
#"Renamed Columns",
(x) => x[Tix]-[Continue]= [Tix]))[Column1]],
each [Count])))
解决方案
通过研究,我找到了解决方案:
= Table.AddColumn(#"Added Custom2",
"Count", each List.Sum(
List.Generate(
() => [Count=List.Count(Table.SelectRows(#"Added Custom2",
(C) => C[Tix] = [Tix]-Continue)
[Column1]),
Continue =1],
each [Continue]<=10,
each [Final_Item = [Final_Item],
Continue =[Continue]+1],
each [Count])))
推荐阅读
- python - 不能用变量替换字符串
- excel - Excel:如何按顺序返回找到的值
- jquery - 如何使另一个 td 的特定表 onclick 可编辑
- c# - 如何基于@para-id将数据绑定到JSON文件
- java - 当我从 Spring Boot Jar 运行而不是通过 Eclipse 运行时出现 ClassNotFoundException
- php - 从 json 文件访问 2 个值之一
- r - 根据行索引选择两组列
- javascript - ReactJS:提交表单并根据单选按钮选择调用函数
- bash - 用于运行 Celery Flask 应用程序并发出请求的 Bash 脚本
- java - 我在activity_main.xml中看不到textview和其他元素布局android studio