Страницы: 1
RSS
Как написать формулы деления для того чтобы получилось наиболее близкое в целому число
 
Добрый вечер.
Не могу сообразить как написать формулу.
Допустим у меня есть длинна 79000 , я хочу поделить его допустим на числа от 6000-6500 и найти ответ при котором будет минимальное допустимое целое и дробная часть наиболее близкая к целому.  
 
мне ваша формулировка что-то не очень понятна. но, в общем, есть такая ф-ция ЦЕЛОЕ()
например, деля 79000/6000 она вернет 13
 
т.е. нужно найти такой делитель в заданном интервале, у которого будет наименьшее отклонение остатка от целого?

Задачка решается через "Поиск решения". Нужны 3 ячейки: делимое, делитель, частное. 4-я ячейка будет целевая, в ней формула типа =ABS(A1-ЦЕЛОЕ(A1))
Ставим задачу минимизации значения 4-й ячейки, указав заданные интервалы для делителя и критерий целочисленности
Изменено: Максим Зеленский - 05.03.2015 13:56:51
F1 творит чудеса
 
Извините за мои кривые объяснения. Устал очень сегодня за рабочий день))

Вообщем у меня есть велечина допустим 78353 , мне нужно её по делить на ТАКОЕ число( До 6500) при котором Остаток будет минимальным. Оно должно быть целым! и желательно думаю кратное 10
Как мне функцией найти это число?
 
Максим Зеленский, извините пожалуйста , но я вас не понял , можете пример минимальный дать :(
 
Кнопка цитирования - для создани я цитат, но не для ответа
Цитата
можете пример минимальный дать
Сначала Вы
 
Допустим взять число 127 , у меня есть делители с 5 по 12. Делим
127/5=25,40
127/6=21,17
127/7=18,14
127/8=15,88
127/9=14,11
127/10=12,70
127/11=11,55
127/12=10,58

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

Мне нужно , чтобы функция выдавала этот остаток из диапазона 5-12 .

Как-то так(((
 
ну и можно формулой массива, которое находит минимальное из соответствующих чисел:
Код
=МИН(ЕСЛИ(ОСТАТ(79000;СТРОКА($6000:$6500))=МИН(ОСТАТ(79000;СТРОКА($6000:$6500)));СТРОКА($6000:$6500)))

где 79000 - делимое, а интервал указывается вот в этих местах СТРОКА($6000:$6500) - три раза

Для числа 79000 и интервала делителя 6000-6500 дает ответ 6076
без примера точнее сказать нельзя.
F1 творит чудеса
 
Максим Зеленский, Спасибо большое зав ответ , завтра попробую!
 
Вашу задачу можно решить с помощью VBA

Рабочая процедураSub MinimalOstatok()
Код в файле
Изменено: TSN - 05.03.2015 17:08:38
 
Цитата
avenger24 написал: Допустим взять число 127 , у меня есть делители с 5 по 12...
Вы смешиваете два разных понятия - "остаток" и "минимальная дробная часть частного". В файле я расписал ваш пример. Да, у делителя 9 остаток равен минимальному (1), но такой же остаток дают делители 6, 7. Если брать "остаток" в расширенном смысле, т.е. он может быть отрицательным, то такой же по модулю остаток дает делитель 7. Для другого делимого и набора делителей минимальный остаток может не соответствовать минимальной дробной части.
 
TSN, спасибо огромное! То что вы сделали ,я как  раз это и искал. Но не хотелось бы использовать макросы ,vba , так как вообще в это не секу. Это никак нельзя реализовать способностями простого Excel ?)
 
Казанский, спасибо огромное за ответ. Но если честно я вообще не понял , что ты привели в примере)) Видимо я так криво объясняюсь , что ввел вас в заблуждение . Еще раз извините и спаибо) Пользователь TSN привел пример , что мне нужно , но в VBA(
 
avenger24, а чем формула Максим Зеленский, не устроила она выдает тот же результат что и макрос
сравните результаты там формула
Изменено: Сергей - 06.03.2015 07:48:39 (перезалил файл макрос на автоматический пересчет поправил дя простит меня TSN)
Лень двигатель прогресса, доказано!!!
 
Сергей, я не увидел её в то время. Сейчас её пробую. Только один вопрос , почему-то у меня не выходит. Как сделать ссылки на ячейки Минимальный делитель , Максимальный делитель. А так она отлично работает.
Максим Зеленский,  Огромное Спасибо!!

Я прохожу практику на предприятие и эта формула поможет сохранить много деньжат. Будет для меня огромным + ))
 
