source

Excel 어레이에 논리 OR을 적용하는 방법

gigabyte 2023. 4. 14. 21:47
반응형

Excel 어레이에 논리 OR을 적용하는 방법

2개의 어레이를 OR하여 Excel을 어레이로 만들려고 합니다.예를 들어, 2개의 어레이를A1:A3있다7,8,-3그리고.B1:B3있다4,-8,-8.

이것은 매우 간단할 것입니다만, 다음과 같습니다.

OR ( A1:A3 > 0 ; B1:B3 > 0 )

돌아온다TRUE기대했던 배열 대신(TRUE, TRUE, FALSE).

물론 이런 더러운 속임수도 쓸 수 있지

(((A1:A3 > 0)*1 + (B1:B3 > 0)*1) >= 1) *1

누가 그걸 유지하려 하겠어?

또 CSE(+)CtrlShiftEnter Formulas(http://www.mrexcel.com/articles/CSE-array-formulas-excel.php))에 검색어가 있을 것 같은데 정말 흑마법 같다.

내가 쉬운 걸 놓쳤나?

궁금하신 분들을 위해 제가 만들고자 하는 공식은 물론 조금 더 복잡합니다.(을 통해) 계산하려고 합니다.SUMPRODUCT) 모든 행의 위치(status == A OR status == B) AND Date = some cell제가 찾는 수술실은 제 수술실 중 하나일 뿐이에요SUMPRODUCT셀에는 정의되어 있지 않습니다(너무 간단합니다).

여기서 설명한 바와 같이 OR 또는 AND는 단일 결과만 반환하기 때문에 일반적으로 "array formula"에 사용할 수 없습니다(AND는 모든 조건이 TRUE인 경우에만 TRUE이고, OR은 TRUE인 경우 예상대로 TRUE이므로 예에서는 6개 값 중 하나 이상이 양수이면 TRUE가 됩니다).

OR 대신 +를 효과적으로 사용하여 제안과 유사한 방법을 사용할 수 있습니다. 하지만 처음 두 *1은 + 공소수이므로 이 정도면 충분합니다.

=((A1:A3 > 0) + (B1:B3 > 0) >0) *1

비록 당신이 이것저것일 수 있는 하나의 컬럼을 가지고 있다면, 그것은 확실히 상호 배타적이기 때문에, 아마도 그것은 단지 필요할 것이다.

=(A1:A3="A")+(A1:A3="B")

8년 후...

=BITOR(A1:A3>0,B1:B3>0)      for a 0 or 1 binary response

또는

=BITOR(A1:A3>0,B1:B3>0)=1    for a FALSE or TRUE boolean response

CTRL+SHIFT+ENTER를 기억하세요!

AND, OR 및 XOR은 어레이에 적합하지 않은 것 같지만 BITAND, BITOR 및 NOT는 정상입니다.배열을 사용하기 쉬운 XOR을 수행하려면 XOR을 다른 연산자로 분할해야 합니다.

=BITAND(BITOR(A1:A3,B1:B3),BITOR(NOT(A1:A3),NOT(B1:B3)))=1

깔끔하고 비교적 쉬운 방법은 nested IF 문을 사용하는 것입니다.

IF(A1:A3 > 0, TRUE, IF(B1:B3 > 0, TRUE, FALSE))

A의 숫자가 0보다 크면 TRUE를 반환하고 그렇지 않으면 B의 숫자가 0보다 크면 TRUE를 반환하고 그렇지 않으면 FALSE를 반환합니다.

기본적으로 자신의 OR 함수를 작성하는 것입니다.AND에서도 같은 작업을 수행할 수 있습니다.조건과 조건이 있는 한 다른 모든 것을 만들 수 있습니다.

테이블 내 특정 데이터의 중위수에 대해 배열 공식을 수행했습니다.예를 들어, 데이터 내에는 X, Y 및 Z 그룹이 있습니다.X와 Y의 두 가지 유형의 데이터에 대한 중위수를 얻고 싶었기 때문에 배열 내에서 OR 문을 사용할 수 없습니다.

원래 데이터 세트에 새 열을 만들었습니다.열 A=X 또는 A=Y, 디스플레이 "1", 디스플레이 "0"이 아닌 경우였습니다.

다음으로 모든 데이터 그룹이 1 또는 0으로 재분류되었기 때문에 어레이 내에 OR 문이 필요 없게 되었습니다.

그것은 나에게 효과가 있었고, 나는 이 새로운 IF 문을 망치지 않고 새로운 데이터를 복사하여 원래의 테이블에 쉽게 붙여넣을 수 있기 때문에 업데이트하기가 쉽다.

.IF어레이 결과에 따라 기능하며 시리즈 1과 0이 OR로 표시됩니다.예를 들어 다음과 같습니다.

IF(((A1:A3>0)+(B1:B3>0)),1,0)

이게 가장 쉬운 방법인 것 같아요.

저는 @barry houdini에 동의하지만 또한 지적하고 싶은 것은 열이 같든 다르든 상관없습니다. + 또는 *는 OR/AND에 대해 해결합니다.

OR 수신인:

=(A1:A3="A")+(B1:B3="B")

수신인 및 수신인:

=(A1:A3="A")*(A1:A3="B")

다음은 작동 중인 샘플 공식입니다.

={MAX(IF((('Stock Statement Dec2019'!$A$2:$A$676=Synthesis!$A$12)*('Stock Statement Dec2019'!$B$2:$B$676=Synthesis!A13));'Stock Statement Dec2019'!$Q$2:$Q$676))}

언급URL : https://stackoverflow.com/questions/10130598/how-to-apply-a-logical-or-to-an-array-in-excel

반응형