Power Query, среднее значение на основе значений, отображаемых в указанном диапазоне дат - PullRequest
0 голосов
/ 21 октября 2018

Контекст:

У меня есть набор данных для веса комбинаций грузовых автомобилей и прицепов, поступающих на мой сайт в течение нескольких лет.Я организовал свои данные по сезонам, поскольку я пытаюсь доказать, что грузовик: прицепы зимой заметно тяжелее из-за льда, снега и грязи.Теория состоит в том, что если вес тары в этом сезоне выше (вес грузовика после того, как он опустошит свою нагрузку), чем его средний вес тары (который мне нужно рассчитать на основе данных), то можно сделать вывод, что комбинации грузовик: прицепприбывает с дополнительным весом, за который мы платим частично, поскольку некоторое количество снега / льда / грязи падает в процессе опорожнения трейлера.

Что я сделал до сих пор:

  • Я определил произвольный диапазон дат для своих сезонов
  • Я сгруппировал Грузовик: Трейлер по: countчтобы получить столбец дубликатов и все строки, чтобы сохранить все мои данные
    • Я отфильтровал каждую комбинацию, которую видел менее 50 раз, так как я хочу хорошее представление для каждого грузовика: трейлер комбо, так что яможет лучше подчеркнуть повторяющиеся шаблоны
    • Я добавил индексный столбец, чтобы лучше отслеживать отдельных лиц, прежде чем расширять детали

Что мне нужно сделать:

  • Я хочу работать только с грузовиком: комбинации прицепов, которые взвешивались не менее одного раза за все четыре сезона
  • Мне нужно найти средний вес тары для грузовика: комбинации прицеповна основе расширенного диапазона как для лета, так и для осени (сухое время года) с сохранением необработанных данных тары для всех сезонов, поскольку мне необходимо в конечном итоге сравнить значения тары зимой с этим средним значением.

пример моих данных

Когда я закончу, я бы хотел, чтобы данные выглядели примерно так

Сводная диаграмма

данные запроса

1 Ответ

0 голосов
/ 21 октября 2018

Для вашего первого вопроса (все сезоны) вы можете добавить столбец, который содержит различное количество значений в [Сезон] для каждого [Драйвер: Трейлер].Затем отфильтруйте таблицу по этому столбцу, оставив только 4.Для этого добавьте следующий m-код в ваш скрипт в Расширенном редакторе.Измените деталь после in на #"DistinctCount Season"

#"DistinctCount Season" = Table.Join(#"insert name previous step","Driver:Trailer",
    Table.Group(#"insert name previous step", {"Driver:Trailer"}, 
    {{"DistinctCountSeasons", each Table.RowCount(Table.Distinct(_,"Season")),
    type number}}),"Driver:Trailer")

Вставьте название предыдущего шага, где указано.


Для второго вопроса:

Выможете использовать матрицу-визуал для этого в вашем отчете.Сначала создайте меру:

[AverageTare] = AVERAGE(table'[Tare])

Затем поместите [Season] в строки и [AverageTare] в значения.Вы можете создать группу (щелкните правой кнопкой мыши по [Season] в поле FIELDS), называемую [DrySeason], чтобы объединить значения для весны и лета.
Если это не работает для вас, изучите функцию AVERAGEX.

РЕДАКТИРОВАТЬ
В Excel вы можете использовать сводную таблицу.Поместите [Season] в строки и [AverageTare] в значения.Щелкните правой кнопкой мыши значение в сводной таблице.Выберите Value Field Setting и выберите Average.Затем выберите сезоны, которые вы хотите сгруппировать, щелкните правой кнопкой мыши и выберите Group.

РЕДАКТИРОВАТЬ 2
Чтобы добавить столбец в редакторе Power Query, который содержит среднее значение [Тара] для [Сезона] в каждой строке добавьте следующие шаги к вашему сценарию в Avanced Editor:

#"GroupedSeasonAvg" = Table.Group(#"Insert name previous step", {"Season"}, {{"AVG", each List.Average([Tare]), type number}}),
#"JoinOnSeason" = Table.NestedJoin(#"Insert name previous step",{"Season"},GroupedSeasonAvg,{"Season"},"AVGGrouped"),
#"ExtractSeasonAVG" = Table.ExpandTableColumn(JoinOnSeason, "AVGGrouped", {"AVG"}, {"SeasonAVG"})

Это работает примерно так:

  1. "GroupedSeasonAvg":Создает таблицу с полями для каждого [Сезона]
  2. "JoinOnSeason": Создает новый столбец с таблицами, соединяющими значение [Сезон] для каждой строки с [Сезон] в сгруппированной таблице.
  3. #"ExtractSeasonAVG": расширить каждую таблицу и оставить только [AVG].
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...