Remkomplekty.ru

IT Новости из мира ПК
45 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Vba excel округление до двух знаков

Округление значений в коде VBA в Excel. Функции int () и fix().

Очень часто при создании алгоритмов подсчета тех или иных значений полученные результаты имеют значение десятичной дроби с большим количеством знаков после запятой. Работать с такими данными и отображать их не очень удобно и некрасиво.
Рассмотрим какими функциями следует округлять данные в коде vba Excel.

Первый способ округления при помощью функции int().

Данная функция выводит целое значение до запятой. При округлении отрицательных чисел int округляет десятичную дробь до большего целого значения.
Например: число Пи с минусом после округления — int (-3.1415926535 ) будет равно 4 (четырем целым).

Второй способ округление при помощи функции fix()

происходит аналогично с int . Отличается эта функция тем, что округляет отрицательные числа до меньшего значения. Так округлённое число Пи со знаком минус будет fix( -3.1415926535) = 3.
Если требуется не просто убрать дробную часть, а округлить до целого числа, можно использовать следующую функцию cint().
Пример:
Cint(fix( -3.1415926535)) = 3
Cint(int( -3.1415926535)) = 3

Как округлять до десятых и сотых (один и два знака после запятой, соответственно).

Для округления до десятых следует умножить переменную на 10 (десять), после чего округлить до целых и разделить на 10 (десять).
Пример:
Cint(int( -3.1415926535*10))/10 = 3.1
Cint(fix( -3.1415926535*10))/10 = 3.1

Для округления до сотых следует проделать ту же самую операцию, только умножать и делить не на 10, а на 100.
Пример:
Cint(int( -3.1415926535*100))/100 = 3.14
Cint(fix( -3.1415926535*100))/100 = 3.14

Пример кода округляющего значения из textbox, запускающийся нажатием кнопки CommandButtom1:

Private sub CommandButtom1_click()
textbox2.value = Cint(int(textbox1.value *100))/100
END SUB

Видео с примером работы макроса:

Как видите, ничего сложного в округлении чисел в vba Excel нет. Удачи Вам в изучении программы

Похожее:

  1. Макрос определяющий пустая ли ячейка или заполненная в VBA ExcelМакрос проверки заполнения ячеек. Периодически при создании.
  2. Функция VAL в VBA Excel или как преобразовать TextBox в число (цифру).Использования функции преобразования текста в число в.
  3. Макрос для быстрой замены формул на значения (числа) в выделенных ячейках документа Excel.Когда удобно менять формулы на значения нажатием.

Округление значений в коде VBA в Excel. Функции int () и fix().: 1 комментарий

Cint(int(-3.1415926535*100))/100 = 3.1
А это надёжно? Я вместо сотней поставил 1000 и в одном из случаев произошла ошибка переполнения. Опять поставил сотни.

excel vba округление числа

Функция появилась в Visual Basic 6.0

