Удалить последнюю строку в группе - PullRequest
1 голос
/ 28 мая 2020

У меня есть рабочая тетрадь с информацией, отсортированной по UKey; Мне нужно удалить последнюю строку в каждой группе.

Like so, В этом примере мне нужно удалить строку 524; диапазоны между UKeys не фиксированы.

Я безуспешно пытался вычислить новый столбец для ссылки на предыдущую строку, повторно отсортировал данные и удалил первую строку, играя с индексом ...

Помогите!

Ответы [ 2 ]

2 голосов
/ 28 мая 2020

Этот код должен работать:

let
    group = Table.Group(YourLastStep, "UKey", {"temp", Table.RemoveLastN}),
    combine = Table.Combine(group[temp])
in
    combine

Обратите внимание, если в группе будет одна строка - она ​​будет удалена. Если вам нужно сохранить эту единственную строку, используйте этот код:

let
    group = Table.Group(YourLastStep, "UKey", {"temp", each if Table.RowCount(_) = 1
                                                       then _ else Table.RemoveLastN(_)}),
    combine = Table.Combine(group[temp])
in
    combine
0 голосов
/ 28 мая 2020

Один из способов сделать это - создать отдельный запрос, в котором вы группируете по UKey и берете максимальное значение в качестве агрегата для столбца временных меток. Это должно дать вам таблицу с Ukey и ее меткой времени для строки, которую вы хотите удалить. После этого вы можете выполнить левое антисоединение в исходной таблице (сопоставление по обоим столбцам, а не только UKey), чтобы удалить строки, существующие в сгруппированной таблице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...