Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 След.
PP. Объединить виртуальные таблицы
 

Давно, в PQ написал «запрос», рассчитывающий распределение величины уровня складского запаса по временным интервалам (в разных контекстах).

От 0 до 45 дн – 1000руб

От 46 до 90 дн – 2000руб

И т.д.

Логика расчета простая, запас в на дату отчета, делим на среднедневные продажи и полученное значение распределяем по временным интервалам.

Сейчас возникла потребность добавить «срез», в котором можно выбрать «период» за который должна рассчитаться среднедневная продажа. Для решения задачи «расчётчик» нужно перенести из PQ в PP. А с PP я не «очень»

Исходные данные – таблица продаж, и таблица с остатками.

Я создал 2 виртуальные таблицы

1я с остатками

Код
EVALUATE
 var t1 = 
     ADDCOLUMNS(SUMMARIZE (
         'Stock',
         'Stock'[ЦС],
         'Stock'[Код]),
         "Кол",
         CALCULATE(SUM('stock'[Запас])))
  RETURN 
 t1

2я со среднедневной отгрузкой

Код
EVALUATE
 var t2 = ADDCOLUMNS(
     SUMMARIZE (
     'Sale',
     'Sale'[Склад],
     'Sale'[Код]),
     "AV_S", 
         CALCULATE(
             DIVIDE (
                 [реал],
                 SUMX (
                     VALUES ( 
                         'sale'[Дата] ),
                         CALCULATE (
                             MAX ( 'sale'[Кол-во дней] ) ) ) )))
         
  RETURN 
  t2

Для расчета уровня запаса и его декомпозиции по временным интервалам, как я понял, нужно объединить эти виртуальные таблицы по ключам «Склад», «Код». Вот с этим возникли сложности.

Прошу оказать помощь и подсказать варианты решения.

Спасибо.

Изменено: Neostt - 02.08.2024 16:08:35
PQ. Ошибка "При вычислении возникло переполнение стека"
 
Добрый день. List.Generate возвращает список, из которого нужно взять последнее значение
Проблема в том, что методы List.Last или спиcок{count} возвращают ошибку "При вычислении возникло переполнение стека"
Прошу оказать помощь в решении проблемы
Спасибо.
DAX. Мера вычисления среднедневных продаж в разных контекстах
 
Добрый день.
Есть таблица продаж за период в разрезе позиций и подразделений.
В PQ к таблице подтянул кол-во дней когда позиция была доступна для продаж.
Получившуюся таблицу передал в модель данных.
Возникла сложность в написании универсальной меры вычисления среднедневных продаж в разных контекстах.
В контексте кода написанная мной мера возвращает корректные данные, в остальных контекстах нет.
Иными словами:

Для расчета среднедневной продажи в контексте подразделения (или компании ) необходимо по позиционно рассчитать среднедневные продажи и сложить их. По позиционно, мера возвращает корректные данные, но как сложить полученные значения, не понимаю.


Прошу оказать помощь.
Пример во вложении.
PQ. Самый быстрый метод расчета нарастающего итога.
 
Добрый день.
Может кто разбирал данную проблему и сможет подсказать.
Интересует самый оптимальный метод расчета (самый быстрый) нарастающего итога в PQ.
Я использую List.Sum(List.Range(list_zaps, 0, [Индекс])).
Есть иные методы, которые позволят ускорить вычисление?
Спасибо.
Распределение количество по строкам исходя из их доли и ограничений мин и макс.
 

Добрый день.

Есть задачка распределить потребность в sku  по поставщикам.

Исходные данные:

Требуемое кол-во sku

Желаемая доля поставщика в закупке sku

Минимальное кол-во, от которого поставщик готов запустить заказ в производство (МинНЗ)

Максимальное кол-во, возможности производства поставщика. (МахНЗ )

За ключевое значение для достижения желаемой цели я выбрал корректировку “Желаемая доля поставщика в закупке sku” - если вышли за границы диапазона  минимальное - максимальное кол-во доступное для заказа.

