두 숫자 사이의 델타 공식


9

두 숫자 집합 사이의 델타를 찾으려고합니다. 어떤 숫자는 양수이고 어떤 숫자는 음수입니다.

다음 공식을 사용하면 시간의 약 99 %가 작동합니다.

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

그러나, I18R18음수가, 내가 필요 I18-R18. 여러 IF AND문장 을 시도했지만 이를 제대로 얻을 수없는 것 같습니다. 누군가가 올바른 방향으로 나를 안내 할 수 있기를 바랍니다.


3
I180 이면 어떻게해야하는지 말하는 것을 잊었습니다 .
Blackwood

3
"때 I18R18음수 내가 필요는 있습니다 I18-R18당신은 당신이이 의미가 있습니까?" 델타를 절대적인 차이로 원한다고 생각했습니다. 경우 I18이다 -2하고 R18있다 -1, 당신의 결과가 될 것입니다 -1. 모든 경우에 양수를 원하지 않습니까?
JoL

=ABS(I18)-ABS(R18)원하는 출력을 생성 합니까 ?
살만

3
귀하의 질문은 분명하지 않습니다. 난 단지 당신은 내가 답을보고 한 후 무엇인지 이해할 수 (그리고 나는 확실히 무슨이 아직 아니에요 당신이 원하는). 또한 A와 B 사이의 델타는 A와 B가 A+B모두 0 인 경우 에만 가능 합니다.
Dmitry Grigoryev

3
델타는 일반적 의미 의 차이 인 두 숫자 사이에 항상 AB를 , 그리고 당신이 더 큰이 숫자의 어떤 의미하지 않으려면, 당신은 절대 값이 걸릴 것 복근 (AB)를 .
Mick

답변:


55

당신은 단지 사이의 차이 (델타) 원하는 것 같은데 I18R18, 당신은 항상 긍정적 싶어?

이 공식은 다음을 수행합니다.

=ABS(I18-R18)

그것은 I18긍정적 인지 , 부정적 또는 0 인지 에 대한 정답을 줄 것 입니다.


3
다른 답변이 얼마나 복잡한 지보십시오! 간단하게 유지하십시오!
스튜어트

11
공정하게, 질문은 중첩 IF()작업을 올바르게 수행 하는 방법을 물었습니다 . 다른 답변은 요청 된 질문을 해결했습니다. 그러나 때로는 다른 길을 택하면 올바른 장소로 더 빨리 갈 수 있습니다.
Steve Kennedy

@Stewart 좀 더 공정하게 말하면 OP가 절대 차이를 원하는지 확실하지 않습니다. ToddCurry와 PeterH의 답변은 절대 차이로 이어지지 않는 OP 세트의 조건을 충족시키는 것으로 보입니다.
JoL

@Stewart, 대부분의 다른 답변은 기본 조건부 블록에서 함수 ABS ()를 개발한다는 점을 제외하고는 기본적 으로이 답변과 동일합니다. 그러나 실제로 복잡한 것은 없습니다.
cedbeu

1
@cedbeu 분명히 복잡합니다. 다른 답변이 정신적으로 읽고 파싱하기가 더 어려울 경우에만.
스튜어트

6

피연산자의 부정성을 확인하는 대신 결과를 확인하십시오.

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

3
상태는 다음과 같이 대체 될 수도 있습니다.I18>R18
Liora Haydont

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))

위에서 언급했듯이 0이 없습니다. 데이터와 논리에 따라 등호를 추가하여 LT / GT 비교기 중 하나를 LE / GE로 변경할 수 있습니다.


내가 무언가를 잘못 읽지 않는 한, 더 큰 의사 코드 If Y<0 {A} Else {B}에서는 A와 B가 동일합니다. 오타가 있습니까?
Kamil Drakari

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

나는 ABS에 대해 몰랐다. 나는 제안하려고했다

= SQRT ((I18-R18) ^ 2)


2
제곱의 계산이 사소하지 않고 반올림 오류가 발생하기 쉽다는 점을 고려하면, 그것은 최적이 아닙니다.
David Foerster

0

이것은 나를 위해 일했습니다-> IF (AND (I18 <0, R18 <0), I18-R18, IF (I18 <0, ((R18-I18) *-1), IF (I18> = 0, I18-R18 )))

여기에는 모든 시나리오가 포함됩니다. 변수 A | 변수 B + ve | + ve + ve | -ve -ve | + ve-ve | -ve


(1) 두 개의 이진 ( + /  -) 변수 의 네 가지 가능한 조합의 표 는 사소한 것이며 답을 명확히하는 것은 아무 것도 보여주지 않습니다. 명확하지 않은 질문에 대한 답변을 게시하려는 경우 어떤 질문에 대한 답변인지 설명하는 것이 좋습니다. (2) 당신이하고있는 것이 무엇이든, 수식은 불필요하게 복잡해 보입니다. 그것이 무엇을하고 있는지 설명하면 도움이 될 것입니다. ………………………… 의견에 응답하지 마십시오.  명확하고 완전하게 답변을 편집 하십시오.
Scott

0

방금 x와 y의 차이가 아니라 양 또는 음의 델타 움직임이 필요한 상황 (컬러 랩 판독 측정)에 부딪 쳤습니다. 따라서 일반적으로 -5 빼기 -2 = -3이지만 델타가 실제로 양의 방향에 있음을 보여주고 싶을 때 -3은 내가 찾고있는 것이 아닙니다.

= IF (A1> B1, ABS (A1-B1) *-1, ABS (A1-B1))

두 번째 (최신) 판독 값이 더 작 으면 간단히 결과가 음의 움직임 (* 1)이고 축의 음의쪽으로 내려 갔다는 것을 알고 있습니다. 그렇지 않으면 두 번째 판독 값이 더 클 경우 차이가 양의 방향에 있다는 것을 알고 순수한 ABS 값이 작동합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.