Проблема не в НАИМЕНЬШИЙ, а в ОСТАТ, при определенных условиях ОСТАТ(...;1) возвращает отрицательное значение (вот бы никогда не догадался) соответственно ПРОСМОТР - возвращает Н/Д, а за ним и НАИМЕНЬШИЙ возвращает Н/Д
см. файл
Quote (_Boroda_)
А покажи.
Проблема не в НАИМЕНЬШИЙ, а в ОСТАТ, при определенных условиях ОСТАТ(...;1) возвращает отрицательное значение (вот бы никогда не догадался) соответственно ПРОСМОТР - возвращает Н/Д, а за ним и НАИМЕНЬШИЙ возвращает Н/Д
Ну там ведь и не ноль, а иное число 0,458333333333333*24 никак не может дать целое число, будет 10 и 9 в периоде, но из-за округления с 16-го разряда приравнивается к 11-и...
ЗЫ Проверить можно на калькуляторе
Code
=ОСТАТ(0,458333333333333*24-11;1)
вернёт 0,999999999999991
Забавно, но сам Excel считает что
Code
=0,458333333333333*24=11
- это ИСТИНА
Quote (MCH)
как может остаток от нуля по 100 равняться 100?
Ну там ведь и не ноль, а иное число 0,458333333333333*24 никак не может дать целое число, будет 10 и 9 в периоде, но из-за округления с 16-го разряда приравнивается к 11-и...
Тебя здесь ничего не смущает, как может остаток от нуля по 100 равняться 100?
Не, не смущает. Все правильно. см. справку по ОСТАТОК
Quote
Функция ОСТАТ может быть выражена через функцию ЦЕЛОЕ: ОСТАТ(n, d) = n - d*ЦЕЛОЕ(n/d)
Дело в том, что 11/24=0,458(3), следовательно, 0,458333333333333*24-11 не совсем ноль, а чуть-чуть меньше нуля (назовем его n). Тогда ЦЕЛОЕ(n/100) будет -1, а вся формула n-100*(-1)=100
Quote (MCH)
Тебя здесь ничего не смущает, как может остаток от нуля по 100 равняться 100?
Не, не смущает. Все правильно. см. справку по ОСТАТОК
Quote
Функция ОСТАТ может быть выражена через функцию ЦЕЛОЕ: ОСТАТ(n, d) = n - d*ЦЕЛОЕ(n/d)
Дело в том, что 11/24=0,458(3), следовательно, 0,458333333333333*24-11 не совсем ноль, а чуть-чуть меньше нуля (назовем его n). Тогда ЦЕЛОЕ(n/100) будет -1, а вся формула n-100*(-1)=100_Boroda_
ну не должна функция ОСТАТ(X;Y) при любом X и Y возвращат отрицательное число или число равное Y и больше. при условии что вычисляя в ячейке =0,458333333333333*24-11 получаем 0 без каких либо знаков после запятой, хотя =0,458333333333333*24-11 < 0
ну не должна функция ОСТАТ(X;Y) при любом X и Y возвращат отрицательное число или число равное Y и больше. при условии что вычисляя в ячейке =0,458333333333333*24-11 получаем 0 без каких либо знаков после запятой, хотя =0,458333333333333*24-11 < 0MCH
про природу ошибки, связанного со стандартом вычисления чисел с плавающей точкой, я понимаю
про ЦЕЛОЕ тоже понятно, только вот почему при вычислении отдельно =0,458333333333333*24-11 результат в ячейке или по F9 получается 0, а не например -1E-16 тогда поведения ОСТАТ было бы понятным, а так не угадаешь, когда ОСТАТ вернет ожидаемое значение, а когда отрицательное или равное делителю, вместо нуля
Quote (Michael_S)
А вот ... отрицательное - не должно
см. ранее выложенный скрин
про природу ошибки, связанного со стандартом вычисления чисел с плавающей точкой, я понимаю
про ЦЕЛОЕ тоже понятно, только вот почему при вычислении отдельно =0,458333333333333*24-11 результат в ячейке или по F9 получается 0, а не например -1E-16 тогда поведения ОСТАТ было бы понятным, а так не угадаешь, когда ОСТАТ вернет ожидаемое значение, а когда отрицательное или равное делителю, вместо нуляMCH
а так не угадаешь, когда ОСТАТ вернет ожидаемое значение, а когда отрицательное или равное делителю, вместо нуля
Не знаю, как в 2003, в 2007/2010, если такие сложные вычисления со временем и нужно точность до секунды - в любой свободной ячейке пишем число с десятью знаками после запятой и ставим галку "точность как на экране". Для финансовых расчетов с большим избытком достаточно шесть знаков после запятой. Не помню, как в 2003 - эта галка действует на одну книгу или на весь Excel.
Quote (MCH)
а так не угадаешь, когда ОСТАТ вернет ожидаемое значение, а когда отрицательное или равное делителю, вместо нуля
Не знаю, как в 2003, в 2007/2010, если такие сложные вычисления со временем и нужно точность до секунды - в любой свободной ячейке пишем число с десятью знаками после запятой и ставим галку "точность как на экране". Для финансовых расчетов с большим избытком достаточно шесть знаков после запятой. Не помню, как в 2003 - эта галка действует на одну книгу или на весь Excel.Michael_S
Не знаю, как в 2003, в 2007/2010, если такие сложные вычисления со временем и нужно точность до секунды - в любой свободной ячейке пишем число с десятью знаками после запятой и ставим галку "точность как на экране".
точно есть
Quote (Michael_S)
Не знаю, как в 2003, в 2007/2010, если такие сложные вычисления со временем и нужно точность до секунды - в любой свободной ячейке пишем число с десятью знаками после запятой и ставим галку "точность как на экране".
Если разрвыв между операциями 56 часов формула не работает!
В формуле, там где СТРОКА($1:$4000) - 4000 на сколько мы "заглядываем" в будущее, чем выше это значение, тем медленнее считает формула для 56 часов + 2 выходных + нерабочее вечернее и утреннее время достаточно 5 суток (1440*5 = 7200) замените 4000 на 7200 в формуле, и она будет работать для 56 часов
Quote (Наталка)
Если разрвыв между операциями 56 часов формула не работает!
В формуле, там где СТРОКА($1:$4000) - 4000 на сколько мы "заглядываем" в будущее, чем выше это значение, тем медленнее считает формула для 56 часов + 2 выходных + нерабочее вечернее и утреннее время достаточно 5 суток (1440*5 = 7200) замените 4000 на 7200 в формуле, и она будет работать для 56 часовMCH
Подробнее опишите проблему, что необходимо сделать, из приложенного файла не понятно? Зачем в H5 Вы проверяете ДЕНЬНЕД(...)<8, это условие всегда дает ИСТИНА
Подробнее опишите проблему, что необходимо сделать, из приложенного файла не понятно? Зачем в H5 Вы проверяете ДЕНЬНЕД(...)<8, это условие всегда дает ИСТИНАMCH