Функция Round служит для округления чисел до заданной точности (число значащих цифр в дробной части)
Функция Round(Number,2) эквивалентна функции Format(Number,»#.##»)

В результате действия функции возвращается округленное число, тип которого совпадает с типом переданного аргумента

—>Счетчики : 24019 | —>Добавил : Serge_007

Небольшая неточность в статье обнаружил. Можете, глянуть, пожалуйста?

«Функция Round(Number,2) эквивалентна функции Format(Number,»#.##»)»
Не эквивалентна, увы: Round(2.545, 2) = 2, 54 ; Format(2.545, «#.##») = 2,55
В Round(VBA) используется «банкирское» округление, не арифметическое.
Думаю, стоит уточнить все описание функции. И отдельно отметить, что Round(Excel) и Round(VBA) отличаются.

Возвращает число, округленное до указанного количества десятичных разрядов. Returns a number rounded to a specified number of decimal places.

Синтаксис Syntax

Round (круглый ) (Expression, [ нумдеЦималплацес ]) Round(expression, [ numdecimalplaces ])

Синтаксис функции Round содержит следующие элементы: The Round function syntax has these parts:

Эта функция VBA возвращает нечто, которое обычно называется округлением банковских средств. This VBA function returns something commonly referred to as bankers rounding. Поэтому перед использованием этой функции Будьте внимательны. So be careful before using this function. Для получения более предсказуемых результатов используйте функции » круглые функции листа » в Excel VBA. For more predictable results, use Worksheet Round functions in Excel VBA.

Пример Example

См. также See also

Поддержка и обратная связь Support and feedback

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь. Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.

Очень часто при создании алгоритмов подсчета тех или иных значений полученные результаты имеют значение десятичной дроби с большим количеством знаков после запятой. Работать с такими данными и отображать их не очень удобно и некрасиво.
Рассмотрим какими функциями следует округлять данные в коде vba Excel.

Первый способ округления при помощью функции int().

Данная функция выводит целое значение до запятой. При округлении отрицательных чисел int округляет десятичную дробь до большего целого значения.
Например: число Пи с минусом после округления — int (-3.1415926535 ) будет равно 4 (четырем целым).

Второй способ округление при помощи функции fix()

происходит аналогично с int . Отличается эта функция тем, что округляет отрицательные числа до меньшего значения. Так округлённое число Пи со знаком минус будет fix( -3.1415926535) = 3.
Если требуется не просто убрать дробную часть, а округлить до целого числа, можно использовать следующую функцию cint().
Пример:
Cint(fix( -3.1415926535)) = 3
Cint(int( -3.1415926535)) = 3

Как округлять до десятых и сотых (один и два знака после запятой, соответственно).

Для округления до десятых следует умножить переменную на 10 (десять), после чего округлить до целых и разделить на 10 (десять).
Пример:
Cint(int( -3.1415926535*10))/10 = 3.1
Cint(fix( -3.1415926535*10))/10 = 3.1

Для округления до сотых следует проделать ту же самую операцию, только умножать и делить не на 10, а на 100.
Пример:
Cint(int( -3.1415926535*100))/100 = 3.14
Cint(fix( -3.1415926535*100))/100 = 3.14

Читать еще:  Excel vba copy

Пример кода округляющего значения из textbox, запускающийся нажатием кнопки CommandButtom1:

Private sub CommandButtom1_click()
textbox2.value = Cint(int(textbox1.value *100))/100
END SUB

Видео с примером работы макроса:

Как видите, ничего сложного в округлении чисел в vba Excel нет. Удачи Вам в изучении программы

Похожее:

  1. Макрос определяющий пустая ли ячейка или заполненная в VBA ExcelМакрос проверки заполнения ячеек. Периодически при создании.
  2. Функция VAL в VBA Excel или как преобразовать TextBox в число (цифру).Использования функции преобразования текста в число в.
  3. Макрос для быстрой замены формул на значения (числа) в выделенных ячейках документа Excel.Когда удобно менять формулы на значения нажатием.

Округление значений в коде VBA в Excel. Функции int () и fix().: 1 комментарий

Cint(int(-3.1415926535*100))/100 = 3.1
А это надёжно? Я вместо сотней поставил 1000 и в одном из случаев произошла ошибка переполнения. Опять поставил сотни.

Округление числа в Excel

Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).

Допустим, вы хотите округлить число до ближайшего целого числа, так как десятичные значения несущественны. Вы также можете округлить число до кратных 10, чтобы упростить приблизительную величину. Есть несколько способов округлить число.

Изменение количества знаков после запятой без изменения значения

На листе

Выделите ячейки, формат которых требуется изменить.

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

Во встроенном числовом формате

На вкладке Главная в группе Число щелкните стрелку рядом со списком числовых форматов и выберите пункт Другие числовые форматы.

В списке Категория выберите значение Денежный, Финансовый, Процентный или Экспоненциальный в зависимости от типа данных.

В поле Число десятичных знаков введите требуемое число знаков после запятой.

Округление числа вверх

Используйте функцию ОКРУГЛВВЕРХ. В некоторых случаях может потребоваться использовать функции ЧЁТН и НЕЧЁТ для округления вверх до ближайшего четного или нечетного числа.

Округление числа вниз

Округление числа до ближайшего значения

Округление числа до ближайшего дробного значения

Округление числа до указанного количества значимых разрядов

Значимые разряды — это разряды, которые влияют на точность числа.

В примерах этого раздела используются функции ОКРУГЛ, ОКРУГЛВВЕРХ и ОКРУГЛВНИЗ. Они показывают способы округления положительных, отрицательных, целых и дробных чисел, но приведенные примеры охватывают лишь небольшую часть возможных ситуаций.

В приведенном ниже списке содержатся общие правила, которые необходимо учитывать при округлении чисел до указанного количества значимых разрядов. Вы можете поэкспериментировать с функциями округления и подставить собственные числа и параметры, чтобы получить число с нужным количеством значимых разрядов.

Округляемые отрицательные числа прежде всего преобразуются в абсолютные значения (значения без знака «минус»). После округления знак «минус» применяется повторно. Хотя это может показаться нелогичным, именно так выполняется округление. Например, при использовании функции ОКРУГЛВНИЗ для округления числа -889 до двух значимых разрядов результатом является число -880. Сначала -889 преобразуется в абсолютное значение (889). Затем это значение округляется до двух значимых разрядов (880). После этого повторно применяется знак «минус», что дает в результате -880.

При применении к положительному числу функции ОКРУГЛВНИЗ оно всегда округляется вниз, а при применении функции ОКРУГЛВВЕРХ — вверх.

Функция ОКРУГЛ округляет дробные числа следующим образом: если дробная часть больше или равна 0,5, число округляется вверх. Если дробная часть меньше 0,5, число округляется вниз.

Функция ОКРУГЛ округляет целые числа вверх или вниз аналогичным образом, при этом вместо делителя 0,5 используется 5.

В общем при округлении числа без дробной части (целого числа) необходимо вычесть длину числа из нужного количества значимых разрядов. Например, чтобы округлить 2345678 вниз до 3 значимых разрядов, используется функция ОКРУГЛВНИЗ с параметром -4: = ОКРУГЛВНИЗ(2345678,-4). При этом число округляется до значения 2340000, где часть «234» представляет собой значимые разряды.

Округление числа до заданного кратного

Иногда может потребоваться округлить значение до кратного заданному числу. Например, допустим, что компания поставляет товары в ящиках по 18 единиц. С помощью функции ОКРУГЛТ можно определить, сколько ящиков потребуется для поставки 204 единиц товара. В данном случае ответом является 12, так как число 204 при делении на 18 дает значение 11,333, которое необходимо округлить вверх. В 12-м ящике будет только 6 единиц товара.

Может также потребоваться округлить отрицательное значение до кратного отрицательному или дробное — до кратного дробному. Для этого также можно применять функцию ОКРУГЛТ.

Как округлить число в Excel? Быстрое округление чисел

Числовой формат является наиболее общим способом представления чисел и в связи с этим наиболее распространенным. В числовом формате можно применять разделитель групп разрядов, выбирать способ отображения отрицательных чисел и задавать количество знаков после запятой.

Виды чисел

На практике приходится работать с числами двух видов, с точными и приближенными.

Точные

Хранение данных и пересчет формул, которые поддерживаются приложением Excel составляют 15 разрядов. Числовые значения хранятся с точностью 15 разрядов, а отображаться на экране могут по-разному, в зависимости от выбранного формата. Для расчетов используются хранимые, а не отображаемые значения. При работе с различными числовыми значениями может понадобиться разная степень точности в вычислениях.

Читать еще:  Копирование листов в excel vba

Приближенные

Существует множество задач, решение которых не требует большого количества знаков после запятой в числовых значениях. Например, при работе с денежными единицами достаточно двух знаков после запятой, а при работе со среднесписочной численностью людей знаки после запятой вообще не нужны. Таким образом, при расчетах в Excel возникает необходимость в округлении определенных результатов вычислений.

Что такое округление?

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

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

Наиболее распространенный способ – математическое округление, когда число округляется в меньшую сторону, если в числе «отбрасываемая» цифра меньше пяти и округляется в большую сторону, если в числе «отбрасываемая» цифра больше либо равна пяти.

Остановимся на способах округления и отображения числовых значений, используемых в Excel.

Изменение количества отображаемых знаков после запятой без изменения числового значения

Выполнение такого рода действия осуществляется при помощи настроек числового формата, путем уменьшения количества знаков после запятой, при этом само числовое значение не округляется, округляется только его отображение на экране монитора. Внести изменения в настройки числового формата, можно при помощи кнопок «Увеличить разрядность» и «Уменьшить разрядность» на ленте Excel 2007 во вкладке «Главная», в группе «Число».

В других версиях Excel эти кнопки выглядят аналогично. Изменения в настройки числового формата, а именно увеличение либо уменьшение количества отображаемых знаков после запятой, можно внести в настройках формата ячеек. Не буду повторять о том, как вызвать окно «Формат ячеек» разными способами, так как ранее этот вопрос уже рассматривался. Использование вышеописанного метода округления может приводить к некоторым нежелательным последствиям, например вот к такому:

Как видно из примера, некорректная настройка числового формата привела к тому, что 2+3=6, что неверно.

Задать точность как на экране

Следует отметить еще одну возможность Excel, заложенную в параметрах Excel, в разделе «Дополнительно», в группе «При пересчете этой книги» — это пункт «Задать точность как на экране».

*Применение опции «Задать точность как на экране» ведет к изменению числовых значений и точности вычислений.

Округление числовых значений с помощью функций

Для выполнения округления числовых значений можно использовать одну из нескольких функций округления, при этом округляется непосредственно само числовое значение, а не его экранное отображение.

Функция ОКРУГЛ(число;число_разрядов) округляет число до указанного количества десятичных разрядов по классическим правилам математического округления;

Функция ОКРУГЛВВЕРХ(число;число_разрядов) округляет число с избытком до ближайшего большего по модулю;

Функция ОКРУГЛВНИЗ(число;число_разрядов) округляет число с недостатком до ближайшего меньшего по модулю;

Функция ОКРУГЛТ(число;точность) округляет число до кратного заданному числу, в формуле ОКРУГЛТ параметр «точность» — это кратное, до которого нужно округлить результат.

Функция ОКРВВЕРХ(число;точность) округляет с избытком число до ближайшего целого либо до ближайшего кратного указанному значению

Функция ОКРВНИЗ(число;точность) округляет с недостатком число до ближайшего целого либо до ближайшего кратного указанному значению.

*В некоторых версиях Excel функция ОКРУГЛТ отсутствует, для ее появления необходимо установить стандартную надстройку Excel – «Пакет анализа». Е сли функция ОКРУГЛТ есть в математических функциях, но возвращает ошибку #ИМЯ?, попробуйте установить стандартную надстройку Excel – «Пакет анализа».

Кроме вышеперечисленных функций, в стандартных средствах Excel есть еще такие функции, связанные с округлением, как

Функция ЧЕТН(число) округляет число до ближайшего четного целого. При этом положительные числа округляются в сторону увеличения, а отрицательные – в сторону уменьшения;

Функция НЕЧЁТ(число) округляет число до ближайшего нечетного целого. Положительные числа округляются в сторону увеличения, а отрицательные – в сторону уменьшения;

Функция ОТБР(число) округляет число до целого, отбрасывая дробную часть.

Формат ячейки может предопределять отображаемый результат функции, например, если число округлено функцией ОКРУГЛ до трех десятичных разрядов, а в формате ячейки указан числовой формат с двумя знаками после запятой, то при отображении результата на экране определяющее действие будет оказывать формат ячейки.

Для тех, кто использует стандартные функции Excel при написании макросов в VBA, может быть полезен сайт http://ru.excelfunctions.eu/, где есть сопоставление между русскими и английскими именами функций с их русским описанием.

Примеры использования функций округления

=ОКРУГЛ(1,475;2) Округляет число 1,475 до двух десятичных разрядов, в результате получается 1,48;

=ОКРУГЛВВЕРХ(3,14159;3) Округляет с избытком число 3,14159 до трех десятичных разрядов, результат 3,142;

=ОКРУГЛВНИЗ(3,14159) Округляет с недостатком число 3,14159 до трех десятичных разрядов, результат 3,141;

=ОКРУГЛТ(10;3) Округляет число 10 до ближайшего числа, кратного 3, то есть до 9;

=ОКРВВЕРХ(2,5;1) Округляет число 2,5 до ближайшего большего числа, кратного 1, то есть до 3;

=ОКРВНИЗ(2,5;1) Округляет число 2,5 до ближайшего меньшего числа, кратного 1, то есть до 2.

Для того, чтобы избежать возможных неточностей и ошибок, следует тщательно подбирать форматы и способы округления при формировании таблиц в Excel. Если же таблицы уже сформированы не совсем так, как вам бы этого хотелось, то табличные данные можно программно обработать средствами VBA, прибегнув к помощи макросов.

Быстрое округление числовых значений в Excel без использования формул

Надстройка, в которой объединены все основные способы округления, поможет заменить числа в ячейках их округленными значениями, минуя этап ввода формул. Пользователь может на свое усмотрение выбрать диапазон и способ округления, все остальное за него сделает программа.

Читать еще:  Линейн в excel пример

Возможности надстройки позволяют:

1. Одним кликом мыши вызывать диалоговое окно прямо из панели инструментов Excel;

2. быстро заменять числовые значения ячеек округленными значениями, в заданном диапазоне не прибегая к вводу формул и функций в ячейки;

3. быстро выбирать на одной из трех вкладок диалогового окна нужный способ округления и задавать его точность (доступно 9 способов);

4. легко изменять область для поиска и замены чисел их округленными значениями.

Ниже приведен результат округления диапазона ячеек с числовыми значениями до целых чисел с использованием опции «ОКРУГЛ» и количеством знаков после запятой равным нулю.

Visual basic округление чисел

Округление чисел в VBA Excel с помощью оператора Round и встроенной функции рабочего листа WorksheetFunction.Round. Особенности бухгалтерского и обычного округления.

Оператор Round

А вы знаете, что при использовании для округления чисел в VBA Excel оператора Round, вы можете получить совершенно не тот результат, который ожидали? И ведь это действительно так!

Скопируйте в модуль VBA следующую процедуру и запустите ее выполнение:

В результате вы получите это:


Удивительно, не правда ли? Как же так получилось?
Дело в том, что оператор Round осуществляет «бухгалтерское» (или «банковское») округление, которое призвано при большом количестве таких операций свести погрешность к минимуму. Это достигается за счет того, что оператор Round использует при округлении правило, отличное от того, которое мы знаем еще со школы, когда округляемое число увеличивается на единицу, если отбрасываемое число равно пяти. Суть округления с помощью оператора Round состоит в том, что если перед отбрасываемой пятеркой стоит нечетная цифра, то она увеличивается на единицу (округление вверх), а если перед ней стоит четная цифра, то она не увеличивается (округление вниз).

Еще можно сформулировать «бухгалтерское» округление так: при отбрасывании пятерки число округляется к ближайшему четному. Обратите внимание, что в результатах нашего примера все полученные числа – четные.
Проверим погрешность:

  1. Сумма исходных чисел: 1.5 + 2.5 + 3.5 +4.5 = 12
  2. Сумма округленных чисел: 2 + 2 + 4 + 4 = 12

Результат получился просто идеальный для приведенного примера, так как суммы исходных и округленных чисел равны.

Оператор WorksheetFunction.Round

Если вам необходимо общепринятое математическое округление, используйте встроенную функцию рабочего листа – WorksheetFunction.Round.

Скопируйте в модуль VBA процедуру с использованием WorksheetFunction.Round и запустите ее выполнение:

Результат будет следующий:

Получилось то, что мы и ожидали.

  1. Сумма исходных чисел: 1.5 + 2.5 + 3.5 +4.5 = 12
  2. Сумма округленных чисел: 2 + 3 + 4 + 5 = 14

Результат очевиден – в данном случае сумма округленных чисел на 2 единицы больше суммы исходных.

Исходя из этого результата, можно сделать вывод, что «банковское» округление с помощью оператора Round дает более точные результаты при массовых операциях с округленными числами. Но в повседневной жизни чаще встречается обычное математическое округление.

Выбирайте округление, которое вам больше подходит для решаемой задачи!

Очень часто при создании алгоритмов подсчета тех или иных значений полученные результаты имеют значение десятичной дроби с большим количеством знаков после запятой. Работать с такими данными и отображать их не очень удобно и некрасиво.
Рассмотрим какими функциями следует округлять данные в коде vba Excel.

Первый способ округления при помощью функции int().

Данная функция выводит целое значение до запятой. При округлении отрицательных чисел int округляет десятичную дробь до большего целого значения.
Например: число Пи с минусом после округления — int (-3.1415926535 ) будет равно 4 (четырем целым).

Второй способ округление при помощи функции fix()

происходит аналогично с int . Отличается эта функция тем, что округляет отрицательные числа до меньшего значения. Так округлённое число Пи со знаком минус будет fix( -3.1415926535) = 3.
Если требуется не просто убрать дробную часть, а округлить до целого числа, можно использовать следующую функцию cint().
Пример:
Cint(fix( -3.1415926535)) = 3
Cint(int( -3.1415926535)) = 3

Как округлять до десятых и сотых (один и два знака после запятой, соответственно).

Для округления до десятых следует умножить переменную на 10 (десять), после чего округлить до целых и разделить на 10 (десять).
Пример:
Cint(int( -3.1415926535*10))/10 = 3.1
Cint(fix( -3.1415926535*10))/10 = 3.1

Для округления до сотых следует проделать ту же самую операцию, только умножать и делить не на 10, а на 100.
Пример:
Cint(int( -3.1415926535*100))/100 = 3.14
Cint(fix( -3.1415926535*100))/100 = 3.14

Пример кода округляющего значения из textbox, запускающийся нажатием кнопки CommandButtom1:

Private sub CommandButtom1_click()
textbox2.value = Cint(int(textbox1.value *100))/100
END SUB

Видео с примером работы макроса:

Как видите, ничего сложного в округлении чисел в vba Excel нет. Удачи Вам в изучении программы

Похожее:

  1. Макрос определяющий пустая ли ячейка или заполненная в VBA ExcelМакрос проверки заполнения ячеек. Периодически при создании.
  2. Функция VAL в VBA Excel или как преобразовать TextBox в число (цифру).Использования функции преобразования текста в число в.
  3. Макрос для быстрой замены формул на значения (числа) в выделенных ячейках документа Excel.Когда удобно менять формулы на значения нажатием.

Округление значений в коде VBA в Excel. Функции int () и fix().: 1 комментарий

Cint(int(-3.1415926535*100))/100 = 3.1
А это надёжно? Я вместо сотней поставил 1000 и в одном из случаев произошла ошибка переполнения. Опять поставил сотни.

Возвращает число, округленное до указанного количества десятичных разрядов. Returns a number rounded to a specified number of decimal places.

Синтаксис Syntax

Round (круглый ) (Expression, [ нумдеЦималплацес ]) Round(expression, [ numdecimalplaces ])

Синтаксис функции Round содержит следующие элементы: The Round function syntax has these parts:

Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector
×
×