Я пытаюсь найти дельту между двумя наборами чисел. Некоторые цифры положительные, некоторые отрицательные.
Использование следующей формулы работает примерно в 99% случаев:
=IF(I18<0,I18+R18,IF(I18>0,I18-R18))
Однако, когда I18
и R18
отрицательные числа, мне нужно I18-R18
. Я пробовал несколько IF
AND
заявлений, но просто не могу понять это правильно. Надеюсь, кто-то может направить меня в правильном направлении.
microsoft-excel
Дейв
источник
источник
I18
это ноль.I18
иR18
отрицательные числа, мне нужноI18-R18
» Вы уверены, что имеете в виду это? Я думал, что вы хотели дельту как абсолютную разницу. ЕслиI18
есть-2
иR18
есть-1
, ваш результат будет-1
. Разве вы не хотите положительное число во всех случаях?=ABS(I18)-ABS(R18)
желаемый результат?A+B
случае, если и A, и B равны нулю.Ответы:
Похоже, вы просто хотите разницу (дельта) между
I18
иR18
, и вы хотите, чтобы она всегда была положительной?Эта формула сделает это:
=ABS(I18-R18)
Это даст правильный ответ, будь то
I18
положительный, отрицательный или ноль.источник
IF()
работу работать правильно. Другие ответы касались вопроса, который был задан. Но иногда, выбрав другой путь, вы быстрее попадете в нужное место.Вместо проверки операндов на отрицательность, проверьте результат.
источник
I18>R18
Давайте упростим ваш оригинальный код:
Теперь вы говорите, что когда X <0 и Y <0, вы на самом деле хотите, чтобы результат был X - Y, а не X + Y. ОК.
Это написано.
Как отмечено выше, у вас нет нулевого регистра. Вы можете изменить один из компараторов LT / GT на LE / GE, просто добавив знак равенства - в зависимости от ваших данных и логики.
источник
If Y<0 {A} Else {B}
но A и B идентичны. Есть ли опечатка?Вы можете использовать ниже:
Единственный недостаток, который я могу видеть, это то, что вы делаете в случае, когда у
I18 = 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
источник
+
/-
) переменных тривиальна, и ее показ ничего не дает для уточнения вашего ответа. Если вы собираетесь опубликовать ответ на вопрос, столь же неясный, как этот, полезно объяснить, на какой вопрос, по вашему мнению, вы отвечаете. (2) Что бы вы ни делали, ваша формула кажется излишне сложной. Объяснение того, что он делает, было бы полезно. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... Пожалуйста, не отвечайте в комментариях; отредактируйте свой ответ, чтобы сделать его более понятным и полным.Я просто столкнулся с ситуацией (измеряя цветовые показания лаборатории), где мне нужна не просто разница между x & y, а положительное или отрицательное дельта-движение. Поэтому обычно -5 минус -2 = -3, но желание показать, что дельта на самом деле была в положительном направлении, -3 - это не то, что я ищу:
= ЕСЛИ (A1> B1, ABS (A1-B1) * - 1, ABS (A1-B1))
Проще говоря, если 2-е (более новое) чтение меньше, я знаю, что результатом является отрицательное движение (поэтому * -1), и оно сместилось дальше вниз по отрицательной стороне оси. В противном случае, если второе значение больше, значение чистого ABS работает, зная разницу в положительном направлении.
источник