Страницы: 1
RSS
PQ появление непечатного символа при добавлении столбца
 
В запросе нужно добавить пустой столбец с пустым значением.
Использую формулу = Table.AddColumn(Source, "Desc", each "")
Но в столбце Desc появляется какой то невидимый символ
формула в Excel =LEN(Table1_2[Desc]) дает значение длины строки 0

Есть способ это побороть или использовать другу формулу что бы точно было пустое значение?
 
Код
= Table.AddColumn(Source, "Desc", each null)
 
Цитата
mechanix 85 написал:
mechanix 85
Спасибо большое, сработало
Может подскажите как в стролбце установить для всех строк существующего столбца одно и тоже значение независимого от его содержимого?
 
Самым простым будет создать новый столбец со значением, старый столбец удалить, а новый переименовать
 
Цитата
mechanix 85 написал:
Самым простым будет создать новый столбец со значением, старый столбец удалить, а новый переименовать
Как то не хочется 10 столбцов удалять и пересождавать.
Думал есть способ быстрее.
 
Можно через замену
= Table.ReplaceValue(Source,each [Column1],"Новое значение",Replacer.ReplaceValue,{"Column1"})
 
Цитата
Алексей Датя написал:
Можно через замену
А это точно
Цитата
Kanev75 написал:
способ быстрее.
:qstn:
Вот это
Код
let
    Source = Table.FromColumns({{1..500000}}, {"Column1"}),
    result = Table.ReplaceValue(Source,each [Column1],"Новое значение",Replacer.ReplaceValue,{"Column1"})
in
    result

выгружается на лист, с отключенными изменениями ширины столбцов, за 6 секунд.
А вот это.
Код
let
    Source = Table.FromColumns({{1..500000}}, {"Column1"}),
    rename = Table.RenameColumns(Source, {"Column1", "Column1.delete"}),
    addConst = Table.AddColumn(rename, "Column1", each "Новое значение"),
    remove = Table.RemoveColumns(addConst, {"Column1.delete"})
in
    remove

За 2 секунды. Полагаю, сможете проэкстраполировать скорость выполнения на 10 столбцов. Короткий код - не признак быстрого кода :)
 
Цитата
Андрей VG написал:
Короткий код - не признак быстрого кода
Согласен, мой код удобнее для замен по условию.

А такой вариант, если? Вроде примерно но том же уровне по скорости, как вариант с удалением.
Код
let
    Source = Table.FromColumns({{1..500000}}, {"Column1"}),
    newvalue = Table.TransformColumns(Source, {{"Column1", each "Новое значение", type text}})
in
    newvalue
 
Еще вариант закину. Здесь, на форуме нашел
Код
let
    f = (Text) => List.Accumulate(
{
{"Москв.", "Москва"},
{"Мск", "Москва"},
{"Мос.", "Москва"}
},
 Text, (a, b) => Text.Replace(a, b{0}, b{1}))
in
    f
Страницы: 1
Наверх