вам достаточно поменять наименования столбцов с ценой и поставщиком (первые 2 строки кода) и код отработает эти названия, а также не будет зависеть от остальных (по которым, очевидно, группируемся). А последний вопрос (про автомат) - не понял. Код формирует таблицу, которую надо выгрузить на лист. Таблица выгружается с теми наименованиями столбцов, которые определены автором кода.
Формулы работают с итоговыми суммами, а не с отдельными записями. Формула для вычисляемого поля оперирует суммой исходных данных для каждого используемого поля.
Источник. Т.е. таблица сначала _просуммирует_ значения поля (Регион), благополучно получит ноль (это же текст) и подставит его в вашу формулу.
let fx_alloc = (t) => [tbl = Table.Buffer(t), fot = List.Buffer(tbl[ФОТ]), allocated_fot = List.Sum( List.Transform( List.Zip({fot, tbl[Итого]}), (x) => if x{1} is number then x{0} else 0 ) ), total_fot = List.Sum(fot), ratio = allocated_fot / total_fot, obj_fot = List.Transform( List.Skip(Table.ToColumns(tbl), 3), (x) => List.Sum(List.Transform(List.Zip({fot, x}), (w) => Value.Multiply(w{0}, w{1}))) / ratio ), result = #table({"obj", "cost"}, List.Zip({List.Skip(Table.ColumnNames(tbl), 3), obj_fot}))][result], Source = Table.SelectRows(Excel.Workbook(File.Contents(path), true, true), (x) => x[Kind] = "Sheet" and not Text.StartsWith(x[Item], "ЗАДАНИЕ")), trx = Table.TransformColumns(Source, {"Data", fx_alloc})[[Name], [Data]], xpand = Table.ExpandTableColumn(trx, "Data", {"obj", "cost"}) in xpand
Код что-то делает, не падая, но расчеты я бы проверил (я проверил несколько объектов в январе - работает как задумано)... А сводную из таблицы (или прям из запроса) сами сделайте, пожалуйста.
cnt = List.Count(transfor_col ),
emp_rows = Table.TransformColumns(tab, List.Transform(transfor_col, (x)=> { x , each if _ = null then 1/ cnt else _, Percentage.Type }))
похоже на распределение ФОТ нераспределенных сотрудников пропорционально количеству объектов в месяце, но не на решение согласно условиям задачи. ИМНО, конечно же. Но если "студенту" нравится - почему нет?
Progress_Life написал: Подскажите, тем способом это было возможно сделать данную задачку?
Группировка и расчет накопительного итога по группе - да, возможно, конечно. Другой вопрос - а как считать этот накопительный итог по отдельной взятой таблице? "Стандартный" способ, описанный в ютюбах - это добавить столбец индекса + List.Sum + List.FirstN (ну или то, о чем вы пишете, раз уж есть столбец Рейтинг, но только не List.PositionOf). Это дохнет на более или менее приличных объемах данных. Подходом "здорового человека" является использование List.Generate. Здесь описано как это обычно делается. Вот здесь еще рассматриваются варианты расчета накопительных сумм и проблемы с описанным вами способом...
Ma_Ri написал: Я поняла так, что у max.kirichenko , должен быть расчет без учета временного интервала (это я про его упоминание про целые дни,так как Alex , предоставил формулу, учитывая время) то есть за все дни аренды, включая первый и последний.
вот этого я вообще не понял у ТС, т.к. формула Alex учитывает время при аренде. Может оно не учитывает то, что ставка тоже может меняться по часам.. Непонятно.
Цитата
Ma_Ri написал: пока изучала ваш код получила огромное удовольствие.
не в коде дело - там есть, наверное, что править. Я выложил первое, что получилось в рез-те реализации подхода, который маячил перед глазами и покоя не давал какое-то время. Вот сам подход решения этой задачи - это да. Простота меня самого удивила и порадовала, когда "дошло" Рад, что Вам это тоже понравилось.
alsky-2003 написал: Мы занимаемся онлайн-кассами и чеками коррекции.
то есть вы - ОФД?
Цитата
alsky-2003 написал: Налоговая должна иметь возможность это сверить (с разумным отклонением времени) и признать чеки одинаковыми, чтобы не суммировать для налогообложения.
Да где вы такую налоговую нашли, что копается в косяках какого-то ПО с целью недопустить увеличения налогооблагаемой базы бизнеса? И какая налоговой разница - нал или безнал? Кнопочки на кассе нажимали? Чек от ОФД поступил? Ну вот и все, что нужно знать налоговой. А вот что действительно должна сделать налоговая - так это лишить ОФД лицензии за предоставление недостоверной информации.
regina516 написал: учитывая рабочее время и не учитывая выходные, праздники, нерабочие часы в будни
В каком часовом поясе (Мск или менеджера) показаны дата и время взятия отклика в работу? А рабочий день менеджера начинается в 9-30 по местному, т.е. для него тот же календарь, только в его часовом поясе? Сделайте, пожалуйста, детальный расчет 24й строки, где - отклик поступил 28.02.2025 в 14-51 по Мск или в 16-51 по времени менеджера - взят в работу 03 марта в 5-34 утра (в неизвестном поясе).