Excel

여러가지 조건을 만족하는 개수 세기(3) - ByRow

별동산 2024. 8. 9. 08:56
반응형

여러가지 조건을 만족하는 개수 세기(완성)2.xlsx
0.01MB

 
 
5. 해법 4

ByRow 함수를 이용해 행 별로 곱해서 0보다 큰 경우의 수를 세서 값을 구할 수 있습니다.
ByRow 함수는 Microsoft 함수에서만 사용 가능한 함수로서
구문은 
=BYROW(array, lambda(row))
입니다.
배열을 입력한 다음 lambda의 row 인수로 전달한 다음 수식을 통해 값을 구하는 것입니다.
 


가. 한 가지 조건을 만족하는 경우

=BYROW(B2:B33,LAMBDA(row,IF(row>0,1,0)))
라고  입력하면 행 별로 셀 값이 반환됩니다.

 
 
수식의 의미는
B2셀에서 B33셀까지 범위를 입력한 다음
Lambda함수의 첫 번째 인수로 대입하고,
수식(calculation)으로IF(row>0,1,0)를 입력한 것입니다.
따라서 행의 값이 배열로 반환됩니다. 

 
이제 필요한 것이 sum입니다.
맨 앞에 sum을 추가해서
=SUM(BYROW(B2:B33,LAMBDA(row,IF(row>0,1,0))))
라고 하면 원하는 값 21이 구해집니다.

 
나. 두 가지 조건을 만족하는 경우

b2:b33라는 셀 주소를 앞이 셀 주소 b2는 고정하기 위해 F4키를 눌러 $를 붙이고, b33은 변할 수 있도록 $를 붙이지 않아야 하며, Product(곱하기) 함수를 이용해서 행 별로 B열과 C2열을 곱한 값이 0보다 큰 지 판단하도록 해야 합니다.

 
이러한 ByRow 함수의 장점은 1편과 2편은 매번 범위를 *로 연결해야 했는데,
여기서는 범위를 한 번만 지정하면, 그리고, 단순히 끌기만 하면
원하는 값을 간단하게 구할 수 있다는 것입니다.
 
i7셀의 채우기 핸들을 H7셀로 끌어서 수식을 복사하면 원하는 값 21이 여전히 구해집니다.

 
다시 i7셀의 채우기 핸들을 K7셀까지 끌면 원하는 값이 모두 구해집니다.

 
역시 새로운 함수가 등장하는 이유가 있습니다.
 

여러가지 조건을 만족하는 개수 세기(완성)3.xlsx
0.01MB

반응형