Страницы: 1
RSS
Power Query округление до сотых очень близкого к целому числу.
 
Уважаемые форумчане, здравствуйте!
Помогите пожалуйста со следующей проблемой.
У меня есть число 1727918520,996, пытаюсь округлить его до сотых в меньшую сторону (т.е. хочу получить число 1727918520,99) в PQ c использованием Number.Round([],2,RoundingMode.Down), а именно:
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content],
    #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"Столбец1", type number}}),
    #"Добавлен пользовательский объект" = Table.AddColumn(#"Измененный тип", "Пользовательский", each Number.Round([Столбец1], 2, RoundingMode.Down))
in
    #"Добавлен пользовательский объект"

Но почему то PQ, округляет данное число до целых.
Пример во вложении.
Заранее спасибо!
Кросс
Кросс2
Изменено: Maximich - 11.04.2022 15:33:49
Кто ясно мыслит, тот ясно излагает.
 
Добрый день! Попробуйте так:
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content],
    #"Округление" = Table.AddColumn(Источник, "Округление с уменьшением", each Number.RoundDown([Столбец1],2), type number)
in
    #"Округление"
 
Примитив-(умножить на 100-округлить вниз-разделить на 100)
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content],
    #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"Столбец1", type number}}),
    #"Added Custom" = Table.AddColumn(#"Измененный тип", "Custom", each [Столбец1]*100),
    #"Inserted Round Down" = Table.AddColumn(#"Added Custom", "RoundDown", each Number.RoundDown([Custom]), Int64.Type),
    #"Added Custom1" = Table.AddColumn(#"Inserted Round Down", "Custom.1", each [RoundDown]/100),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom1",{"Custom", "RoundDown"})
in
    #"Removed Columns"
 
AnnaKonda, благодарю!
А вы не могли бы пояснить своими словами, в чем у меня была ошибка?
Кто ясно мыслит, тот ясно излагает.
 
В кроссе на Мир Ексель я Вам написал, в чем ошибка.
Повторю здесь, чтобы не прыгать по сайтам
RoundingMode.Down в Number.Round указывает, в какую сторону будет округление, если number находится точно между двумя возможными округленными значениями, то есть, когда 0,995
Скажи мне, кудесник, любимец ба’гов...
 
_Boroda_, а если мне необходимо, чтобы всегда все числа:
1 727 918 520,996
1 727 918 520,994
1 727 918 520,995
округлялись до 1 727 918 520,99?
Кто ясно мыслит, тот ясно излагает.
 
для этого (ответ на #6) и применяется Number.RoundDown как сделала Анна, а не Number.Round как у вас.
 
Вот как раз на этот вопрос Вам здесь Анаконда ответила, а по первому кроссу - я
Скажи мне, кудесник, любимец ба’гов...
 
AnnaKonda, Vik_tor, _Boroda_, разобрался. Спасибо Вам огромное
Кто ясно мыслит, тот ясно излагает.
 
Теперь осталось только в кроссах отписаться )))
Скажи мне, кудесник, любимец ба’гов...
 
_Boroda_, уже.
Кто ясно мыслит, тот ясно излагает.
Страницы: 1
Наверх