Как пересчитать доли с учетом ограничения по максимальному кол-ву я реализовал следующий алгоритм:

Рассчитываем:

Верх_гр = МахНЗ/ Требуемое кол-во sku

Полученное значение (Верх_гр) сравниваем с Желаемой долей

Если Верх_гр <= Желаемая доля тогда по данному поставщику значение желаемой доли меняем на Верх_гр.

По остальным строкам пересчитываем долю:

(Желаемая доля / сумма (желаемая доля по оставшимся строкам))*(1- сумма (желаемая доля по замененным значениям на Верх_гр)

Далее, алгоритм повторяем пока не останется значений где Верх_гр <= Желаемая доля.

Пример (сформированный на «коленке» во вложении)

Не понимаю, как сформировать алгоритм учитывающий одновременно верхние и нижние границы допустимого диапазона.

Если реализовывать перерасчет отдельно для минимальной границы и максимальной границы, при о переделённых значениях процесс подбора «долей» может работать бесконечно.

Прошу оказать помощь в создании алгоритма. (идеально в PQ)

Функция ТЕНДЕНЦИЯ (TREND) в Power Qwery
 
Добрый день. Попросили перенести "расчетник" прогноза продаж из Excel в PQ
Столкнулся с тем, что в PQ нет аналога функции "ТЕНДЕНЦИЯ". На просторах "интернета" ничего подходящего из "самописного" ничего не нашел.
Если у кого есть "самописная функция" аналогичная "ТЕНДЕНЦИИ" Excel, поделитесь пож-та
Если, кто решил проблему прогнозирования PQ буду признателен за помощь.
Спасибо
PPivot. Не рассчитывать промежуточные итоги., По определенным столбцам не нужно выводить промежуточные итоги.
 
Добрый день.
Подскажите, пож-та, метод позволяющий не выводить результаты расчетов промежуточных итогов по определенным столбцам.
Тестовый пример во вложении.  
PQ. Включить подсказки языка М, Периодически пропадают подсказки языка M. Как решить проблему?
 
Добрый день.
Имеет MS Office 2019 pro.
Недавно в настройках PQ обнаружил пункт Включить M Intellisense...
Обрадовался, включил, появились подсказки.
Но радость была не долгой. Рандомно, подсказки то работают, то нет.., когда подсказки перестают работать, в настройках пункт M Intellisense отсутствует.
Может, кто то сталкивался с данной проблемой, подскажите, как ее решить.
Спасибо.
PQ. Оптимизация замены значений в столбце таблицы.
 
Добрый день.
Дано:
таблица с исходными данными, которой представлены столбцы:
Дата,
Неделя
(и др. столбцы, не относящиеся к предмету вопроса)
Необходимо заменить номер недели в столбце "Неделя"
логика замены следующая:
а) номер недели "1 " меняем на "2"
б) номер недели "52" в январе меняем на "2"

Написал данный вариант кода:
Код
Repl = Table.ReplaceValue(Kalendar, each [Неделя],  each f(Date.Month([Дата]), [Неделя]), Replacer.ReplaceValue,{"Неделя"}),
f=(m,w)=>if List.AllTrue({m=1,w=52}) or List.AllTrue({m=1,w=1}) then 2 else w,
После внедрения данного варианта замены, время выполнения итогового запроса увеличилось на порядок (таблица состоит из нескольких млн строк).
Подскажите, пож-та, более "быстрый" и "изящный" вариант замены номера недели
Спасибо.
DAX. Убрать из среза и сводной таблицы запись (пусто)
 

Столкнулся с проблемой, не пойму как ее решить… Прошу оказать помощь.

Дано:

1.       Таблица с данными по продажам: номер недели (Week) и Реализация (Sale)

Данные представлены за 10 недель

2.       Справочник «Неделя» (Week)

Данные представлены за 3 недели.

3.       В модели данных PowerPivot таблицы связаны между собой по столбцу Week

Сформированная на листе EXCEL сводная таблица со столбцами

Week (справочник) и Sale (Таблица с данными по продажам) и срез, по столбцу Week (справочник)

возвращают запись (пусто).

Подскажите, пож-та, вариант решения, позволяющий убрать из среза и таблицы запись (пусто).

PS. Без внесения изменений в «меры».

Я знаю вариант решения, где нужно убрать связь между справочником неделя и Таблица с данными по продажам и написать меру типа:

Код
=var curweek=MAX('Week'[Week])
var rd=CALCULATE(SUM('Sale'[Sale]);'Sale'[week]=curweek)
return
rd

Но в боевом файле слишком много мер.  Хотелось бы найти более простой вариант решения.

Пример файла во вложении

Спасибо.

Изменено: Neostt - 23.03.2023 14:38:03
PQ. Рекурсия. Просьба объяснить, как работает код.
 

Добрый день.

В ходе решения задачи по парсингу складских остаток возникла потребность из html вытянуть часть текста между разделителями по нескольким совпадениям. На просторах интернета нашел код (см. пример), адаптировал его и получил желаемый результат. Но, не могу понять, как работает функция с рекурсией. Для саморазвития, хочу разобраться.  Если не сложно, распишите, пож-та, принцип рекурсии на примере данного кода. Спасибо.

PQ. Преобразование списка списков в таблицу
 
Добрый день.
Не очень у меня получается с преобразованием списков в таблицы.
Имеем список списков...
Код
let
lst={{"1","1","1","1","A","1"},{"2","2","2","2","B","2"},{"3","3","3","3","C","3"}}
in
lst

Не могу сообразить, как его преобразовать в таблицу...
Пример и нужный формат таблицы во вложении во вложении...
Прошу оказать помощь
Спасибо
PQ. Извлечь текст из HTML кода., PQ. Извлечь текст из HTML кода по регулярному выражению.
 

Добрый день.

Пытаюсь усовершенствовать функцию, которая по регулярному выражению извлекает текст из html кода.

Столкнулся со следующими сложностями (не разбираюсь в javascript):

1.       Не могу понять как к регулярному выражению добавить модификаторы «/gim»

2.       Не получается склеить несколько значений (не понимаю как в Join указать разделитель заданный в функции)

Возможно, п.2 не получилось реализовать, из-за проблемы п.1 –  функция возвращает только 1е значение.

В примере функция возвращает одну цену.

Необходимо вернуть 2 цены, разделенные через «;» - 12733; 14533.

Прошу оказать помощь. Спасибо.

PQ. Парсинг сайта leroymerlin (не API)
 

Добрый день.

Иногда возникает потребность парсить цены с сайта https://leroymerlin.ru/

Предыдущий парсер (макрос + регулярные выражения) перестал работать из-за реализации защиты.

По подсказкам с сайта «https://excelvba.ru/programmes/Parser/manuals/errors/protection» написал следующий код

