powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Генерация числа в диапазоне за исключением некоторого значения
5 сообщений из 5, страница 1 из 1
Генерация числа в диапазоне за исключением некоторого значения
    #39131931
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток.

MS Excel 2013 Rus.

Нужна формула для генерации числа из заданного диапазона за исключением некоторого числа из этого диапазона ( в идеале - чтобы можно было бы указывать вообще произвольный набор таких исключений).

Например, задача такая: получить произвольное число из диапазона [2:12] за исключением числа 10. В качестве заготовки написал такую формулу:
Код: sql
1.
=ЕСЛИ(10 = СЛУЧМЕЖДУ($B$2;$E$2);СЛУЧМЕЖДУ($B$2;9);СЛУЧМЕЖДУ($B$2;$E$2))


Ячейки B2 и E2 содержат граничные значения диапазона произвольных чисел. Например: B2 = 2 и E2 = 12.

Если условие не выполняется, то нужно в качестве значения оставить исходное (т.е. проверяемое) число. Проблема в обозначенной формуле в том, что при выполнении условия происходит повторная генерация и вполне возможно снова получить 10. Как правильно указать в последнем параметре условия ЕСЛИ , что если условие не выполняется, то следует применять проверяемое значение?

Спасибо.
...
Рейтинг: 0 / 0
Генерация числа в диапазоне за исключением некоторого значения
    #39131959
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Одной формулой, без промежуточных ячеек, не обойтись.
Но самое разумное в данном случае (особенно если необходимо исключать произвольный набор значений) делать это пользовательской функцией.
...
Рейтинг: 0 / 0
Генерация числа в диапазоне за исключением некоторого значения
    #39132384
Михаил Ч.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Конкретно для данной задачи:
Код: plaintext
=НАИМЕНЬШИЙ({2:3:4:5:6:7:8:9:11:12};СЛУЧМЕЖДУ(1;10))

массив констант {2:3:4:5:6:7:8:9:11:12} можно получать автоматически используя функцию СТРОКА().

Формула массива (вводится нажатием Ctrl+Shift+Enter):
Код: plaintext
=НАИМЕНЬШИЙ(ЕСЛИ(ЕНД(ПОИСКПОЗ(СТРОКА($A$2:$A$12);{6;8;10};0));СТРОКА($A$2:$A$12));СЛУЧМЕЖДУ(1;8))
Данный вариант позволяет генерировать случайные числа от 2 до 12 за исключением 6, 8, 10
...
Рейтинг: 0 / 0
Генерация числа в диапазоне за исключением некоторого значения
    #39132412
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно делать случайное между 2 и 11, если число >=10, прибавлять 1
...
Рейтинг: 0 / 0
Генерация числа в диапазоне за исключением некоторого значения
    #39132544
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для одного значения можно вообще воспользоваться формулой без всяких "если"
Код: vbnet
1.
2.
3.
4.
=округл( ( СЛУЧМЕЖДУ(Мин;Макс-1) + Дельта ) * коэффициент)
где
коэффициент = 1 + 1 / (Макс - Мин))
Дельта = (ПропускаемоеЗначение+0.5)/коэффициент - ПропускаемоеЗначение
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Генерация числа в диапазоне за исключением некоторого значения
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]