Страницы: 1
RSS
Power Query, суммирование со ссылкой на вышестоящую строку
 
Всем здравствуйте, помогите пожалуйста разобраться - никак не могу понять как сослаться на сумму вышестоящих строк в PQ как по аналогии с документов в примере.
Код
= Table.AddColumn(#"Добавлен индекс", "Пользовательский.2", each {[Индекс]-1}[Количество страниц в документе]+{[Индекс]}[Количество страниц в документе])
 
Квершлаг, если в ячейке A2 будет, например, 4 , то что должно быть в ячейке B2 ?
 
Михаил Л, здравствуйте, будет число 2 (=A1+B1). B1 всегда значение 1
Изменено: Квершлаг - 13.11.2022 09:14:56
 
Квершлаг, вы че не проснулись?
в a1 и b1 - заголовки столбцов
 
Квершлаг, какая формула в ячейке b2 ?
 
Цитата
Квершлаг написал:
(=A1+B1)
не работает!!!
 
Да :D  первым делом сюда зашел.

в B2 всегда значение 1 вне зависимости от значения в А2
 
Цитата
Квершлаг написал:
в B2 всегда значение 1
тогда так
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    Custom1 = List.Count(Source[количество листов]),
    Custom2 = List.Generate( 
        ()=> [i=0, a=1 ],
        each  [i]<Custom1,
        each [i=[i]+1, a=Source[количество листов]{[i]}+[a]],
        each [a]),
    Custom3 = Table.FromColumns(Table.ToColumns(Source)&{Custom2},Table.ColumnNames(Source)&{"a"})
in
    Custom3
 

при выставлении источника из другой книги не получается счёт страниц сделать

Код
let
    Source =  Excel.Workbook(File.Contents("C:\Users\......\ABVGD.xlsm"){[Name="Таблица1"]}[Content],
    Custom1 = List.Count(Source[Количество страниц в документе]),
    Custom2 = List.Generate( 
        ()=> [i=0, a=1 ],
        each  [i]<Custom1,
        each [i=[i]+1, a=Source[Количество страниц в документе]{[i]}+[a]],
        each [a]),
    Custom3 = Table.FromColumns(Table.ToColumns(Source)&{Custom2},Table.ColumnNames(Source)&{"a"})
    in
    Custom3
 
Михаил Л, не надо так. У вас для каждого шага List.Generate Source заново грузится с листа. Оберните Source в Table.Buffer.
А еще лучше, чтобы лишнее не буфферизовать, Source[количество листов] оберните в List.Buffer отдельным шагом. И на этот шаг далее ссылайтесь.
 
Квершлаг, а что у Вас в той таблице? Какая ошибка?
Мы не Ванги.
Изменено: surkenny - 13.11.2022 14:40:04
 
surkenny, на первом шаге ошибка. Я заключал в строке 2 имя листа в {} скобки, но никак не исправляется
 
Цитата
surkenny написал:
Table.Buffer..List.Buffer
сейчас не суть
 
Называется - найди 10 отличий кода из примера #12 и сообщения #9.
Где в коде Михаил Л вы увидели добавление столбца (Table.AddColumn)?
Вам нужно хотя бы каждую функцию из кода Михаила посмотреть в справке, погуглить видео/примеры с List.Generate.
А Вы наугад код куда-то вставляете :)
Наверное, нужно вот это:
Код
let
  wb = Excel.Workbook ( File.Contents ( "C:\Users\surke\Downloads\источник.xlsx" ) ),
  sh = wb{[ Item = "Лист1", Kind = "Sheet" ]}[Data],
  promHeads = Table.PromoteHeaders ( sh, [ PromoteAllScalars = true ] ),
  recs = List.Buffer ( Table.ToRecords ( promHeads ) ),
  gen = List.Generate (
    () => [ i = 0, count_accum = recs{i}[Количество страниц в документе] ],
    each [i] < List.Count ( recs ),
    each [ i = [i] + 1, count_accum = [count_accum] + recs{i}[Количество страниц в документе] ],
    each Record.AddField ( recs{[i]}, "Количество", [count_accum] )
  ),
  toTbl = Table.FromRecords ( gen )
in
  toTbl
 
Цитата
surkenny написал:
Наверное, нужно вот это
немного другое
Первое значение всегда единица. Следующее значение - сумма предыдущей строки колонок Количество страниц в документе и Количество
Код
let
  wb = Excel.Workbook ( File.Contents ( "C:\Users\Downloads\источник.xlsx" ) ),
  sh = wb{[ Item = "Лист1", Kind = "Sheet" ]}[Data],
  promHeads = Table.PromoteHeaders ( sh, [ PromoteAllScalars = true ] ),
  recs = List.Buffer ( Table.ToRecords ( promHeads ) ),
  gen = List.Generate (
    () => [ i = 0, count_accum = 1 ],
    each [i] < List.Count ( recs ),
    each [ i = [i] + 1, count_accum = [count_accum] + recs{[i]}[Количество страниц в документе] ],
    each Record.AddField ( recs{[i]}, "Количество", [count_accum] )
  ),
  toTbl = Table.FromRecords ( gen )
in
  toTbl
Страницы: 1
Наверх