формула массива Excel для делимости - PullRequest
1 голос
/ 06 марта 2019

Может ли быть одна формула (возможно, формула массива), которая может указывать, делится ли число в F1 на любое из чисел в ячейках (A1: D9)?

enter image description here

С уважением.

Ответы [ 3 ]

3 голосов
/ 06 марта 2019

Что-то вроде:

{=MIN(MOD(F1, A1:D9))}

будет 0, если любое из чисел является фактором.

2 голосов
/ 06 марта 2019

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

Public Function IsDivisible(rng As Range, v As Long) As Boolean
    Dim r As Range
    IsDivisible = False

    For Each r In rng
        If v Mod r.Value = 0 Then
            IsDivisible = True
            Exit Function
        End If
    Next r
End Function

Например:

enter image description here

Пользовательские функции (UDF) очень прост в установке и использовании:

  1. ALT-F11 открывает окно VBE
  2. ALT-I ALT-M открывает новый модуль
  3. вставьте материал и закройте окно VBE

Если вы сохраните рабочую книгу, UDF будет сохранен вместе с ней.Если вы используете версию Excel более поздней, чем в 2003 году, вы должны сохранить файл как .xlsm, а не .xlsx

К удалить UDF:

  1. откройте окно VBE, как указано выше
  2. очистите код
  3. закройте окно VBE

до используйте UDF из Excel:

= myfunction (A1)

Чтобы узнать больше о макросах в целом, см.

http://www.mvps.org/dmcritchie/excel/getstarted.htm

и

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

, а подробности о UDF см .:

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

Для работы этой функции необходимо включить макросы!

1 голос
/ 07 марта 2019

SUMPRODUCT 'Сделки' в массивах

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

Формулы

Вы можете использовать эту формулу:

=IF(SUMPRODUCT(--(MOD(F$1,$A$1:$D$9)=0)),TRUE,FALSE)

, которая получена из формулы, которая подсчитывает количество вхождений нулевых остатков:

=SUMPRODUCT(--(MOD(F$1,$A$1:$D$9)=0))

, что подводит нас к причине, по которой я бы продолжил расследование.

Я хотел исключить 1 и значение в F1, 81, из числа вхождений, т.е.если единственным нулевым вхождением является число 1 или 81, формула будет показывать FALSE, что делают следующие две формулы:

=SUMPRODUCT(--(MOD(F$1,$A$1:$D$9)=0),--($A$1:$D$9>1),--($A$1:$D$9<$F$1))

, которая подсчитывает количество вхождений нулевых остатков после делениязначение в F1 с каждым значением в диапазоне A1:D9, но не считая, если 1 или значение в F1, где делится, и

=IF(SUMPRODUCT(--(MOD(F$1,$A$1:$D$9)=0),--($A$1:$D$9>1),--($A$1:$D$9<$F$1)),TRUE,FALSE)

, которое возвращает TRUE, если такоевхождение найдено, или FALSE, если нет.

Рабочая тетрадь

Загрузка рабочей тетради (Dropbox)

Поэтому я немного поиграл на листе, чтобы многому научиться.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...