Страницы: 1
RSS
[Power Query] Расчет размера вознаграждения, зависящий от количества всех операций в разных таблицах
 
Добрый день, коллеги! У меня вопрос, касающийся PQ. Необходимо произвести расчет вознаграждения, где размер вознаграждения это произведение стоимости и коэффициента (k). Сам коэффициент (k) зависит от количества всех операций, в моем примере их 2 таблицы.

Что я сделал:
В запросе "k" я вывел коэффициент, подсчитав общее количество операций в обеих таблицах с помощью Table.RowCount(). Но при попытке умножить получившийся коэффициент на стоимость в любой из таблиц появляется ошибка "Expression.Error: В ходе вычислений была обнаружена циклическая ссылка.". Подскажите пожалуйста как можно решить данную проблему?
 
Murderface_, попробуйте так
Код
= let
 Custom1 = Excel.CurrentWorkbook()[[Content]],
   x = List.Sum( Table.AddColumn(Custom1, "a", each Table.RowCount([Content]))[a])
   in
    if x < 1001 then 0.5 else if x < 1401 then 0.6 else if x < 2000 then 0.8 else 1
 
artyrH, сработало, спасибо!

Изменил свой запрос на
Код
let
    x = Table.RowCount(Excel.CurrentWorkbook(){[Name="Один"]}[Content])+Table.RowCount(Excel.CurrentWorkbook(){[Name="Два"]}[Content])
in
    if x < 1001 then 0.5 else if x < 1401 then 0.6 else if x < 2000 then 0.8 else 1
и тоже все ок.
 
А если так:
Код
let
    Один = Excel.CurrentWorkbook(){[Name="Один"]}[Content],
    Два = Excel.CurrentWorkbook(){[Name="Два"]}[Content],
    k = [x = Table.RowCount(Один)+Table.RowCount(Два), k = if x < 1001 then 0.5 else if x < 1401 then 0.6 else if x < 2000 then 0.8 else 1][k],
    #"Добавлен пользовательский объект" = Table.AddColumn(Один, "Вознаграждение", each if [Условие] = 1 then [Стоимость] * 0.5 else [Стоимость] * k)
in
    #"Добавлен пользовательский объект"
Изменено: PooHkrd - 27.12.2019 14:44:46
Вот горшок пустой, он предмет простой...
 
PooHkrd, кажется я понял логику, если делаешь запрос на запрос это циклическая ссылка, а если на исходную таблицу то нет  :)  
 
Посмотрел рабочий файл, на исходную таблицу ссылаться нельзя, т. к. там куча лишнего. Ссылка на запрос в моем случае обязательна  :cry:  
 
Murderface_, именно так. Но обращением к одному и тому же источнику тоже не следует злоупотреблять. Скажем с таблицей внутри открытой книги этот вариант прокатит, а если в качестве источника внешний файл, и вы в рамках одного запроса обратитесь к этому файлу более одного раза, то рискуете схватить ошибку запрета доступа.
Самый понятный и бесконфликтный вариант это сделать по одному запросу к каждому из источников, и далее в них ничего не менять, а все расчеты делать уже в отдельном/ых запросе/ах обращаясь к запросам-источникам.
Изменено: PooHkrd - 27.12.2019 14:57:42
Вот горшок пустой, он предмет простой...
 
PooHkrd, спасибо за совет. В понедельник попробую так сделать.
Страницы: 1
Наверх