我有一组独特的项目(索引),每个项目都与另一组项目的各种元素相关联(在本例中为日期)。 在现实生活中,如果日期与索引相关联,则与该索引关联的项目出现在该日期生成的文件中。对于实际发生的日期组合,我想知道哪些帐户存在。
let
Source = Table.FromRecords({
[Idx = 0, Dates = {#date(2016,1,1), #date(2016,1,2), #date(2016,1,3)}],
[Idx = 1, Dates = {#date(2016,2,1), #date(2016,2,2), #date(2016,2,3)}],
[Idx = 2, Dates = {#date(2016,1,1), #date(2016,1,2), #date(2016,1,3)}]},
type table [Idx = number, Dates = {date}]),
// Group by
Grouped = Table.Group(Source, {"Dates"}, {{"Idx", each List.Combine({[Idx]}), type {number}}}),
// Clicking on the item in the top left corner generates this code:
Navigation = Grouped{[Dates={...}]}[Dates],
// Which returns this error: "Expression.Error: Value was not specified"
// My own code to reference the same value returns {0,2} as expected.
CorrectValue = Grouped{0}[Idx],
// If I re-make the table as below the above error does not occur.
ReMakeTable = Table.FromColumns(Table.ToColumns(Grouped), Table.ColumnNames(Grouped))
in ReMakeTable
似乎我可以在以后的工作中使用这个结果,即使没有重新制作(我也无法正确预览单元格),但我想知道是什么'继续进行导致导航步骤中的错误和奇数代码,以及为什么它在ReMakeTable步骤后消失。
答案 0 :(得分:1)
这是UI中的一个错误。 UI计算的索引不正确:它应该是0
而不是[Dates={...}]
。 ...
是占位符值,如果未替换,则会生成“未指定值”异常。
答案 1 :(得分:1)
这是因为当您双击某个项目时,自动生成的代码使用 值过滤器 而不是 行索引 < / strong>您正在使用从表中获取单行。由于您有一个列表作为值,因此应该使用它而不是{...}。在这种情况下,UI可能无法使用列表,并且它会插入{...},这确实是一个不正确的值。
因此,这行代码应如下所示:
Navigate = Grouped{[Dates = {#date(2016,1,1), #date(2016,1,2), #date(2016,1,3)}]}[Idx],
然后它将使用值过滤器。