Страницы: 1
RSS
Преобразование текста в формулу Power Query
 
 Здравствуйте!
Подскажите пожалуйста, существует ли способ преобразования текста из ячейки в формулу в PQ.
Условно, записанный текст в ячейке столбца выглядит:
Код
[A] * [B] * 1.05
необходимо чтобы в добавленном пользовательском столбце уже выдавал конечный результат "столбец [A]" * "столбец [B]" * 1.05. Те написанный текст трансформировался в формулу с вычислениями реально существующих столбцов, возможно ли такое?

Почитал ресурсы, что-то похожее делает функция  Expression.Evaluate, но все таки не совсем то или же я не до конца разобрался?!
Заранее спасибо!
 
DD, не до конца разобрались. Лучше всего, если Вы приведёте пример.
 
Цитата
написал:
Лучше всего, если Вы приведёте пример.
Хотел сразу приложить фото своего примитивного примера, но у меня получаются почему то битые ссылки?!
попробую схематично
цветдлинаширинаформуларасчет
красный11160,51
зелёный1411[длина] * [ширина] * 1,05[длина] * [ширина] * 1,05
красный1680,51
зелёный710[длина] * [ширина] * 1,05[длина] * [ширина] * 1,05
красный20170,51
жёлтый813null0
красный1060,51
жёлтый68null0
Столбец "формула" с набором числовых, пустых и  текстовых значений. В столбце "расчет" при выполнении каких-то условий if (условно формула выглядит так):
Код
Table.AddColumn(Источник, "расчет", each if [цвет] = "зелёный" then [формула] else if [цвет] = "жёлтый" then 0 else 1 )
вместо самой текстовой формулы "[длина] * [ширина] * 1,05 " появляется реально рассчитанный результат - столбец "длина" * столбец "ширина" * 1,05 , те тем самым необходимо трансформировать текст в формулу для вычислений.
Реально ли такое?
 
DD, пример - это файл excel, а не текст в сообщении.
 
Понял, Вас, прикладываю!
Только показывать там особо нечего, всё постарался описать.
 
Так-то у вас триггер - цвет (Зелёный, желтый, красный) со своей логикой расчета
 
Да пусть будет триггер, сейчас это не важно .
Мой вопрос  - можно ли преобразовать каким либо способом текст с названием столбца именно в ссылку на этот столбец?
Может это какой - то  другой синтаксис, вместо указывания в текстовом [A], использовать замены ,конкатенация, ковычки  и т .д.
В "пример2"  в файле, обозначил, как из текстовых значений можно производить расчеты с помощью Expression.Evaluate, но это все же другое! Но натолкнуло на мысль - может есть хитрый способ и обмануть PQ  и ссылаться на столбец из текста.
 
Цитата
DD написал:
Только показывать там особо нечего,
Я не хочу за Вас файл-пример создавать. В данных заменил , на . В PQ - это разделитель целой и дробной части. Конечно, можно и в коде заменить.
Код
let
  Источник = Excel.CurrentWorkbook(){[ Name = "Расчет" ]}[Content],
  addClmn = Table.AddColumn (
    Источник,
    "расчет",
    ( r ) =>
      if r[цвет] = "зелёный" then Expression.Evaluate ( Text.Replace ( r[формула], "[", "r[" ), [ r = r ] ) else if r[цвет] = "жёлтый" then 0 else 1
  )
in
  addClmn
Изменено: surkenny - 23.02.2022 00:14:41
 
Спасибо.

Переделал под свои нужды, но не могли бы Вы чуть прояснить написанный Вами код.
Как я понял, Вы создали некую пользовательскую функцию, но не выносили ее отдельно, а применили сразу в коде?!
И как работает здесь "r" в замене текста, вот здесь я не совсем понимаю?
Страницы: 1
Наверх