Объединение строк в Power BI/Power Query

Допустим, я тренирую команду по легкой атлетике и веду журнал результатов моих учеников, пробежавших 800 м за определенный период времени, в PowerBI. Моя таблица забега на 800 метров выглядит примерно так:

Студент Дата 800 м Райн 24.06.24 2:15 Райн 26.06.24 2:10 Райн 28.06.24 2:12 Алиша 24.06.24 2:09 Алиша 26.06.24 2:05 Алиша 28.06.24 2:03

Я хотел бы иметь отдельную таблицу со средними показателями за неделю:

Студент Среднее время Райн 2:12 Алиша 2:06

Как я могу сделать это в PowerBI? Самая большая проблема, которую я вижу, заключается в том, что я эффективно уничтожаю или объединяю несколько строк в одну, с чем я раньше не сталкивался.

У меня есть отдельная таблица с общими сведениями о студентах:

Студент Студенческий билет Сорт Райн 38356929 Юниор Алиша 96821695 Старшая

Я надеялся, что смогу использовать Power Query для добавления столбца в эту таблицу и получить значение в каждой строке как среднее время моих учеников на этой неделе. Однако я мог получить доступ к данным только в этой конкретной таблице для добавления столбца, а не к какой-либо другой таблице. Что еще я мог сделать?

можешь написать немного sql?'

Daniel A. White 27.06.2024 21:30

@DanielA.White Я не очень хорошо разбираюсь в SQL, но понимаю основы.

GoodAnalysis 27.06.2024 21:32

Я имею в виду в этом контексте? sqlfiddle.com/sql-server/…

Daniel A. White 27.06.2024 21:34

@DanielA.White Я понимаю, что делает этот код, но не уверен, как я могу применить его к своему контексту, когда работаю с несколькими таблицами в Power Query.

GoodAnalysis 27.06.2024 21:53
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
1
4
66
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Этот код powerquery вставлен в домашний...расширенный редактор...

let Source = Excel.CurrentWorkbook(){[Name = "Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Date", type date}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "Seconds", each #duration(0,0,0,Number.IntegerDivide(Number.From(Text.Split([800m],":"){0})*60+Number.From(Text.Split([800m],":"){1}),1))),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "WeekStarting", each Date.StartOfWeek([Date], Day.Monday),type date),
#"Grouped Rows" = Table.Group(#"Added Custom1", {"Student", "WeekStarting"}, {{"Average", each List.Average([Seconds]), type duration}})
in #"Grouped Rows"

берет данные из Таблицы 1 и вычисляет средний результат на дистанции 800 м за каждую неделю для каждого человека. Затем вы можете объединить ее в другую таблицу, показывающую профили учащихся, довольно просто с помощью дома... объединить запросы...

Загрузите обе таблицы в слой преобразования с одинаковым именем столбца. Просто внесите изменения в таблицу забегов на 800 м, а затем объедините с ней данные об учениках.

Ниже приведен код:

let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCsqozEtV0lEy0zcyASIgy8jK0FQpVgdFygwuZYAuZQGXMgJLOeZkFmckoploYIkhBzfSwBRDDm6mgbFSbCwA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Student = _t, Date = _t, #"800m" = _t]),
#"Added Prefix" = Table.TransformColumns(Source, {{"800m", each "0:" & _, type text}}),
#"Changed Type" = Table.TransformColumnTypes(#"Added Prefix",{{"800m", type duration}, {"Date", type date}}),
#"Calculated End of Week" = Table.TransformColumns(#"Changed Type",{{"Date", Date.EndOfWeek, type date}}),
#"Renamed Columns" = Table.RenameColumns(#"Calculated End of Week",{{"Date", "End of Week"}}),
#"Grouped Rows" = Table.Group(#"Renamed Columns", {"Student", "End of Week"}, {{"Week Average for 800m", each List.Average([800m]), type nullable duration}}),
#"Merged Queries" = Table.NestedJoin(#"Grouped Rows", {"Student"}, Student, {"Student"}, "Student.1", JoinKind.RightOuter),
#"Expanded Student.1" = Table.ExpandTableColumn(#"Merged Queries", "Student.1", {"Student ID", "Class"}, {"Student ID", "Class"})
in
#"Expanded Student.1"
Ответ принят как подходящий

Вы можете составить сводную таблицу следующим образом:

Щелкните правой кнопкой мыши запрос, который вы хотите суммировать, и выберите «Ссылка». Появится новый запрос, основанный на нем.

Теперь выберите столбец, по которому вы хотите сгруппировать, в вашем случае «Студент», щелкните правой кнопкой мыши и выберите «Группировать по». Дайте столбцу суммирования имя, выберите в качестве операции «среднее» и в качестве столбца время, в вашем случае «800 м».

Затем вы можете объединить ее с существующей таблицей учащихся и расширить только средний столбец.

Другие вопросы по теме