Разное

Mod функция: Mod и остаток — не одно и то же / Хабр

Содержание

Оператор Mod | Microsoft Learn

Twitter LinkedIn Facebook Адрес электронной почты

  • Статья
  • Чтение занимает 2 мин

Возвращает остаток от деления двух чисел.

Синтаксис

Результат = число1Номермода2

Синтаксис оператора Mod состоит из следующих частей:

PartОписание
resultОбязательный элемент; любая числовая переменная.
число1Обязательный элемент; любое цифровоезначение.
число2Обязательный элемент; любое цифровое значение.

Оператор модуля (остатка) делит число1 на число2 (числа с плавающей запятой при этом округляются до целого) и возвращает остаток в аргументе результат. Например, в следующем выражении A (результат) равно 5.

A = 19 Mod 6.7

Обычно типом данных атрибута результат является Byte, вариант Byte

, Integer, вариант Integer, Long или Variant, содержащий значение Long, независимо от того, является ли результат целым числом. Дробные части отсекаются.

Однако если любое из выражений имеет значение Null, объект результат будет иметь значение Null. Любое выражение со значением Empty обрабатывается как 0.

Пример

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

Dim MyResult
MyResult = 10 Mod 5    ' Returns 0.
MyResult = 10 Mod 3    ' Returns 1.
MyResult = 12 Mod 4.3    ' Returns 0.
MyResult = 12.6 Mod 5    ' Returns 3.

См. также

  • Примеры операторов Mod (предыдущие версии)
  • Типы данных
  • Сводка операторов

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

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Функция MOD — остаток от деления

Функция MOD находит остаток от деления одного числа на другое. Вместо MOD можно использовать операцию %, которая делает то же самое.

Синтаксис

Функция MOD:

SELECT MOD(что_делить, на_что_делить) FROM имя_таблицы WHERE условие

Альтернативный синтаксис с %:

SELECT что_делить % на_что_делить FROM имя_таблицы WHERE условие

Таблицы для примеров

таблица numbers
id
айди
number
число
110
28
311

Пример

В данном примере находится остаток от деления столбца number на 3:

SELECT *, MOD(number, 3) as mod FROM numbers

Результат выполнения кода:

id
айди
number
число
mod
остаток от деления
1101
282
3112

Запрос можно переписать следующим образом:

SELECT id, number % 3 as mod FROM numbers

Меняем таблицу для примеров

таблица numbers
id
айди
number1
число1
number2
число2
1103
285
3144

Пример

В данном примере находится остаток от деления столбца number1 на number2:

SELECT *, MOD(number1, number2) as mod FROM numbers

Результат выполнения кода:

id
айди
number1
число1
number2
число2
mod
остаток от деления
11031
2853
31442

Запрос можно переписать следующим образом:

SELECT *, number1 % number2 as mod FROM numbers

Пример

Давайте выберем только те записи, в которых остаток от деления первого числа на второе меньше или равен двум (это будут 1-я и 3-я записи):

SELECT * FROM numbers WHERE MOD(number1, number2)<=2

Результат выполнения кода:

id
айди
number1
число1
number2
число2
1103
3144

Запрос можно переписать следующим образом:

SELECT * FROM numbers WHERE number1 % number2 <= 2

Функция

MOD — служба поддержки Microsoft

Excel

Формулы и функции

Дополнительные функции

Дополнительные функции

МОД-функция

Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Excel для Mac 2011 Excel Starter 2010 Дополнительно.

.. Меньше

В этой статье описаны синтаксис формулы и использование функции MOD  в Microsoft Excel.

Описание

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

Синтаксис

MOD(число, делитель)

Синтаксис функции MOD имеет следующие аргументы:

Замечания

ОСТАТ(n, d) = n — d*INT(n/d)

Пример

