Таблица содержит список чисел и список начальных значений, когда числа действительны. В отдельной таблице есть список входов, для которых необходимо рассчитать выход.
Правила расчета:
- Если входное значение больше или равно нижнему из двух последовательных начальных значений и меньше чем старшее из тех же двух начальных значений, число, соответствующее нижнему начальному значению, является действительным.
- Если входное значение меньше первого начального значения, выходное значение равно 0.
- Если входное значение больше или равно наибольшему начальному значению, выходным значением является число, соответствующее наибольшему начальному значению.
- Значения в полях Number и Start являются динамическими c. Другими словами, значения не могут быть жестко заданы.
- Начальные значения всегда будут в порядке возрастания.
Например:
Следующая формула работает, но я пытаюсь улучшить свои навыки работы с Excel, рассматривая варианты, которые сокращают общее количество символов. Я полагаю, это немного похоже на ситуацию с Code Golf.
=IF(D2<B$2, 0,
IF(D2<=B$3, A$2,
IF(D2<=B$4, A$3,
IF(D2<=B$5, A$4,
IF(D2<=B$6, A$5, A$6)
)
)
)
)
Мое текущее решение плохо масштабируется из-за природы встроенных операторов if. Цель состоит в том, чтобы уменьшить количество символов, необходимых для вычисления правильных выходных значений, не заботясь о читабельности. Можно создавать эталонные ячейки, если это необходимо, но я пытался этого избежать.
Это погружение в алгоритмы мельчайших деталей больше, чем что-либо еще. Любые советы будут с благодарностью.