дак я ж пример выложил там формула ссылается на ячейки
Лень двигатель прогресса, доказано!!!
 
Сергей, дак блин , я сначало пишу сообщение , потом смотрю файлы :D Извините)))

У меня есть англ эксель , она почему-то в нем не работает
а в русском в 2003 работает(

разные компы(
 
дак надо перевести в английский наименование функций и разделители аргументов скорей всего запятая должна быть а не точка с запятой
Лень двигатель прогресса, доказано!!!
 
Сергей, перел , пишет #ССЫЛ!
=MIN(IF(MOD(B1;ROW(INDIRECT("$"&B2&":"&"$"&B3)))=MIN(MOD(B1;ROW(INDIRECT("$"&B2&":"&"$"&B3))));ROW(INDIRECT("$"&B2&":"&"$"&B3))))
 
Код
=MIN(IF(MOD(B1,ROW(INDIRECT("$"&B2&":"&"$"&B3)))=MIN(MOD(B1,ROW(INDIRECT("$"&B2&":"&"$"&B3)))),ROW(INDIRECT("$"&B2&":"&"$"&B3))))
попробуйте

вот тут есть тема типа переводчик формул
Изменено: Сергей - 06.03.2015 08:06:00
Лень двигатель прогресса, доказано!!!
 
Сергей, пробывал менять на запятые :(
Спасибо сейчас попробую привязать (
 
Я также как и Казанский, понимаю что остаток от деления это не совсем то, что видимо подразумевает автор. наименьшая дробная часть частного видимо то что нужно. Поэтому в своем примере я сделал формулы выкрашенные зеленым цветом, при желании их конечно можно объединить в одну мегаформулу, я их просто разделил чтобы был виден поэтапно ход вычислений. В желтых ячейках как раз формулы с остатком от деления.
 
Сергей, не могу вообще разобраться . А может можно еще каким-то способами указать диапозон счёта с выбором минимального и максимального значения делителя?
 
ну что сказать попробуйте переписать формулу в ручную с самого начала в английской версии и да обратите внимание что она массивная вводится сочетанием трех клавиш
Лень двигатель прогресса, доказано!!!
 
Вот докрутил свою формулу (в темно-зеленом диапазоне) с выбором делителя не только минимальной дробной части частного, но и максимально приближенной к целому числу.
 
GeorgeDark, но вот в моём случае диапозон может идти от 4100 до 6500 например и получается в вашем случае надо каждый раз растягивать таблицу?(
 
Сергей, да именно не работает функция INDIRECT() , как она работает у вас(
 
Цитата
avenger24 написал:
TSN  , спасибо огромное! То что вы сделали ,я как  раз это и искал. Но не хотелось бы использовать макросы ,vba , так как вообще в это не секу. Это никак нельзя реализовать способностями простого Excel ?)
К сожалению несколько лет назад познакомился с VBA и с того момента перестал использовать стандартные формулы Ексель.
Могу предложить только функцию UDF (тоже VBA). :)
Код
Public Function MinOstatok(Delimoe As Range, _
                           StartInterval As Range, StopInterval As Range)
''' Функция вычисляет наименьшую дробную часть частного при делении
Dim mOstatok, Ostatok, Dl
Dim Delitel As Long, x As Long
    If StartInterval.Value < 0 And StopInterval.Value > 0 _
      Or StartInterval.Value = 0 Or StopInterval.Value = 0 Then
        MinOstatok = "Дел/0"
    Else
      Dl = Delimoe.Value
      For x = StartInterval To StopInterval
        Ostatok = (Dl / x) - (Dl \ x)
        If x = StartInterval.Value Then mOstatok = Ostatok
        If Ostatok < mOstatok Then mOstatok = Ostatok: Delitel = x
      Next x
      MinOstatok = Delitel
    End If
End Function
Изменено: TSN - 06.03.2015 09:37:30
 
GeorgeDark, Сергей, TSN, Максим Зеленский, Казанский, Спасибо огромное за помощь!! Решил вообщем оставить без вбивание ячеек) Так тоже сойдет спасибо большое.
 
Да, с наименьшей дробной частью я чего-то затупил. Причем сначала сделал правильную формулу - через ОКРУГЛы, потом немного "решил укоротить" :)
Ну вроде автора в итоге все устроило по советам коллег, так что будем считать, что всё ок :)

на всякий случай приложил со своей формулой, которая считает мин. отклонение по модулю с ссылкой на ячейки границ диапазона
F1 творит чудеса
Страницы: 1
Наверх