Скопируйте данные примера из следующей таблицы и вставьте их в ячейку A1 нового рабочего листа Excel. Чтобы формулы отображали результаты, выберите их, нажмите F2, а затем нажмите клавишу ВВОД. При необходимости вы можете настроить ширину столбцов, чтобы увидеть все данные.

Формула

Описание

Результат

=МОД(3, 2)

Остаток 3/2

1

=МОД(-3, 2)

Остаток -3/2. Знак такой же, как у делителя

.

1

=МОД(3, -2)

Остаток 3/-2. Знак такой же, как у делителя

.

-1

=МОД(-3, -2)

Остаток -3/-2. Знак такой же, как у делителя

.

-1

Функция Excel MOD для получения остатка и более

В этом руководстве показано, как использовать функцию MOD для выполнения операции по модулю в Excel. Вы также узнаете, как нахождение остатка может помочь в решении более сложных задач, таких как суммирование каждой N-й ячейки, выделение нечетных или четных чисел и многое другое.

Функция Excel MOD предназначена для получения остатка от деления. Просто, не так ли? Но эта функция способна на гораздо большее, чем ее первоначальная цель, и через мгновение вы узнаете несколько нетривиальных способов использования MOD в Excel, которые могут оказаться полезными в вашей работе.

Функция Excel MOD — синтаксис и основное использование

Функция ОСТАТ в Excel используется для нахождения остатка после деления одного числа (делимое) на другое (делитель). В математике эта операция называется 9.0121 по модулю

операции или по модулю , отсюда и название MOD.

Функция MOD имеет следующий синтаксис:

MOD(число, делитель)

Где:

  • Число (обязательно) — число, которое нужно разделить.
  • Делитель (обязательно) — число, на которое нужно делить.

Например, MOD(10,3) возвращает 1, потому что 10, разделенное на 3, дает 3 в частном, а остаток равен 1 (10=3*3+1). Формула ОСТАТ(10,5) возвращает ноль, потому что 10 делится на 5 без остатка.

3 вещи, которые вы должны знать о MOD в Excel
  1. Результат функции ОСТАТ имеет тот же знак, что и делитель.
  2. Если делитель равен 0, MOD возвращает #DIV/0! ошибка, потому что нельзя делить на ноль.
  3. Если число или делитель являются текстовым значением, формула Excel Mod возвращает ошибку #ЗНАЧ! ошибка.

MOD формулы для расчета ячеек

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

Формула модификации для суммирования каждой N-й строки или столбца

Удивительно, но Microsoft Excel не имеет встроенной функции для суммирования каждой 2-й, 3-й и т. д. строки на листе. Однако это можно легко сделать, используя одну из следующих формул.

Сумма каждой второй строки

Чтобы сложить значения в каждой второй строке, используйте ОСТАТ в сочетании с СТРОКА и СУММПРОИЗВ:

Сумма даже строк:

СУММПРОИЗВ((МОДА(СТРОКА( диапазон ),2)=0)*( диапазон ))

Сумма нечетных строк:

СУММПРОИЗВ((MOD(СТРОКА( диапазон ),2)=1)*( диапазон ))

Предполагая, что B2:B7 являются ячейками для суммирования, формулы выглядят следующим образом:

Сумма четных строк:
=СУММПРОИЗВ((MOD(СТРОКА($B$2:$B$7),2)=0)*($B$2:$B$7))

Сумма нечетных строк:
=СУММПРОИЗВ((MOD(СТРОКА($B$2:$B$7),2)=1)*($B$2:$B$7))

На снимке экрана ниже показан результат:

В этих формулах комбинация MOD СТРОКА определяет, какие строки суммировать, а СУММПРОИЗВ суммирует значения. Вот как:

ROW предоставляет массив номеров строк для аргумента number функции MOD. MOD делит номер каждой строки на 2, и вы проверяете результат:

  • Чтобы просуммировать четных строк, результат должен быть 0, потому что четные числа делятся на 2 без остатка.
  • Чтобы суммировать нечетных строк, результат должен быть 1, потому что нечетные числа, разделенные на 2, дают в остатке 1.

