답변1
답변2
빠른 답변:
배열 수식을 사용하여 이 작업을 수행할 수 있습니다. 셀에 C2
다음을 작성합니다.
=IF(B2="apple",SUM(ISNUMBER(A:A)*(A:A=A2)*(B:B<>B2))>0,"")
그런 다음 Ctrl+Shift+Enter를 사용하여 배열 수식으로 등록합니다. 나중에 나머지 열에 복사하세요.
설명:
함수 IF
는 일반적인 정렬입니다. B 열에 "apple"이 있으면 작업을 수행하고, 그렇지 않으면 빈 문자열을 작성합니다. 흥미로운 부분은 두 번째 주장입니다. 이는 "사과" 사례에서 결과를 제공합니다.
이제 먼저 Excel에서 더 간단한 수식인 SUM(A:A=A2)
. 내부에서 SUM
Excel은 "범위 = 값" 형식의 동일성을 확인합니다. 양쪽이 단순한 값이면 부울로 평가되지만 여기서는 Ctrl+Shift+Enter를 사용하여 배열 수식을 켰기 때문에 Excel에서왼쪽의 각 요소에 개별적으로 작업을 적용합니다., 임시 배열로 메모리에 저장하면 SUM
행복하게 받아들입니다. 결과는 다음 A
과 같은 열의 셀 수입니다 A2
.
글쎄, 거의. 값을 1로 SUM
처리 하고 값을 0으로 처리하는 경우에 해당됩니다 . 그렇지 않은 경우 부울을 숫자로 변환해야 합니다. 한 가지 방법은 다음과 같은 이중 부정입니다 . 하지만 실제 수식의 연산자 가 이 문제도 처리합니다.TRUE
FALSE
SUM(--(A:A=A2))
*
실제 합계로 돌아가서 추가 항이 있습니다 ISNUMBER(A:A)
. 원칙은 비슷합니다. A
일반적으로 범위로 무엇을 해야할지 모르기 때문에 열에서 요소별로 다시 작동합니다. 그런 다음 *
연산자는 부울을 포함하는 두 개의 임시 범위를 요소별로 "곱하고"(기본적으로 AND
여기에 연산을 적용) 새로운 부울 범위를 제공합니다. (이것은 빈 셀이 0으로 간주되지 않도록 하기 위한 것이며 NOT(ISBLANK(A:A))
마찬가지로 작동합니다.)
B
마지막으로 열의 각 개별 값이 다음 과 같은지 여부를 설명하는 추가 부울 범위에 대해 동일한 작업을 수행합니다.~ 아니다동일 B2
. 결국 SUM
결과 범위에 따라 작동합니다.
결론적으로 첫 번째 열에 숫자가 있는 행의 수를 세었습니다. 여기서 현재 행은 열에서는 일치 A
하지만 열에서는 일치하지 않습니다 B
. 귀하의 상태는 이들의 수가 긍정적이라고 말합니다.
비고 1:*
함수 대신 연산자를 사용하는 AND
이유는 후자가 기본적으로 범위를 인수로 허용하기 때문에 "배열 모드"를 활성화하고 요소별 작업을 수행하는 대신 임시 범위만 소모하기 때문입니다.
비고 2:
수식을 다른 열에 복사하기 위해 자유롭게 열을 절대값으로 만들 수 있고, 범위에 (절대) 행 번호를 추가 A:A
하고 B:B
동일한 열에 있을 가능성이 있는 다른 항목(및 성능)을 무시하거나 두 개의 이름이 지정된 범위를 만들 수도 있습니다. IDs
및 같은 열을 선택한 Fruits
다음 범위 대신 수식에 이러한 이름을 입력합니다.