1

我有一组独特的项目(索引),每个项目都与另一组项目(在本例中为日期)的各种元素相关联。在现实生活中,如果日期与索引相关联,则与该索引相关联的项目出现在该日期生成的文件中。对于实际发生的日期组合,我想知道存在哪些帐户。

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 步骤后消失。

4

2 回答 2

1

发生这种情况是因为当您双击一个项目时,自动生成的代码使用值过滤器而不是您用来从表中获取单行的行索引。而且由于您有一个列表作为值,因此应该使用它而不是 {...}。在这种情况下,可能 UI 无法使用列表,它会插入 {...},这确实是一个不正确的值。

因此,这行代码应该如下所示:

    Navigate = Grouped{[Dates = {#date(2016,1,1), #date(2016,1,2), #date(2016,1,3)}]}[Idx],

然后它将使用值过滤器。

于 2016-11-30T16:41:20.530 回答
1

This is a bug in the UI. The index the UI calculates is incorrect: it should be 0 instead of [Dates={...}]. ... is a placeholder value, and it generates the "Value was not specified" exception if it is not replaced.

于 2016-11-11T20:56:35.973 回答