Код
let    url = "http://178.248.234.184/", 
headers = [#"Accept" = "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",        #"Accept-Language" = "en-US,en;q=0.9",        #"Connection" = "keep-alive",        #"Upgrade-Insecure-Requests" = "1",        #"Origin" = "http://178.248.234.184",       #"Referer" = "http://178.248.234.184/product/rozetka-vstraivaemaya-legrand-valena-s-zazemleniem-s-kryshkoy-cvet-be...;,        #"User-Agent" = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36"    ],
parameters = [    ],
response =Web.Contents(url, [        Query = parameters,        Headers = headers    ]) 
in   response

Вышеуказанный код выдает ошибку: «Доступ к сайту запрещен»

Пытаюсь обойти защиту, но столкнулся с проблемой передачи данных через cookie:

- не понимаю как передать данные через cookie.

- не понимаю  какие именно данные нужно передать через cookie.

PS. Набор данных cookie могу скопировать из браузера….

Прошу оказать помощь.

Спасибо.

Изменено: Neostt - 22.12.2022 09:29:07
PPivot. "Мера" возвращающая последние 7 значений из выбранных.
 

Прошу оказать помощь в написании меры.

Дано:

Таблица с продажами.  (Год, неделя, Реализация)

Срез по столбцу «Неделя»

В «срезе» может быть выбрано рандомное количество недель и не по порядку…

Нужна «мера» возвращающая последние 7 значений «Реализация» по выбранным в «срезе» неделям. (для примера ГОД=2021)

Пример и мера возвращающая  последние 7 значений (без учета «среза») во вложении..

Спасибо.

PQ. Рассчитать стаж в Power Qwery
 
Добрый день.
Помогите решить задачу. (Не нашел в PQ аналог формулы РАЗНДАТ)
Имеем таблицу;
ФИО
Дата начала назначения
Дата окончания назначения
Необходимо в сотруднику рассчитать стаж в формате год, месяц, день.
Если "Дата окончания назначения" больше текущей, тогда заменить на текущую (реализовал)
Рассчитал кол-во дней стажа по работнику, как дни перевести в "год, месяц, день" не соображу...
Пример во вложении
По возможности, прошу оказать помощь в решении задачи.
Спасибо
Excel. СУММЕСЛИМН возвращает не корректное значение.
 
Добрый день.
Т.к. Excel на Mac os не умеет работать с моделью данных, пытаюсь с помощью формул объединить несколько таблиц.
Столкнулся с тем, что функция
{=СУММ(СУММЕСЛИМН(Sale[Реализация];Sale[Неделя];A3;Sale[Подразделение];$X$14:$X$18;Sale[Бренд];$V$14:$V$16))}
возвращает не правильную сумму
Подозреваю, что данная функция не умеет работать, когда используются несколько условий в виде массива.
Подскажите, как рассчитать сумму по нескольким условиям, часть из которых представляют массив.
Пример во вложении.
Спасибо.
PQ. Преобразовать таблицу в "плоскую"
 
Добрый день.

Не очень у меня получается с преобразованием таблиц в PQ.

Прошу оказать посильную помощь в решении след задачи:

Имеется таблица с результатами испытаний.

Новые результаты измерений заносятся в виде новых столбцов с названиями: Испытание ХХ, Результат ХХ.

Необходимо преобразовать таблицу в плоскую (пример во вложении),  с учетом возможного увеличения кол-ва столбцов в будущем…

Спасибо…

Excel. Альтернатива МАКСЕСЛИ для Office 2016 и ниже.
 
Ниже представлена "конструкция", с помощью которой "выбираются" максимальные значения из списка.

=ЕСЛИОШИБКА(ЕСЛИ(МАКСЕСЛИ($A$2:$A$54;$A$2:$A$54;"<"&B3)=0;"";МАКСЕСЛИ($A$2:$A$54;$A$2:$A$54;"<"&B3));"")

Как оказалось, функция "МАКСЕСЛИ" не работает в офисе 2016 и ниже.
Помогите, переписать данную формулу, с учетом возможностей офис 2016 и ниже.
Пример во вложении.
Excel. Не работает формула в именованном диапазоне
 

Предыстория:

Имеется таблица, где пользователь распределяет расходные материалы по произведенным продуктам. Набор расходных материалов меняется, добавляются новые продукты. Соответственно таблица меняется в размерах. (может увеличится кол-во столбцов и измениться кол-во строк.) Естественно, находятся «одаренные» личности, которые портят формулы, формирующие сравнение план-факт.

Решение данной проблемы вижу в формировании именованных динамических диапазонов

Задача, достаточно простая, но формула

Код
=СУММ(ДВССЫЛ(АДРЕС(СТРОКА();4)&":"&АДРЕС(СТРОКА();вправо)))

в именованном диапазоне возвращает ошибку (в ячейке работает).

Формула со «СМЕЩ» работает корректно  

Код
=СУММ(СМЕЩ(Лист2!C4;0;1;1;вправо-3)).

Но, т.к. вычисляемых значений очень много, при расчете «смещения» возрастает риск ошибки….

Подскажите, что нужно исправить в 1м варианте формулы….

Пример во вложении

PQ. Преобразовать список списков в таблицу
 
Добрый день.
Прошу помочь в преобразовании списка списков в таблицу
Код
let
    Источник =     {
        {{"Тверь", "Тула", 50},
        {"Москва", "Сибирь", 90},
        {"Ростов", "Самара", 60}}
    }
in
    Источник

Пример во вложении
спасибо.
PQ. list.generate. Распределить запасы по складам
 

Добрый день

Несколько лет назад написал макрос на VBA, который распределяет сверхнормативные запасы по складам компании.

Сейчас пытаюсь реализовать тоже самое в PQ  с помощью list.generate. Но к сожалению, знаний не хватает.

Задача:

Необходимо распределить сверхнормативные запасы по складам, где есть потребность.

Потребность и излишки уже рассчитаны и представлены в таблице. (см. пример)

Необходимо сформировать таблицу содержащую след данные

Код товара, наименование откуда переместить (Источник), Куда переместить (Потребитель), перемещаемое значение (кол-во)

Логика проста.

1.       Ищем максимальное количество в источнике и потребителе.

2.       Из полученных значений на шаге 1 определяем минимальное.

3.       Формируем запись код, наименование, откуда переместить (Источник), Куда переместить (Потребитель), перемещаемое значение (кол-во).

4.       Найденные значения в п.1 уменьшаем на перемещаемое кол-во

5.       Далее повторяем все шаги, пока сумма в столбцах (по коду) Источник или Потребитель не станет равной 0.

Прошу подсказать решение в PQ

Спасибо.

P_Pivot. Вычислить дату равную последнему дню месяца.
 
Добрый день.
Возникла потребность в переносе части вычислений из PQ в P_Pivot
Не получается написать меру, которая возвращает дату равную последнему дню месяца на основании значений из 2х столбцов - Год  и Месяц
Формулу для вычисления даты я написал "=EOMONTH ("1"&"."&month("1"&" "&[Месяц]) &"."&[Год]; 0)". В вычисляемом столбце работает.
Помогите написать меру с расчетом данного значения. (Добавлять столбец не хочу из-за размера базы)
Спасибо
Пример во вложении
Изменено: Neostt - 16.08.2022 17:37:20
PQ. Вернуть категорию товара на дату реализации с помощью List.Generate
 
Добрый день.
Задача состоит в том, что бы определить категорию товара, действующую на дату реализации.
Во вложении ДВА успешных способа решения задачи (Вариант_1 и Вариант_2).
3й вариант, реализованный с помощью функции List.Generate не работает.
Подскажите, в чем ошибка и как ее устранить
Спасибо.
PQ. Оптимизация расчета многофакторного АВС анализа.
 
Добрый день.
Сделал расчет АВС анализа по нескольким показателям.
На больших объёмах данных (около 60т строк) запрос в течение нескольких часов не отрабатывает.
По одному показателю, отрабатывает достаточно быстро.
Прошу оказать помощь в оптимизации.
Спасибо.
PQ. Расчет показателей относительно данных предыдущей строки
 

Добрый день.

Помогите, пож-та, с расчетом в PQ

Имеем таблицу с историей цен. (см. вложение)

Необходимо добавить столбцы:

- % изменения цены (столбец Изменение цены, %). Рассчитывается по формуле – «(текущее значение цены/предыдущее значение цены)-1». Если предыдущего значения цены нет, тогда возвращаем «пусто»

- изменение цены в абсолютном значении (столбец Изменение цены, руб). Рассчитывается по формуле – «текущее значение цены-предыдущее значение цены». Если предыдущего значения цены нет, тогда возвращаем «пусто»

- срок действия цены. (Срок действия цены). Рассчитывается по формуле – количество дней между датой начала действия текущей цены и датой начала действия следующей цены.

Если цена действует (следующей цены нет), тогда срок действия цены рассчитываем, как количество дней между Датой начала действия цены и текущей датой.

Спасибо.

VBA. Решить проблему авторизации на сайте.
 

Очень дано, написал макрос, который с внутреннего корпоративного сайта "забирает" справочник сотрудников компании.
В текущем месяце макрос перестал работать, по моему мнению,  из-за обновления Internet Explorer или завершением его поддержки.
(Теперь после запуска макроса открывается страница IE и макрос завершает работу с ошибкой)
"Рабочий пример" предоставить не могу, т.к. эта информация ДСП, да и доступа к ресурсам компании из "вне" нет.
Ниже часть кода,
Подскажите, пож-та, возможные варианты решения проблемы....

Код
Dim oIE As InternetExplorerMedium, sHtml As String
Dim tmp, i As Long
Dim sAnswer As String, IE As Object, avArr, li As Long
Set oIE = CreateObject("InternetExplorer.Application") 'запускаем explorer
Set oIE = New InternetExplorerMedium
oIE.Visible = 0 'видимость explorer - 0-скрыть 1-показать
s = "****************" 'ссылка
oIE.Navigate (s) 'загружаем сайт
While oIE.Busy Or oIE.ReadyState <> READYSTATE_COMPLETE: DoEvents: Wend
Set NodeList = oIE.Document.getElementsByTagName("Input") ' выбираем все поля ввода
Set maPageHtml = oIE.Document: DoEvents: DoEvents
If oIE.LocationURL = s Then
maPageHtml.getElementsByName("USER_LOGIN").Item(0).Value = "********"
maPageHtml.getElementsByName("USER_PASSWORD").Item(0).Value = "*******"
NodeList(6).Click
End If
While oIE.Busy Or (oIE.ReadyState <> 4): DoEvents: Wend

    sAnswer = oIE.Document.body.innerHTML
    avArr = Split(sAnswer, Chr(10))
    schet = 0
Изменено: Neostt - 29.06.2022 10:41:16
PQ. Решить проблему с изменением значений в столбце таблицы после объединения 2х таблиц
 

Добрый день.
Столкнулся со странной ситуацией при объединении двух таблиц в PQ.

Странность заключается в том, что после объединения, в одном столбце (Столбец «Место») меняются значения. Есть подозрение, что данная проблема связана со способом формирования значений этого столба (Индекс строки)ю

Прошу Вас помочь и объяснить в из-за чего меняются значения после объединения и объяснить (показать) как сделать так, что бы значения не менялись?

Пример во вложении.

Спасибо.

Изменено: Neostt - 16.06.2022 10:50:04
Excel. Написать формулу по определению "места", если команда не финишировала
 
Добрый день.
Помогите написать формулу по расчету места команды в заезде и в группе, при условии, что одна или несколько команд могут не финишировать и по ним нет результатов (времени)
Формулы расчета мест при условии наличии времени по всем командам я написал.
Формула должна возвращать последние места в заезде и в группе, если команда не финишировала.
Как будут распределятся места внутри команд, которые не финишировали не имеет значение.
Пример во вложении.
Excel. Из подписи оси данных графика убрать диапазон без данных
 

Добрый день.

«Споткнулся на ровном месте». Суть проблемы ниже. Помогите пож-та

Переделываю дашборд, для работы на Mac OC. Меняю «меры» на расчеты в формулах excel

Столкнулся с проблемой построения диаграмм.

Имеем таблицу, в которой кол-во строк = количеству недель в году + заголовок таблицы

В части строк данные отсутствуют, т.к. данный период еще не наступил.

Соответственно нужно построить множество графиков на основании данных этой таблицы, так что бы на оси не отображались периоды за которые данных еще нет. И по мере появления данных они появлялись на графике.

Пытался использовать именованные диапазоны – Не получилось

Пример во вложении.

Изменено: Neostt - 12.05.2022 13:35:21
Страницы: 1 2 След.
Наверх