Я пытаюсь найти, есть ли функция, которая делает то, что я мог бы сделать с несколькими операторами IF, просто чтобы сделать ее более надежной и стандартной, я полагаю (и более читаемой)

У меня есть электронная таблица с 4 столбцами данных

A    B    C    D
1200 1350 1700 []
100  120  50   []

A = Мин., B = Макс., C = Факт.

Я хотел бы получить разницу в столбце D. Если C меньше, чем A, это должен быть, например, A - C. Если C больше, чем B, то это должно быть C - B. Если C находится между A и B, я хочу показать отклонение от средней точки A & B.

Я мог бы сделать это с некоторыми заявлениями IF, но я не уверен, есть ли лучший способ сделать это.

Изменить: метод заявления IF, который я сделал сам, заключается в следующем

=IF([@Actual] < [@[Min]],([@Actual]-[@[Min]]),(IF([@Actual] > [@[Max]],([@Actual]-[@[Max]]),([@Actual]-(([@[Min]]+[@[Max]])/2)))))

Который после часа игры с, кажется, дает мне результаты, которые я хочу. Но в таблице из 400 строк на 48 страниц это вызвало значительное отставание.

Я предполагаю, что реальный вопрос заключается в том, есть ли встроенные функции, которые потенциально могут дать те же результаты, но с гораздо меньшим количеством кода / более быстрого кода?

2 ответа2

0

Рассматривать:

=IF(C1<A1,A1-C1,IF(C1>B1,C1-B1,ABS(C1-(B1-A1)/2)))
0

Вам нужны две функции if и одна average , для этого расчета нет встроенной функции. Если читаемость действительно важна для вас, подумайте об использовании некоторого VBA и создайте UDF.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .