Страницы: 1
RSS
Формирование составного кода подразделения из полей таблицы, Необходимо с помощью запроса PQ создать пользовательский столбец с кодом подразделения
 
Все доброго времени суток!

Помогите с решением: имеется таблица (пример прилагается) в которой необходимо с использованием PQ добавить пользовательский столбец который будет формироваться из двух столбцов код отдела+код сектора (преобразованный в текстовый формат из числового), но при добавлении кода сектора в зависимости от числа которое указано в поле в коде подразделения добавляется необходимое кол-во символов. Есть так же исключения по одному из отделов.

Пример прилагается с форматом полей и условием по кол-ву символов. До необходимого кол-ва символов в коде подразделения добавляется спереди 0.

Спасибо!  
 
Добрый день!
kaa700, добавьте "условный столбец" и пропишите все свои условия, не вижу проблемы
 
Друзья, очень нужна Ваша подсказка по данному вопросу...) Спасибо!
 
Anton555, проблема с преобразованием кода сектора в текст и добавлении необходимого кол-ва символов при формировании кода. А так же как исключить код отдела 409040 и для него другое условие...  
 
Исходные данные - в голубой таблице. Меняете там. Результат - в зеленой таблице: после изменений в исходнике в ней Обновить кликаете, и все меняется.
 
Вариант:
Скрытый текст
переписал проще:
Код
 let
    from = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    format = Table.AddColumn(from, "код", each 
        if [#"Код отдела (текст)"] = 409040 or [#"Код сектора (целое число)"] >= 1000 then 
            Number.ToText([#"Код отдела (текст)"])&Text.PadStart(Number.ToText([#"Код сектора (целое число)"]),5,"0") 
        else Number.ToText([#"Код отдела (текст)"])&Text.PadStart(Number.ToText([#"Код сектора (целое число)"]),
            Text.Length(Number.ToText([#"Код сектора (целое число)"]))+1,"0"))
in
    format
Изменено: buchlotnik - 13.08.2019 11:59:49
Соблюдение правил форума не освобождает от модераторского произвола
 
turbidgirl, большое спасибо!!! Именно то что и нужно!
 
buchlotnik, мне кажется так еще проще:
Код
= Table.AddColumn(Источник, "Пользовательская", each if [#"Код отдела (текст)"] = 409040 then 
Text.From([#"Код отдела (текст)"]) & Text.Repeat("0", 5-Text.Length(Text.From([#"Код сектора (целое число)"]))) & Text.From([#"Код сектора (целое число)"]) 
else 
Text.From([#"Код отдела (текст)"]) & "0" & Text.From([#"Код сектора (целое число)"]))[Пользовательская]
Изменено: Anton555 - 13.08.2019 12:12:24
 
Доброе время суток
Числовой вариант
Код
Table.AddColumn(Source, "Код подразделения*", each [#"Код отдела (текст)"] * Number.Power(10, if [#"Код отдела (текст)"] = 409040 then 5 else Number.RoundUp(Number.Log10([#"Код сектора (целое число)"]), 0) + 1) + [#"Код сектора (целое число)"])
Страницы: 1
Наверх