Ошибки при группировке по списку в Power Query

У меня есть набор уникальных элементов (указатель), с каждым из которых связаны различные элементы другого набора элементов (в данном случае даты). В реальной жизни, если дата связана с индексом, элемент, связанный с этим индексом, появляется в файле, созданном в эту дату. Для комбинации дат, которая действительно происходит, я хочу знать, какие счета присутствовали.

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

Кажется, что я могу использовать результаты этого в своей более поздней работе даже без Re-make (я просто не могу правильно предварительно просмотреть ячейки), но я хотел бы знать, что происходит, что вызывает ошибку и нечетный код на шаге Navigation и почему он исчезает после шага ReMakeTable.


person alazyworkaholic    schedule 11.11.2016    source источник
comment
Мне кажется, что вы группируете таблицу по списку дат и получаете список элементов, соответствующих каждому списку дат, не так ли? Если да, то я с трудом понимаю, как вы собираетесь его использовать дальше, поскольку он, вероятно, сгенерирует множество уникальных списков дат только с одним (а может, двумя) соответствующими индексами.   -  person Eugene    schedule 30.11.2016


Ответы (2)


Это происходит потому, что при двойном щелчке по элементу автоматически сгенерированный код использует фильтр значений вместо индекса строки. который вы используете для получения единственной строки из таблицы. И поскольку у вас есть список в качестве значения, его следует использовать вместо {...}. Вероятно, UI не может работать со списками в такой ситуации, и он вставляет {...}, и это действительно неверное значение.

Таким образом, эта строка кода должна выглядеть так:

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

Затем он будет использовать фильтр значений.

person Eugene    schedule 30.11.2016

Это ошибка пользовательского интерфейса. Индекс, вычисляемый пользовательским интерфейсом, неверен: он должен быть 0 вместо [Dates={...}]. ... является значением-заполнителем и генерирует исключение «Значение не указано», если оно не заменено.

person Alejandro Lopez-Lago - MSFT    schedule 11.11.2016