8

Я пытаюсь найти дельту между двумя наборами чисел. Некоторые цифры положительные, некоторые отрицательные.

Использование следующей формулы работает примерно в 99% случаев:

=IF(I18<0,I18+R18,IF(I18>0,I18-R18))

Однако, когда I18 и R18 - отрицательные числа, мне нужен I18-R18 . Я пробовал несколько операторов IF AND , но просто не могу понять, как это правильно. Надеюсь, кто-то может направить меня в правильном направлении.

6 ответов6

53

Похоже, вы просто хотите разницу (дельта) между I18 и R18 , и вы хотите, чтобы она всегда была положительной?

Эта формула сделает это:

=ABS(I18-R18)

Это даст правильный ответ, является ли I18 положительным, отрицательным или нулевым.

6

Вместо проверки операндов на отрицательность, проверьте результат.

=IF(I18-R18>0,I18-R18,R18-I18)
5

Давайте упростим ваш оригинальный код:

If X < 0:
    Z = X + Y

Else X > 0:
    Z = X - Y

Теперь вы говорите, что когда X <0 и Y <0, вы на самом деле хотите, чтобы результат был X - Y, а не X + Y. ХОРОШО.

If Y < 0:
   If X < 0:
      Z = X - Y
   Else:
      Z = X + Y
Else:
   If X < 0:
      Z = X - Y
   Else:
      Z = X + Y

Это написано.

=IF(R18<0,IF(I18<0,I18-R18,I18+R18),IF(I18<0,I18-R18,I18+R18))

Как отмечено выше, у вас нет нулевого регистра. Вы можете изменить один из компараторов LT/GT на LE/GE, просто добавив знак равенства - в зависимости от ваших данных и логики.

3

Вы можете использовать ниже:

=IF(AND(I18<0,R18<0),I18-R18,IF(I18<0,I18+R18,IF(I18>0,I18-R18)))

Единственный недостаток, который я могу видеть, это то, что вы делаете в случае, когда I18 = 0 , у вас ничего не установлено для этого.

В любом случае, если вы хотите добавить что-то для этого экземпляра, см. Ниже:

=IF(AND(I18<0,R18<0),I18-R18,IF(I18<0,I18+R18,IF(I18>0,I18-R18,"IF I18 = zero goes here")))
1

Я не знал об АБС. Я собирался предложить

= SQRT((I18-R18)2 ^)

0

Это работало для меня -> IF(И (I18 <0, R18 <0), I18-R18, IF(I18 <0, ((R18-I18)* - 1), IF(I18> = 0, I18-R18)))

Это охватывает все сценарии: переменная A | Переменная B +ve | + ве + ве | -ve -ve | + ве-ве | -ve

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