ЕСЛИ И ИЛИ оператор не вычисляется правильно - PullRequest
0 голосов
/ 22 апреля 2020

У меня возникли проблемы с моим if заявлением, присоединяйтесь к and и or. Может кто-нибудь сказать мне, почему выбранная ячейка не возвращает значение 2? Он возвращает "", даже если он находится между 6,5 и 6,0. Другая проблема, с которой я сталкиваюсь, состоит в том, что, когда я форматирую столбец R, чтобы иметь один десятичный знак, выбранная ячейка должна привести к 1.

Уравнение столбца S: =IF(AND(R2<=H2+0.5,R2>=H2-0.5),1,"")

Уравнение столбца T: =IF(AND(OR(AND(R3<=H3+1,R3>H3+0.5),R3>=H3-1),R3<H3-0.5),2,"")

Уравнение столбца U: =IF(OR(S2=1,T2=2),"",3)

Цель этого - определить, как далеко R3 падает от H3, на основе установленных пороговых значений. Пороговые значения составляют + -0,5, + -1 и снаружи + -1. Например, R3 больше, чем H3 + 0,5, и меньше или равно H3 + 1. Таким образом, значение T3 должно составить 2.

enter image description here

Ответы [ 3 ]

2 голосов
/ 22 апреля 2020

Моя формула для T3:

=IF(ABS(H3-R3)>1,"difference > 1",IF(ABS(H3-R3)>=0.5,"difference between 1 and 0.5","difference < 0.5"))

Этот код VBA напишет вам формулу в выбранной ячейке в столбце T:

ActiveCell.FormulaR1C1 = "=IF(ABS(RC[-1]-RC[-11])>1,""difference > 1"",IF(ABS(RC[-1]-RC[-11])>=0.5,""difference between 1 and 0.5"",""difference < 0.5""))"

Вы можете изменить текст с помощью чисел как приятно. Вас это устраивает?

1 голос
/ 22 апреля 2020

Я только что попробовал это, и у меня это сработало:

=IF(AND(R3<=H3+1,R3>H3+0.5),2,IF(AND(R3>=H3-1,R3<H3-0.5),2,""))

0 голосов
/ 22 апреля 2020

I думаю это работает для вас в одной формуле.

Формула в С1 и ниже

=LOOKUP(ABS(B1-A1),{0,0.5,1},{1,2,3})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...