Добрый день. Классическая задача, две таблицы количество и стоимость услуг, на выходе нужно получить сумму затрат по объектам и услугам. Добавил в расчет периоды действия договоров и цен, и впал в ступор. Во вложении пример вх. данных и желаемый результат. Буду признателен за помощь! Возможно у меня есть ошибки в структуре исходных данных, принимаю любые замечания.
buchlotnik, стоимость услуг рассчитывается за месяц без учета дней, просто возникла ситуация, когда в связи с пандемией часть договоров была приостановлена, а по ряду услуг изменились цены, пришлось ввести периоды действия договоров и период действия цен. Теоретически можно учесть ситуацию, когда договор приостанавливается в середине месяца и расчет необходимо провести за часть месяца. В идеале в первую таблицу необходимо еще добавить отчетный период.
buchlotnik, вроде все получилось, считает, единственное не смог сделать чтобы в результирующую таблицу автоматически добавлялись новые услуги (на примере ОФД, во вложении)
buchlotnik, Спасибо за мастер-класс! Нужно как-то отучать себя от макрорекордера в PQ и переходить на программирование. С меня пиво) Очень понравилась стилистика кода, структурно и понятно!
period = [a = Excel.CurrentWorkbook(){[Name="Отчетный"]}[Content]{0},s = Date.From(a[С]),p = Date.From(a[По])][[s],[p]]
я правильно понимаю, в "а" записываем первую строку таблицы, s и p переменные в которые сохраняем значения соответствующих столбцов из строки "а" непонятно с квадратными скобками и [[s],[p]] на конце, вернее не понятно что на выходе, это не список, не таблица...
Ну и список списков:
Код
lst = List.Distinct(List.Combine(List.Transform(rep[tmp], Table.ColumnNames))),
lst1 = {{"Период С", each List.Min([Даты])},{"Период По", each List.Max([Даты])}}
& List.Transform(lst, each {_,(x)=>List.Sum(Table.Column(x,_))})
[] - это запись(Record), строка таблицы если хотите. В данном случае содержит 3 поля - a,s,p; а для работы нужно только два - поэтому [[s],[p]]; что эквивалентно Record.SelectFields(record,{"s","p"}) - т.е. на выходе record из двух полей; а так да - в a записали строку, в s и p ее распарсили
да я-то с удовольствием, только вакансии у меня сейчас открыты - "специалист по разработке аналитических методик", "специалист по разработке лекарственных форм", "химик ВЭЖХ"... и вот хрен кого найдешь - все хотят на кверях писать
Соблюдение правил форума не освобождает от модераторского произвола