Страницы: 1
RSS
объединение данных в power query: суммировать один и тот же вид работ
 
допустим, есть вот такие данные, как в файле
как сделать так,чтобы один и тот же вид работ автоматически суммировался? то есть улица одна, все квартиры перечислялись через запятую и итоговая сумма по этим полям, столбец месяц можно исключить
можно через power query или каким то другим способом
как должно получиться указал в файле
 
Можно так, если месяц не нужен - можете убрать:
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица6"]}[Content],
    #"Grouped Rows" = Table.Group(Source, {"адрес", "вид работ"}, {{"где", each Text.Combine([где], ", "), type text}, {"стоимость", each List.Sum([стоимость]), type number}, {"когда", each Text.Combine([месяц], ", "), type text}})
in
    #"Grouped Rows"

При желании можно даже так:
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица6"]}[Content],
    #"Grouped Rows" = Table.Group(Source, {"адрес", "вид работ"}, {{"где и когда", each Text.Combine( List.Transform( List.Zip({[где], List.Transform([месяц], each " (" & _ & ")")}), Text.Combine), ", "), type text}, {"стоимость", each List.Sum([стоимость]), type number}})
in
    #"Grouped Rows"
Изменено: PooHkrd - 18.02.2020 18:18:21
Вот горшок пустой, он предмет простой...
 
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица6"]}[Content],
    #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"адрес", type text}, {"вид работ", type text}, {"где", type text}, {"стоимость", Int64.Type}, {"месяц", type text}}),
    res = Table.Group(#"Измененный тип", {"адрес", "вид работ"}, {{"кв_ры", each Text.Combine(_[где],","), type text},{"сумма", each List.Sum(_[стоимость]), type number}})
in
    res
Изменено: Дмитрий(The_Prist) Щербаков - 18.02.2020 18:29:58
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
PooHkrd,спасибо, тут я, слава богу, разобрался)
а можно немного усложнить и сделать тоже самое, только чтобы можно было смотреть в разрезе месяцев или кварталов,ведь он же месяца просто через запятую перечисляет
 
bobr2610, покажите в файле итоговую таблицу, чего вы хотите увидеть и в каком разрезе. Так непонятно.
Вот горшок пустой, он предмет простой...
 
PooHkrd,что написано значения не имеет,а вид примерно такой,ну или что то похожее
чтобы также суммировал, только например по кварталам или месяцам
 
Используйте вот эту кнопку:

Только если надумаете так группировать по кварталам, то столбцы с более мелкой градацией (даты/недели/месяцы) из источника придется предварительно удалить.
Вот горшок пустой, он предмет простой...
 
Не понимаю, что мешает в мое решение просто добавить еще один столбец для группировки: месяц или квартал?
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица6"]}[Content],
    #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"адрес", type text}, {"вид работ", type text}, {"где", type text}, {"стоимость", Int64.Type}, {"месяц", type text}}),
    res = Table.Group(#"Измененный тип", {"адрес", "вид работ", "квартал"}, {{"кв_ры", each Text.Combine(_[где],","), type text},{"сумма", each List.Sum(_[стоимость]), type number}})
in
    res
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков,ну где мои знания, а где ваши) я вообще первый раз подобным занимаюсь
 
Ну как бы...Тут по сути можно и мышкой наклацать: вкладка Преобразование -Таблица -Группировать по.
У нас просто укороченный вариант через написание ручками. Но суть не изменится.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков,а как сделать так, чтобы он суммировал данные поквартально? допустим смена арматуры он показывает эту работу 2 раза в зависимости от квартала, а хотелось бы сумму за 2, 3 и 4 квартал вместе, пример был выше.
 
Цитата
bobr2610 написал:
пример был выше.
ничего не понял. Покажите как именно чего хотите суммировать.
Цитата
bobr2610 написал:
хотелось бы сумму за 2, 3 и 4 квартал вместе,
вроде именно так и было в моем сообщении #3 от 18 Фев 2020 18:28:19

P.S. "поквартально" и "за 2,3 и 4 месяцы вместе" это разные вещи вообще-то.
Изменено: Дмитрий(The_Prist) Щербаков - 25.02.2020 12:35:41
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков,через месяцы или кварталы не важно
 
Знаете, и опять же: пример такой был выше. Просто сейчас добавился объем работ, так и его добавить в группировку не должно быть проблемой после небольшого изучения кода:
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица6"]}[Content],
    #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"адрес", type text}, {"объем работ", Int64.Type}, {"вид работ", type text}, {"где", type text}, {"стоимость", Int64.Type}, {"квартал", Int64.Type}}),
    res = Table.Group(#"Измененный тип", {"адрес", "вид работ"}, {{"кв_ры", each Text.Combine(_[где],","), type text},{"сумма", each List.Sum(_[стоимость]), type number},{"объем работ", each List.Sum(_[объем работ]), type number}})
in
    res
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков,спасибо,я понял,но все равно не совсем то,что хочется
как то так что ли, чтобы допустим можно было выбрать и посмотреть без проблем в каком квартале сколько было сделано
типа как срез что ли или фильтр
Изменено: bobr2610 - 25.02.2020 13:50:36 (добавил файл)
 
Дмитрий(The_Prist) Щербаков,я что то такое помню, мол если квартал=1 или 2 то суммировать что то там, какой то такой вид
 
Для этого надо сводную таблицу создавать - PowerQwery здесь не поможет. Либо какой-то параметр вводить, типа "Квартал 1" или "2" и при каждом его изменении обновлять запрос. Но лучше сводными.
Изменено: Дмитрий(The_Prist) Щербаков - 25.02.2020 14:15:40
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков,вот в сводных я это и реализовал,думал можно и по другому
 
Дмитрий(The_Prist) Щербаков,решил пойти немного другим путем,но теперь столкнулся с проблемой объединения таблиц
как теперь сделать всё аналогично?
 
Цитата
bobr2610 написал:
как теперь сделать всё аналогично?
аналогично с чем? Вы хоть пишите более понятно как-то, что ли. Вариантов несколько уже предложено.
Если аналогично изначальной задаче - то сначала объединяете обе таблицы, а потом применяете к ним все, что было выше предложено(в том виде, в каком надо):
Код
let
    source = Table.Combine({Excel.CurrentWorkbook(){[Name="Таблица63"]}[Content],Excel.CurrentWorkbook(){[Name="Таблица6"]}[Content]})
in
    source
если проблема в том, что из двух таблиц надо выбирать лишь уникальные номера "где", то запрос будет такой:
Код
let
    source = Table.Combine({Excel.CurrentWorkbook(){[Name="Таблица63"]}[Content],Excel.CurrentWorkbook(){[Name="Таблица6"]}[Content]}),
    types = Table.TransformColumnTypes(source,{{"адрес", type text}, {"объем работ", Int64.Type}, {"вид работ", type text}, {"где", type text}, {"стоимость", Int64.Type}}),
    groupe = Table.Group(types, {"адрес", "вид работ"}, {{"где", each Text.Combine(List.Distinct(_[где]),","), type text},{"сумма", each List.Sum(_[стоимость]), type number},{"объем работ", each List.Sum(_[объем работ]), type number}})
in
    groupe
Изменено: Дмитрий(The_Prist) Щербаков - 25.02.2020 17:48:37
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков,спасибо,именно так я и хотел)
Страницы: 1
Наверх