Приветствую Вас участники форума и гости читающие тему. Помогите пожалуйста решить задачу.
Даны массивы с четырьмя переменными. В данных массивах указаны интервалы по возрастанию (Start, End), разница или высота интервала (+/-), и его оценка (price).
Количество строк интервалов непостоянное и может меняться случайным образом, как и количество массивов. Необходимо привести в порядок всё это хозяйство под общий знаменатель с дискретностью 10 пунктов, для этого высота каждого "price" умножается на свой "Вес" и делится на сумму всех высот входящих в интервал (в нашем случае строго 10). Величина "Вес" может меняться, что также изменяет результаты всех предыдущих расчетов.
Подскажите пожалуйста, как можно автоматизировать данный процесс "стандартизации" (просто не знаю как назвать)?
В файле примере вручную посчитаны 20 пунктов, справа даны рисунки формул и значения весов для привязки к "price"
Приветствую Вас участники форума и гости читающие тему. Помогите пожалуйста решить задачу.
Даны массивы с четырьмя переменными. В данных массивах указаны интервалы по возрастанию (Start, End), разница или высота интервала (+/-), и его оценка (price).
Количество строк интервалов непостоянное и может меняться случайным образом, как и количество массивов. Необходимо привести в порядок всё это хозяйство под общий знаменатель с дискретностью 10 пунктов, для этого высота каждого "price" умножается на свой "Вес" и делится на сумму всех высот входящих в интервал (в нашем случае строго 10). Величина "Вес" может меняться, что также изменяет результаты всех предыдущих расчетов.
Подскажите пожалуйста, как можно автоматизировать данный процесс "стандартизации" (просто не знаю как назвать)?
В файле примере вручную посчитаны 20 пунктов, справа даны рисунки формул и значения весов для привязки к "price"
Берём первый массив. Нас интересуют первые 10 пунктов. Ближайшее значение в ячейке С8, но там "10,1", получается 0,1 уйдет в следующий расчет с 10 до 20 пунктов. В выделенном интервале присутствуют: "плохой" высотой 2,4 (умножаем на его вес "1), "частичный" высотой 6,9 (почему не 7? потому что хвост 0,1 уйдет в следующий расчёт), и наконец 0,7 "сплошной".
Колонка "+/-" как раз дана чтобы видеть высоту интервала. Там и видно в первом массиве, 0,7; 2,4; 7 (для десятки 6,9).
Проверка 0,7+2,4+6,9=10
Результат расчета пишется в R6
0,1 который мы "отрезали" уходит в следующий расчёт.
но если б вы пояснили почему взяты такие цифры в примере расчета Price10 и 20, а то я не понимаю от куда 6,9 и 0,9
Берём вторую десятку Там последнее значение 20,4 в ячейке С11. Последние 0,4 срезаются и идут в следующий расчёт. В итоге высота интервала для расчета не 1,2 (ячейка D11) а 0,8 (1,2-0,4=0,8).
Теперь рассчитываем R7 (0,9*2+9,1*3)/10 где 0,9 - интервал "частичный". Как получили: 0,1 с предыдущего интервала + 0,8 с того что нашли выше. 9,1 - интервал "сплошной" складывается из двух высот 7+2,1 (D9 и D10).
За предложенные формулы спасибо. Вечером дома проверю, сейчас с телефона пишу.
Берём первый массив. Нас интересуют первые 10 пунктов. Ближайшее значение в ячейке С8, но там "10,1", получается 0,1 уйдет в следующий расчет с 10 до 20 пунктов. В выделенном интервале присутствуют: "плохой" высотой 2,4 (умножаем на его вес "1), "частичный" высотой 6,9 (почему не 7? потому что хвост 0,1 уйдет в следующий расчёт), и наконец 0,7 "сплошной".
Колонка "+/-" как раз дана чтобы видеть высоту интервала. Там и видно в первом массиве, 0,7; 2,4; 7 (для десятки 6,9).
Проверка 0,7+2,4+6,9=10
Результат расчета пишется в R6
0,1 который мы "отрезали" уходит в следующий расчёт.
но если б вы пояснили почему взяты такие цифры в примере расчета Price10 и 20, а то я не понимаю от куда 6,9 и 0,9
Берём вторую десятку Там последнее значение 20,4 в ячейке С11. Последние 0,4 срезаются и идут в следующий расчёт. В итоге высота интервала для расчета не 1,2 (ячейка D11) а 0,8 (1,2-0,4=0,8).
Теперь рассчитываем R7 (0,9*2+9,1*3)/10 где 0,9 - интервал "частичный". Как получили: 0,1 с предыдущего интервала + 0,8 с того что нашли выше. 9,1 - интервал "сплошной" складывается из двух высот 7+2,1 (D9 и D10).
За предложенные формулы спасибо. Вечером дома проверю, сейчас с телефона пишу.VR
Сообщение отредактировал VR - Среда, 16.01.2019, 07:20
_Boroda_, попробовал Вашу реализацию. Но расчет неправильный при смене весов. Как пример берём ячейку R6. Если изменить значение в ячейке AB8, то изменяются ответы везде в т.ч. в интервалах где нет значения "не определён (НО)", хотя логично что должны меняться только ячейки (в столбце R для первого массива) только те, в которые попадает интервал "не определён (НО)".
Попробую кое-что сам подправить, что получится выложу.
но если б вы пояснили почему взяты такие цифры в примере расчета Price10 и 20, а то я не понимаю от куда 6,9 и 0,9 К сообщению приложен файл: Copy_of_574.xlsx(25.8 Kb)
ответ не совпадает с ручным расчётом, но все равно спасибо
Спасибо всем за ответы
_Boroda_, попробовал Вашу реализацию. Но расчет неправильный при смене весов. Как пример берём ячейку R6. Если изменить значение в ячейке AB8, то изменяются ответы везде в т.ч. в интервалах где нет значения "не определён (НО)", хотя логично что должны меняться только ячейки (в столбце R для первого массива) только те, в которые попадает интервал "не определён (НО)".
Попробую кое-что сам подправить, что получится выложу.
но если б вы пояснили почему взяты такие цифры в примере расчета Price10 и 20, а то я не понимаю от куда 6,9 и 0,9 К сообщению приложен файл: Copy_of_574.xlsx(25.8 Kb)
ответ не совпадает с ручным расчётом, но все равно спасибо VR
Возможно _Boroda_, переусердствовал, он понял, что знаменатель 10 - это сумма весов. Естественно изменение одного влияет на итоговое значение всех расчетов. Если это константа, исходя из этого
Возможно _Boroda_, переусердствовал, он понял, что знаменатель 10 - это сумма весов. Естественно изменение одного влияет на итоговое значение всех расчетов. Если это константа, исходя из этого
Все верно господа поменял знаменатель в конце на 10 и все пошло. Можно изменять веса а также их количество. Протестирую и вечером отпишусь с готовой формулой и файлом. Ещё бы от 10 избавиться как от константы, потому что это добавляет уязвимость.
Например я не хочу учитывать в расчете интервал "не определен" и тогда уже надо будет делить не на 10. Я объяснял откуда взялось именно 10, это сумма всех интервалов которые входят в 10 пунктов, а теперь один интервал нужно не учитывать, как итог знаменатель не равен 10, а в числлителе данный интервал просто исчезает с его весом.
Также это видно в хвосте массива, там конечное число не круглое, в итоге пустой кусок интервала (например если массив заканчивается 289 - 294) некорректный потому что расчет ведётся до 300 пунктов. Для правильности нужно делить уже на 4
Все верно господа поменял знаменатель в конце на 10 и все пошло. Можно изменять веса а также их количество. Протестирую и вечером отпишусь с готовой формулой и файлом. Ещё бы от 10 избавиться как от константы, потому что это добавляет уязвимость.
Например я не хочу учитывать в расчете интервал "не определен" и тогда уже надо будет делить не на 10. Я объяснял откуда взялось именно 10, это сумма всех интервалов которые входят в 10 пунктов, а теперь один интервал нужно не учитывать, как итог знаменатель не равен 10, а в числлителе данный интервал просто исчезает с его весом.
Также это видно в хвосте массива, там конечное число не круглое, в итоге пустой кусок интервала (например если массив заканчивается 289 - 294) некорректный потому что расчет ведётся до 300 пунктов. Для правильности нужно делить уже на 4VR
это сумма всех интервалов которые входят в 10 пунктов, а теперь один интервал нужно не учитывать, как итог знаменатель не равен 10, а в числлителе данный интервал просто исчезает с его весом.
бррр, слова русские, но ….. Вам бы снова на примере показать что и как.
это сумма всех интервалов которые входят в 10 пунктов, а теперь один интервал нужно не учитывать, как итог знаменатель не равен 10, а в числлителе данный интервал просто исчезает с его весом.
бррр, слова русские, но ….. Вам бы снова на примере показать что и как.bmv98rus
Замечательный Временно просто медведь , процентов на 20.