Пожалуйста подскажите, можно ли обратиться к вставленному ворд файлу как объект в книге эксель? И как это правильно сделать? Задача - использовать вставленный ворд шаблон из эксель книги. Спасибо.
AlienSx, спасибо за уделенное внимание. Сделал функцию "RandomData", где фильтрую значение таблицы Tbl_1 столбца Val1 по параметру и рандомно выбираю строку в столбце Val2.
Код
(criteria as text) =>
let
filteredTable = Table.SelectRows(Tbl_1, each [Val1] = criteria),
rowsList = Table.ToRows(filteredTable),
rowCount = List.Count(rowsList),
randomIndex = Number.RoundDown(Number.RandomBetween(0, rowCount - 1)),
randomRow = rowsList{randomIndex},
randomRow1 = randomRow{2}
in
randomRow1
Далее в Tbl_2 добавляю столбец с рандомным значением из функции.
Код
let
Source = Excel.CurrentWorkbook(){[Name="Tbl_2"]}[Content],
ChType = Table.TransformColumnTypes(Source,{{"Val1", type text}, {"AddData", type text}, {"AddData2", type text}}),
AddCol = Table.AddColumn(ChType, "Val2", each RandomData([Val1]))
in
AddCol
Но эта функция сделана грубым колхозным методом, уверен есть более изящное решение. Боюсь, что на больших таблицах будет сильное зависание и тем более нет универсальности.
Пожалуйста подскажите как собрать две таблицы в Power Query с рандомным выбором значений из одной таблицы и сборке с другой. В таблице Tbl_1 данные для рандомного перебора, в Tbl_2 таблица с данными где есть значения из таблицы Tbl_1 столбца Val1. Т.е. в строке таблицы Tbl_2 для значения (к примеру "В1") столбца Val1 ищем соответствие из таблицы Tbl_1 столбца Val1, но это значение должно рандомно перебираться из списка. Предполагаю должна быть функция перебора по таблице Tbl_1 и добавляя новый столбец использовать эту функцию (ну это мысли в слух).
Файл пример, прикреплен. Желаемый результат показан в Tbl_3.
Спасибо большое за помощь. Относительно "/+1" согласен, что можно взять в расчет, но не уверен в стабильности таких записей, могут просто забыть. Отрабатывает на полном списке корректно, при группировке по срезу Name уже ошибки. Первым в сводной установил поле Name (изначально должен был расположить в таком порядке, моя вина) и расчеты сбились. В DAX формуле, как мне кажется (к сожалению могу только предположить ), нужно считать внутри группы по полю Name.
Сортировка данных уже произведена в PQ запросе по дате (Date) и по дата.время (Stime). Именно в таком порядке всегда и должно быть для верных расчетов, тогда не важно какой период выбран и какая была группировка.
Цитата
написал: Или выводить результат только когда выбрана отдельная дата?
Если выбрана отдельная дата с одной строкой, то значение соответственно будет Empty.
Цитата
написал: Или среднее значение для всех дат в периоде?
такая выборка не планируется.
Цитата
написал: Что должно быть в результате, если данные за предыдущий день отсутствуют (есть данные за 2 и 4 апреля, что вывести для 4 апреля?)?
Etime = 02.04.22 12:00, Stime = 04.04.22 12:00. Результат 48:00 часов
Есть таблица с исходными данными (лист "Source"), по ней построен запрос PQ для получения корректных дат и времени. Далее по запросу строится сводная таблица (лист "Pivot"), где есть начало (Stime) и окончание (Etime) рабочего времени. Нужно посчитать длительность (время) перерыва между окончанием (Etime) предыдущей строки и началом (Stime) текущей. И этот расчет нужен в PQ или DAX. Отображение соответственно в сводной таблице. Пожалуйста, подскажите как реализовать такое простое для эксель таблицы решение в PQ/DAX. Спасибо.
Пример вложен, колонка с желаемым результатом подсвечена зеленым.
Вычислить средний расход масла за определенное количество циклов в PQ или PP, Суммирование данных в диапазоне последних 10 циклов с последующим смещением.
Вычислить средний расход масла за определенное количество циклов в PQ или PP, Суммирование данных в диапазоне последних 10 циклов с последующим смещением.
Вычислить средний расход масла за определенное количество циклов в PQ или PP, Суммирование данных в диапазоне последних 10 циклов с последующим смещением.
Вычислить средний расход масла за определенное количество циклов в PQ или PP, Суммирование данных в диапазоне последних 10 циклов с последующим смещением.
Вычислить средний расход масла за определенное количество циклов в PQ или PP, Суммирование данных в диапазоне последних 10 циклов с последующим смещением.
Михаил Л, да действительно работает. Внутри кода какая-то высшая математика Часы сейчас верно суммирует, а вот суммирование масла некорректно отрабатывает если в таблицу добавить несколько пустых строк.
Вычислить средний расход масла за определенное количество циклов в PQ или PP, Суммирование данных в диапазоне последних 10 циклов с последующим смещением.
Михаил Л, да спасибо за Вашу версию. Как бы вычислить количество строк для суммы в 10 циклов и уже по ним пробегать получая результат?? Вопрос вопросов...
Вычислить средний расход масла за определенное количество циклов в PQ или PP, Суммирование данных в диапазоне последних 10 циклов с последующим смещением.
Вычислить средний расход масла за определенное количество циклов в PQ или PP, Суммирование данных в диапазоне последних 10 циклов с последующим смещением.
buchlotnik, интересное решение. Но есть не доработка, в диапазоне D15:D25 (10 циклов) и соответственно в диапазоне C15:C25 мы получим сумму 57:19 часов, а не 50:29. Так же Е15:Е25 получим 15 вместо 13. Сейчас считает по количеству строк, а нужно по сумме циклов. Т.е. каждая текущая ячейка должна иметь расчет диапазона за последние 10 циклов.
Вычислить средний расход масла за определенное количество циклов в PQ или PP, Суммирование данных в диапазоне последних 10 циклов с последующим смещением.
Михаил Л, в ячейке G12 - 14, потому что последние 10 циклов (D3:D12) - это сумма ячеек E3:E12 = 14 ед. Так же в ячейке F12 - 48:48, потому что последние 10 циклов (D3:D12) - это сумма ячеек C3:C12 = 48:48 часов.
Возможно не так сложно решить задачу, как объяснить
Вычислить средний расход масла за определенное количество циклов в PQ или PP, Суммирование данных в диапазоне последних 10 циклов с последующим смещением.
Пожалуйста подскажите как построить запрос в PQ или создать меру в PP для расчета среднего расхода масла за последние 10 циклов. Имеется таблица с данными/колонки: дата (Date), количество часов работы (Hour), циклы (Cyc), количество залитого масла (Oil). Формула расчета следующая Oil consumption = total oil in 10 cycles / total hours in 10 cycles.
Пример вложен: В примере видно что за первые 10 циклов (с 1-ой по 10-ю строку) мы имеем 49:49 часов и 12 ед. масла, где получаем средний расход = 0,24 ед. масла. Далее в следующие 10 циклов имеем 54:05 часов и 15 ед. масла, где получаем средний расход = 0,28 ед. масла. И т.д.
Задача - сделать эти расчеты в Pover Query или Pover Pivot откуда и будет построен график. Сделан запрос в PQ "OilConsTable" и добавлен в модель данных, осталось допилить напильником
В исходной таблице имеем поля "Item", "Interval" и "Next Due". Нужно, добавляя интервал к дате следующего выполнения, каждую строку повторить необходимое количество раз до даты 31.12. (текущий год + 5 лет). К примеру:
2-79-003-01 имеет интервал 365 дней и следующее выполнение 21.06.2021. Соответственно эта строка должна повториться 4 раза - с датами 21.06.2022, 21.06.2023, 20.06.2024, 20.06.2025
2-72-009-03 имеет интервал 183 дня и следующее выполнение 21.12.2020 . Соответственно эта строка должна повториться 10 раз - с датами 22.06.2021, 22.12.2021, 23.06.2022, 23.12.2022, 24.06.2023, 24.12.2023, 24.06.2024, 24.12.2024, 25.06.2025, 25.12.2025
Я "криво" смог добавить руками 5 дополнительных столбцов в запросе, которые потом объединил в один. Естественно там нет учета ограничения даты. Пожалуйста, подскажите как это сделать запросе PQ правильным решением? Интересует решение именно запроса PQ. Файл пример для извращений прикреплен.
Дмитрий(The_Prist) Щербаков, Вы абсолютно правы, в реальности все чуть сложнее. Из порядка 20 таблиц разных книг собирается запрос в PQ и загоняется в модель данных. По этой модели строится сводная (сводится по 2-м значениям и дате, остальное не выводися). Используя "показать детали" получаю все что надо до самого дна, единственное - не все надо и немного по другому. А конечная цель тривиальна - видеть нужный список в отдельном окне при клике на ячейку.
Дмитрий(The_Prist) Щербаков, спасибо за пример. Тоже думал в этом направлении, но хотелось более элегантно достать их без создания листа и его удаления. Но похоже вмешаться в процесс ShowDetail не получится, т.е. синтаксиса такого нет (по крайней мере я не нашел). Вот и думаю, мтоже кто уже реализовывал задачу
Jack Famous написал: но, если пересоздать сводную, то она будет не такая, как у вас (см. скрин)
группировка просто по другому сложена Selection.ShowDetail = True, но там засада в том, что в эту книгу создается новый лист с деталями. А мне бы только в массив заполучить их. Залезть, так сказать, под капот А в массив нужны, потому что еще планируется коррекция
Jack Famous,а какая по Вашему это таблица? Или структура не понравилась? 1. пункта "показать детали" у меня нет - на ячейку и правой кнопкой мыши 2. ссылки из примера не соответствуют друг-другу - в чем?
Пожалуйста, подскажите как получить детали ячейки (область данных) из сводной таблицы в массив, которые можно получить выбрав "показать детали"? Можно ли это сделать используя команду Selection.ShowDetail = True? Не формируя новый лист. Пример для теста вложен.