Страницы: 1
RSS
Настраиваемый столбец в Power Query с несколькими условиями, Требуется создать настраиваемый столбец в Power Query с несколькими условиями
 

Цена с НДС.xlsx (18.56 КБ)Добрый день!

Подскажите, как правильно решить задачу добавления настраиваемого столбца, если есть несколько условий.

Выгрузка в 1С, где есть цены с НДС и Без НДС, НДС разный. Нужно привести к одной цене с НДС. Есть следующие столбцы:

Надо создать настраиваемый столбец, где:

1)      если цена без НДС (=Нет) и НДС 0%, то цена возвращается без изменений;

2)      если цена без НДС (=Нет) и НДС 5%, то цена возвращается* 1,05 процента;

3)      если цена без НДС (=Нет) и НДС 20%, то цена возвращается* 1,20 процента;

4)      если цена с НДС (=Да) и НДС 20%, то цена возвращается без изменений.

Так как совсем начинающий пользователь Power query, у меня не получается самостоятельно создать настраиваемый столбец, одни ошибки.

Изменено: IMO - 11.02.2026 16:56:18
 
IMO, если я Вас правильно понял, то
Код
= Table.AddColumn(#"Измененный тип", "Пользовательский", each if [Включает НДС] = "Нет" and [#"% НДС"] = 0 then [Цена] else if [Включает НДС] = "Нет" and [#"% НДС"] = 5 then [Цена]*1.05 else if [Включает НДС] = "Нет" and [#"% НДС"] = 20 then [Цена]*1.2 else if [Включает НДС] = "Да" and [#"% НДС"] = 20 then [Цена] else null)

Цена с НДС.xlsx (19.25 КБ)
Изменено: Maximich - 11.02.2026 18:34:43
Кто ясно мыслит, тот ясно излагает.
 
 
Добрый день.

Большое спасибо, логика в обоих примерах понятна, но когда делаю второй вариант, выдает ошибку, смотрите скрин. Подскажите, что делаю не так.
Также может подскажите, как сделать похожею операцию в  Power Pivot, выгрузок из 1С много, хочу создать модель данных и большую часть операций обрабатывать через PP.
Спасибо!  
 
IMO, добрый день.
Цитата
написал:
как сделать похожею операцию в  Power Pivot
Может такой формулы вычисляемого столбца будет достаточно
=IF('Таблица1'[Включает НДС]= "Нет"; 'Таблица1'[Цена] * (1+'Таблица1'[% НДС]/100);'Таблица1'[Цена])
 
Подскажите в чём ошибка  
Изменено: IMO - 12.02.2026 14:30:01
 
в строке формул у вас = Table.AddColumn(#"Переименнованные столбцы", "Пользовательский", each Table.AddColumn....
 
Когда создаю "Настаиваемый столбец" пишу формулу = Table.AddColumn (ТОП,"Пользовательский",each if [2]="Нет" then (1+[3]/100)*[1] else [1]), PQ проверяет, что синтаксические ошибки не обнаружены, нажимаю ОК. Как результат в строке форму появляется
= Table.AddColumn(#"Переименованные столбцы", "Пользовательский", each Table.AddColumn (ТОП,"Пользовательский",each if [2]="Нет" then (1+[3]/100)*[1] else [1]))
Почему не пойму.
На скинах это видно, что пишу одну формулу, в строке возвращается другая.
Пробую прописать вручную в строке форму на этом шагу форму, выдает другую ошибку см. скрин
 
pq

Нужно зайти в Расширенный редактор, чтобы увидеть и проанализировать код запроса.
 
Всё равно не получает, попробовал поправить в расширенном редакторе, опять выдает ошибку.
Файл с ошибкой прикрепил, сркин из расширенного редактора тоже.  
Не пойму, почему формула видоизменятся после нажатия ОК, в вашей таблице всё работает, логика полностью понятна.
Вставляю вашу формулу к себе, синтаксис правильный, результат видоизмененной формулой или ошибкой.  
 
IMO, первая ошибка: в файле умная таблица называется "Таблица1_1",  а ссылаетесь в шаге Источник на "Таблица1" = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content]
Вторая ошибка, каждый шаг, это какой-то объект в PQ (таблица, запись, список, функция и т.д.). Обычно следующий шаг ссылается на прошлый. В Вашем файле шаг #"Добавлен пользовательский объект" в функции Table.AddColumn должен ссылаться на таблицу, которая получилась на шаге #"Удаленные столбцы",  а вы ссылаетесь на весь Запрос под названием Таблица1. Должно быть так  #"Добавлен пользовательский объект" = Table.AddColumn (#"Удаленные столбцы","Пользовательский",each if [Включает НДС]="Нет" then (1+[#"% НДС"]/100)*[Цена] else [Цена])
Изменено: Alex - 12.02.2026 16:34:31
 
Большое спасибо! Все понятно.  
Страницы: 1
Читают тему
Наверх