Страницы: 1
RSS
Распределить номера платежей по комплектам
 
добрый день,
в первой таблице в один столбец перечислены номера платежей, а во второй таблице построчно указано какое количество платежей относится к каждому комплекту.
Как составить формулу для подстановки номеров платежей из первой таблицы во вторую (распределить платежи по комплектам)?
Если формулой невозможно, то может быть с помощью Power Query?
Excel 2016
 
Код
F2:F9        =ПСТР(СЦЕПИТЬ(I11;J11;K11;L11;M11);2;10000)
G2:G9        =СУММ($D$1:$D2)
I2:M9        =ЕСЛИ(СТОЛБЕЦ()-СТОЛБЕЦ($H:$H)<=$G2-$G1;МАКС($H$1:$M1;$H2:H2)+1;"")
I11:M18      =ЕСЛИ(I2="";"";","&ИНДЕКС($A$2:$A$19;I2))
 
МатросНаЗебре, большое спасибо! :)
 
по результатам чтения книги "Скульптор данных в Excel с Power Query", из спортивного интереса )
Скрытый текст
 
Еще вариант в PQ:
Код
let
  data = Excel.CurrentWorkbook(){[ Name = "Комплекты" ]}[Content],
  paymentsList = List.Buffer ( Excel.CurrentWorkbook(){[ Name = "Номера_платежей" ]}[Content][Номера платежей] ),
  recs = List.Buffer ( Table.ToRecords ( data ) ),
  generate = List.Generate (
    () =>  [
      i        = 0,
      payments = List.Transform ( List.Range ( paymentsList, 0, recs{i}[#"кол-во платежей"] ), Text.From ),
      nextN    = recs{i}[#"кол-во платежей"],
      result   = Record.AddField ( recs{i}, "номера платежей", Text.Combine ( payments, ", " ) )
    ],
    each [i] < List.Count ( recs ),
    each [
      i        = [i] + 1,
      payments = List.Transform ( List.Range ( paymentsList, [nextN], recs{i}[#"кол-во платежей"] ), Text.From ),
      nextN    = [nextN] + recs{i}[#"кол-во платежей"],
      result   = Record.AddField ( recs{i}, "номера платежей", Text.Combine ( payments, ", " ) )
    ],
    each [result]
  ),
  toTable = Table.FromRecords ( generate )
in
  toTable
 
surkenny, спасибо, буду изучать
Страницы: 1
Наверх