Вместо СУММПРОИЗВ вы можете использовать функцию ЕСЛИ для оценки условия и СУММ для сложения чисел (это формула массива, которая вводится нажатием Ctrl + Shift + Enter):

=СУММ(ЕСЛИ(ОСТАТ(СТРОКА($B$2:$B$7),2)=0,$B$2:$B$7,0))

Лично я бы придерживался СУММПРОИЗВ, потому что СТРОКА — изменчивая функция, и ее использование в формуле массива делает изменчивой всю формулу. Это означает, что формула будет пересчитываться при каждом изменении, которое вы вносите в книгу, что может заметно замедлить работу Excel.

Сумма каждой N-й строки

Чтобы сложить каждые 3 rd , 4 th , 5 th и т. д., используйте эту общую формулу:

СУММПРОИЗВ((MOD(СТРОКА( диапазон )-СТРОКА( first_cell )+1, n )=0)*( диапазон ))

Например, чтобы суммировать каждые 3 ячейки rd в диапазоне C2:C10, формула выглядит следующим образом:

=СУММПРОИЗВ((MOD(СТРОКА($C$2:$C$10)-СТРОКА($C$2)+1,3)=0)*($C$2:$C$10))

По сравнению с предыдущим примером эта формула имеет более сложную «логику фильтрации»:

МОД(СТРОКА($C$2:$C$10)-СТРОКА($C$2)+1,3)=0

Сначала вы вычитаете первую строку из всех остальных строк в диапазоне, чтобы получить массив относительных номеров строк {0;1;2;3;4;5;6;7;8}, к которому вы добавляете 1 для начала считая от единицы: {1;2;3;4;5;6;7;8;9}

Приведенный выше массив входит в число аргумента функции ОСТАТ, которая возвращает остаток после деления каждого числа на 3: {1;2;0;1;2;0;1;2;0}

Обратите внимание, что нули появляются для каждой строки 3 rd , а MOD()=0 сообщает Excel, что нужно возвращать TRUE только для этих строк, FALSE для всех остальных строк. Если ИСТИНА равняется 1, а ЛОЖЬ равна 0, у нас остается массив {0,0,1,0,0,1,0,0,1}

.

Наконец, СУММПРОИЗВ умножает приведенный выше массив и C2:C10, а затем складывает произведения. Поскольку умножение на ноль всегда дает 0, умножению подвергаются только строки, содержащие 1 в первом массиве.

Сумма каждого N-го столбца

Чтобы суммировать числа в каждом столбце 2 nd , 3 rd и т. д., просто замените ROW на COLUMN в приведенной выше формуле, например:

СУММПРОИЗВ((MOD(COLUMN( диапазон )-COLUMN( first_cell )+1, n )=0)*( диапазон ))

Например, чтобы сложить числа в каждом 4-м столбце в диапазоне B2:I2, используйте следующую формулу:

=СУММПРОИЗВ((MOD(СТОЛБЦ($B2:$I2)-СТОЛБЦ($B2)+1,4)=0)*($B2:$I2))

Формула модификации для объединения каждых N ячеек

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

В этом примере сведения о заказе находятся в трех разных ячейках столбца B, поэтому мы хотим объединить каждый блок из трех ячеек, начиная с B2. Это можно сделать по следующей формуле:

=ЕСЛИ(ОСТАТ(СТРОКА()-1, 3)=0, СЦЕПИТЬ(B2, "-", B3, "-", B4), "")

Важное примечание! Для корректной работы формулы ее необходимо ввести в строку 3 rd с данными (в данном примере C4), а затем скопировать вниз по столбцу.

Логика формулы очень проста:

