Страницы: 1
RSS
PQ как просуммировать столбцы в диапазоне (без учета названия).
 
Добрый день!

Подскажите

Необходимо как создать столбец в PQ который бы считывал кол-во не нулевых значений в диапазоне месяцев. Можно было бы эту задачу решить легко указав какие столбцы необходимо суммировать, но проблема в том что столбцы с месяцами будут постоянно меняться и формула доп.диапазона должна выбирать значения между столбцами нач.остаток и кон.остаток. Принцип простой необходимо выявить клиентов, которые не делали оплат в этом году.

И второй сопутствующий вопрос можно ли в PQ поменять формат названия столбцов с месяцами."01.01.2020" Надо чтоб звучал "Янв.2020" Обычное изменение форматов ячеек ничего не дает(.
 
Ответ на оба вопроса.
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Inserted Count" = Table.AddColumn(Источник, "Количество", each let h=Table.ColumnNames(Источник), s = List.PositionOf(h, "нач. остаток"), f = List.PositionOf(h, "кон. остаток") in List.NonNullCount( List.Range( Record.ToList(_), s+1, f-s-1 ) ) ),
    #"Renamed Columns" = Table.RenameColumns(#"Inserted Count", let h=Table.ColumnNames(#"Inserted Count") in List.Zip( {h, List.Transform(h,each try if Text.Length(_) = 10 then Date.ToText(Date.From(_),"MMM.yyyy") else _ otherwise _)} ))
in
    #"Renamed Columns"
Вот горшок пустой, он предмет простой...
 
Еще
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    a=Table.ColumnNames(Source),
    b=List.Count(a)-1,
    c = List.PositionOf(a,"нач. остаток")+1,
    d = List.Range(a,c,b-c),
    d2 = List.Transform(d, each Date.ToText(Date.From(_), "MMM.yyyy")),
    Custom1 = Table.AddColumn(Source, "aa", each List.NonNullCount(Record.ToList(Record.SelectFields(_,d)))),
    #"Renamed Columns" = Table.RenameColumns(Custom1,List.Zip({d,d2}))
in
    #"Renamed Columns"
 
Цитата
PooHkrd написал:
Ответ на оба вопроса.
К примеру вопросов нет Все работает норм. Спс за помощь, но при вставке в первоисточник  пишет

"Expression.Error: Имя "Inserted Count" не распознано. Убедитесь в том, что оно написано верно."
И промежуточные строки почему то считает неправильно, хотя названия нач.остаток и конечный остаток совпадают.(
 
Цитата
DemonAMT написал:
но при вставке в первоисточник  пишет "Expression.Error
очевидно, что как-то не так вставили в первоисточник, ведь
Цитата
DemonAMT написал:
К примеру вопросов нет Все работает норм
Но без текста запроса хотя бы, как вам помочь, даже не знаю.
Вот горшок пустой, он предмет простой...
 
Ок. Спс за помощь. Подскажите, а если после "Источника" прошло много шагов, как правильно прописывать Источник или хотя бы ссылку на верхнюю строку, видимо из за этого у меня не получается сделать дальнейшие операции.

В примере сделал несколько шагов. как теперь к нему приложить Ваши шаги?
Код
    #"Inserted Count" = Table.AddColumn(Источник, "Количество", each let h=Table.ColumnNames(Источник), s = List.PositionOf(h, "нач. остаток"), f = List.PositionOf(h, "кон. остаток") in List.NonNullCount( List.Range( Record.ToList(_), s+1, f-s-1 ) ) ),
    #"Renamed Columns" = Table.RenameColumns(#"Inserted Count", let h=Table.ColumnNames(#"Inserted Count") in List.Zip( {h, List.Transform(h,each try if Text.Length(_) = 10 then Date.ToText(Date.From(_),"MMM.yyyy") else _ otherwise _)} ))
Изменено: DemonAMT - 27.10.2020 13:05:33
Страницы: 1
Наверх