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
'source' 카테고리의 다른 글
Objective-C에서 딜러를 작성하려면 어떻게 해야 합니까? (0) | 2023.04.19 |
---|---|
월별 및 연도별 SQL 그룹화 (0) | 2023.04.19 |
Windows XP 이후의 Windows:창을 표시하지 않고 백그라운드에서 배치 파일을 실행하려면 어떻게 해야 합니까? (0) | 2023.04.14 |
Excel에서 셀의 첫 번째 문자를 다른 셀과 결합하려면 어떻게 해야 합니까? (0) | 2023.04.14 |
큰 xlsx 파일에서 판다 DataFrame을 로드하기 위한 진행 표시줄을 만들려면 어떻게 해야 합니까? (0) | 2023.04.14 |