Сначала вы проверяете, делится ли данная строка на 3 без остатка: MOD(ROW()-1, 3)=0. Чтобы получить относительное положение текущей строки, мы вычитаем 1 из фактического номера строки (поскольку наши данные начинаются со строки 2, а не с строки 1). Если остаток от деления равен 0, функция СЦЕПИТЬ объединяет значения из 3 ячеек и разделяет их разделителем по вашему выбору («-» в этом примере). Использование относительных ссылок на ячейки обеспечивает объединение трех разных ячеек каждый раз.

Совет. Вместо исправления -1 вы можете получить относительное положение каждой строки, как мы сделали в приведенном выше примере, т.е. , «»)

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

Модифицировать формулы для подсчета ячеек, содержащих нечетные или четные числа

Как вы уже знаете, самый простой способ определить четное целое число — это разделить число на 2 и проверить, нет ли остатка. Чтобы определить нечетное число, вы проверяете остаток от 1. Опять же, мы будем использовать функцию ОСТАТ, чтобы найти остатки, и СУММПРОИЗВ, чтобы подсчитать «отфильтрованные ячейки».

Количество ячеек с нечетными числами:

СУММПРОИЗВ((МОД( диапазон ,2)=1)*1)

Количество ячеек с четными номерами:

СУММПРОИЗВ((МОД( диапазон ,2)=0)*1)

С числами в ячейках от A2 до A8 формулы принимают следующий вид:

Количество ячеек, содержащих нечетных чисел:

=СУММПРОИЗВ((MOD(A2:A8,2)=1)*1)

Количество ячеек, содержащих четных чисел:

=СУММПРОИЗВ((MOD(A2:A8,2)=0)*1)

Как использовать MOD в Excel для выделения ячеек

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

Подсветка нечетных и четных чисел

Чтобы выделить ячейки, содержащие нечетные или четные числа, используйте следующую формулу Excel Mod, которая делит число на 2, а затем проверяет наличие остатка 1 и 0 соответственно:

Выделить ячейки с нечетными числами:

=МОД(A2,2)=1

Выделить ячейки с четными номерами:

=МОД(А2,2)=0

Где A2 — самая левая ячейка с данными.

Подсветка целых и десятичных дробей

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

=МОД(А2,1)=0

Если остаток больше нуля, вы имеете дело с дробью (включая десятичных знаков ):

=МОД(A2,1)>0

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

Подсветка кратных числу

Чтобы выделить числа, кратные определенному значению, просто разделите число на это значение и проверьте наличие нулевого остатка.

Например, чтобы выделить ячейки, содержащие 10 и все его числа, используйте следующую формулу:

=МОД(A3,10)=0

Где A3 — это верхняя левая ячейка в диапазоне, для которого вы создаете правило (A3:C9 на снимке экрана ниже).

Или вы можете ввести интересующее число в любую пустую ячейку, скажем, C1, и указать ссылку на эту ячейку в своей формуле (не забудьте заблокировать ячейку абсолютной ссылкой):

=МОД(A3, $C$1)=0

Excel MOD с проверкой данных

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

Чтобы создать правило проверки данных на основе формулы, щелкните Данные > Проверка данных . На вкладке Settings выберите Custom в Разрешить поле и введите формулу в поле Формула . Подробные инструкции см. в разделе Как создать пользовательское правило проверки в Excel.

Например, чтобы разрешить только целые числа в ячейках A2:A8, выберите эти ячейки и настройте правило с помощью этой формулы:

=МОД(А2,1)=0

Аналогичным образом вы можете ограничить ввод данных четными или нечетными числами:

Разрешить только нечетных номеров:

=МОД(А2,2)=1

Разрешить только четных номеров:

=МОД(А2,2)=0

Где A2 — самая левая верхняя ячейка выбранного диапазона.

Вот как вы используете функцию ОСТАТ в Excel, чтобы найти остаток от деления и выполнить другие вычисления. Чтобы поближе познакомиться с формулами, обсуждаемыми в этом руководстве, вы можете загрузить образец рабочей книги Excel MOD. Дополнительные примеры формул см.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *