0
- 26.05.2017 - 11:56
|
Есть стандартный ряд чисел, например: 367, 439, 517, 613, 721, 823, 931 и т.д. В результате расчета получилась величина, например 759. Ексель должен выбрать ближайшее большее из стандартного ряда. В данном случае 823. Подскажите, плиз! | |
1
- 27.05.2017 - 06:38
|
Таблица x y 1 367 2 439 3 517 4 613 5 721 6 823 7 931 Уравнение линейной регрессии имеет вид у=95*х+ 250 Спускаем вниз на 20 пунктов нашу прямую, чтобы все заданные известные точки оказались выше расчетных, и потом при вычислениях округляем вверх. у = 95*х +230 --> вычисляем х и округляем вверх до целого. х=(у-230)/95 Нашли ближайшее значение Х, теперь сравниваем У(х) с У_табличным(х). Если У_табл меньше тогда спускаемся Х=х-1. Х- порядковый номер в заданном ряду значений У. Можно написать макрос, а можно и в ячейке формулу составить по условию. Еще надо по диапазону ограничение на Мин, чтобы не выскочить. В данном примере Х не может быть больше 7. | |
2
- 27.05.2017 - 07:09
| Вернее наоборот. В Ехеле(1) видно, когда находим Х для (У=У-1) во всех случаях рассчитанный Х надо убавить на 1. Надеюсь, понятно | |
3
- 27.05.2017 - 07:23
| Проверка: х=(759-230)/95 = 5,57 Округляем вверх х = 6 У(6) = 823 | |
4
- 27.05.2017 - 07:40
|
Еще проверяем Округление вниз до целого, чтобы не перескочить ближайшую заданную точку. Х = целое(5.57)=5 У(5) = 721 Сравниваем Если У(5) > 759 тогда округлвверх(Х) убавляем х=х-1 | |
5
- 27.05.2017 - 07:49
| Или лучше сначала проверить округление вниз до целого, а затем добавить 1, если табличное значение окажется меньше. | |
6
- 27.05.2017 - 08:17
|
Подумал, лучше вообще не округлять вверх. Сразу проверить округление вниз до целого. Если табличное значение окажется меньше, добавляем х = цел(х)+1 Пример, вычислим ближайший больший У_табл для у= 437: х=(437-230)/95 = 2,18 х=цел(2,18) = 2 У_табл(2) = 439 х= ?(У_табл >у , х, х+1); //это на 1С, в Ехель - Если() 439 > 437 х=2 | |
| Интернет-форум Краснодарского края и Краснодара |