Remkomplekty.ru

IT Новости из мира ПК
120 просмотров
Рейтинг статьи
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

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

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

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

На листе

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читать еще:  Как вставить столбик в excel

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

Функция ОКРУГЛ округляет дробные числа следующим образом: если дробная часть больше или равна 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 возникает необходимость в округлении определенных результатов вычислений.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читать еще:  Функция find в 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 без использования формул

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

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

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

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

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

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

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

Как округлить с excel VBA round()?

У меня есть следующие данные:

Однако, когда я попытался использовать round(cells(1,1).value*cells(1,2).value),2) , результат не соответствует cell(2,1) . Я решил, что это связано с проблемой округления, но мне просто интересно, можно ли заставить round() действовать нормально. То есть , для value > 0.5 , округлить. А для value , округлить вниз?

12 Ответов

VBA использует округление банкиров в попытке компенсировать смещение при всегда округлении вверх или вниз.5; Вы можете вместо этого;

Попробуйте эту функцию, это нормально, чтобы округлить двойной

Если вы хотите округлить, используйте половину регулировки. Добавьте 0.5 к округляемому числу и используйте функцию INT().

ответ = INT(x + 0.5)

Я представляю две пользовательские библиотечные функции, которые будут использоваться в vba, которые будут служить цели округления двойного значения вместо использования WorkSheetFunction.RoundDown и WorkSheetFunction.RoundUp

Таким образом функция Rdown (2878.75 * 31.1,2) вернет 899529.12 а функция RUp (2878.75 * 31.1,2) вернет 899529.13 В то время как Функция Rdown (2878.75 * 31.1,-3) вернет 89000 а функция RUp (2878.75 * 31.1,-3) вернет 90000

Попробуйте использовать функцию RoundUp:

У меня была проблема, где я должен был только округлить, и эти ответы не работали для того, как я должен был запустить свой код, поэтому я использовал другой метод. Функция INT округляется в сторону отрицательного значения (4.2 переходит в 4, -4.2 переходит в -5) Поэтому я изменил свою функцию на отрицательную, применил функцию INT, а затем вернул ее в положительную, просто умножив ее на -1 до и после

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

Использовал функции «RDown» и «RUp» из ShamBhagwat и создал еще одну функцию, которая будет возвращать круглую часть (без необходимости давать «digits» для ввода)

на выходе будет:

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

Простое решение, используйте Worksheetfunction.Round(). Это будет округлить, если его на краю.

Это пример j-значение, которое вы хотите округлить.

Если остаток больше 0, то он округляет его, просто. При 1.5 он автоматически округляется до 2, поэтому он будет меньше 0.

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

Это сработало для меня

Я сам нашел обходной путь:

Не стесняйтесь благодарить меня. Работает как шарм для меня и функция автомасштаб работает!

Похожие вопросы:

В Excel, я хотел бы округлить до ближайшего числа Фибоначчи. Я пробовал что-то вроде (извините с французским Excel): RECHERCHEH(C7;FIBO;1;VRAI) — HLOOKUP(C7, FIBO, 1, TRUE) где FIBO-именованный.

У меня есть странная проблема с функцией Round() VBA. Когда я пытаюсь округлить любой ввод в научной нотации он всегда возвращает ноль: ? Клетки (3, 34).Значение 8,77796901893289 E-02 ? Круглый.

В качестве дополнения к этому вопросу я пытаюсь разработать некоторые элементы управления, чтобы запретить пользователям в моей лаборатории использовать функцию Excel ROUND (операционные процедуры.

Пожалуйста, примите мои искренние извинения, если название или вопрос сбивает с толку. Я использую VBA в Excel 2007. Мне нужно округлить число до ближайших 500. Я использую код: Rvariable =.

Я пытаюсь округлить значение от 8904000 до 8900000 есть ли какой-либо возможный способ изменить это с помощью Math.round. пример в MS Excel =round(8904000,-5); ANS: 8900000 Я попробовал код ниже, но.

В ячейке B2 у меня есть переменная со значением 297.123 перед выполнением вычислений в VBA я хотел бы округлить это до 297.12. Смотрите код ниже о том, что я пробовал. Оба оценили топливо до 297.

Какой лучший способ округлить в доступе VBA? Мой текущий метод использует метод Excel Excel.WorksheetFunction.Round(. Но я ищу средство, которое не полагается на Excel.

Мне нужно округлить два значения и суммировать их. Проблема в том, что у меня есть чешская версия MS Excel , а функция округления называется Заокроухлить Так что моя формула выглядит как.

Public Function foo() Dim x As Double, y As Double, z As Double x = 1.26 y = 3.175 z = Round(x + y, 2) foo = z End Function Запуск Excel 2007 на Windows 7. Эта функция возвращает 4.43 в ячейку с.

Формула Округления ОКРУГЛ() или ROUND() в Excel

Одним из вариантов представления числа до необходимого с заданным количеством знаков разряда является формула Округление ОКРУГЛ() или ROUND() в английском варианте. Она округляет число по стандартным математическим правилам.

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

Возьмем абстрактные числа требующие округления:

Начнем писать в строке функций формулу =ОКРУГЛ( и нажмем кнопку Fx:

В окне аргументы функции в поле число указываем адрес ячейки для округления (B2), в поле число_разрядов необходимое число разрядов до которого необходимо округлить (например, 2):

Предварительно Excel уже показывает результат, нажимаем кнопку ОК и протягиваем формулу до конца столбца (до ячейки C5):

Ничего сложного, быстро и удобно.

Формула ОКРУГЛВВЕРХ() или ROUNDUP().

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

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

Формула ОКРУГЛВНИЗ() или ROUNDDOWN()

Как в предыдущем примере, только округление последнего разряда будет в меньшую сторону. По идеи в нашем примере от функции ОКРУГЛ() должны отличаться цифры №2 и 3. Проверим:

Формула ОКРГУЛТ() или MROUND()

Но есть еще одна функция округления это функция ОКРУГЛТ() или MROUND(). Она позволяет найти ближайшее большее число кратное точности. Для простоты упростим наш пример:

В строке функций начинаем набирать формулу =ОКРУГЛТ() и нажимаем Fx. В окне аргументов вводим число и укажем точность равной 3, получаем результат:

Для первого числа ответ 9. Это ближайшее большее число кратное цифре 3.

Округление с помощью форматов.

Заменить функцию округления (в стандартном ее исполнении) можно задав формат числа. Для нашего примера выделяем ячейки:

Нажимаем ПКМ – формат ячеек.

В числовых форматах выбираем числовой:

Указываем число десятичных знаков, мы округляли до 3 знаков, укажем так и здесь:

Нажимаем ОК. Наблюдаем результат:

На этом с округлением значений все. Пишите в комментариях пожелания и вопросы.

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