1. 문제
오른쪽 기준 표의 제품별, 잔량별 생산일수보다 왼쪽의 생산일수가 크다면 확인란에 "불량"이라고 표시하고, 아니면 공란으로 내버려 두려고 합니다.
2. 해법
여러 가지 함수로 해결할 수 있습니다.
가. Index + Match 함수
(1) 잔량을 0과 "있음"으로 구분하기
오른쪽 기준표를 보면 제품이 같더라도 잔량이 0인지 아닌지에 따라 생산일수가 다르다는 것을 알 수 있습니다.
그런데 왼쪽 표를 보면 잔량이 숫자로 표시되어 있으므로
두 개를 Match 하려면 왼쪽 표의 잔량 수치를 0과 "있음"으로 바꿔줘야 합니다.
따라서, if 함수를 이용해 0보다 크다면 "있음" , 0이면 0이라고 표시하면 되므로
수식은 =if(d3>0,"있음",0)이 됩니다.
(2) 왼쪽 제품과 잔량에 해당하는 생산일수를 오른쪽 표에서 구하기
Match 함수를 사용하는데 찾을 값은 제품과 잔량이고, 찾을 범위는 오른쪽 제품과 잔량 전체입니다.
그리고, 정확히 일치해야 하는 것을 찾아야 하므로 세 번째 인수는 0이 됩니다.
이를 수식으로 표현하면
=match(a3&if(d3>0,"있음",0),$J$3:$J$8&$L$3:$L$8,0)가 됩니다.
찾을 값과 찾을 범위를 모두 열을 &로 연결하고,
찾을 범위는 변하면 안 되므로 절대참조 형식으로 바꿨습니다.
수식의 결과는 아래와 같이 1부터 6까지 표시되는데, 값이 일치하는 위치이고, 오른쪽과 왼쪽의 순서가 같다는 것을 알 수 있습니다.
(3) 오른쪽 표의 생산일수 찾기
index 함수는 구문이 INDEX(array, row_num, [column_num])이므로
array를 오른쪽의 생산일수로 지정하고,
row_num을 위에서 Match함수로 구한 숫자를 대입하면 됩니다.
따라서, 수식은
=INDEX($K$3:$K$8,MATCH(A3&IF(D3>0,"있음",0),$J$3:$J$8&$L$3:$L$8,0))이 됩니다.
그러면 아래와 같이 생산일수가 구해집니다.
(4) C열의 생산일수가 위에서 구한 생산일수보다 크다면 "불량"이라고 표시하기
수식은 아래와 같습니다.
=if(c3>INDEX($K$3:$K$8,MATCH(A3&IF(D3>0,"있음",0),$J$3:$J$8&$L$3:$L$8,0)),"불량","")
결과는 아래와 같이 5행부터 7행까지만 불량입니다.
나. Sumproduct 함수
'가'번 수식에서 INDEX($K$3:$K$8,MATCH(A3&IF(D3>0,"있음",0),$J$3:$J$8&$L$3:$L$8,0))을
SumProduct 함수를 이용해 구할 수 있습니다.
SumProduct 함수의 인수는 (조건1)*(조건2)*값 범위가 됩니다.
따라서, 수식은
=sumproduct(( $J$3:$J$8=a3)*( $L$3:$L$8= IF(D3>0,"있음",0))* $K$3:$K$8)
이 됩니다.
또는 조건 1과 조건 2를 &로 연결해서
=SUMPRODUCT(($J$3:$J$8&$L$3:$L$8=A3&IF(D3>0,"있음",0))*$K$3:$K$8)
라고 해도 됩니다.
C3와 비교하는 부분을 추가하면
=IF(C3>SUMPRODUCT(($J$3:$J$8&$L$3:$L$8=A3&IF(D3>0,"있음",0))*$K$3:$K$8),"불량","")
이 됩니다.
다. Filter 함수
Filter 함수의 구문은
=FILTER(array,include,[if_empty])
로서 배열, 포함(조건),[필터결과값이 비어 있을 때 값]으로서
배열은 머리글을 제외하고 데이터 영역만 지정합니다.
그러면 수식은
=FILTER($K$3:$K$8, ($J$3:$J$8&$L$3:$L$8=A3&IF(D3>0,"있음",0)))
이 되는데, 두 번째 인수가 위 Match 또는 SumProduct함수에 적용한 조건입니다.
C3와 비교하는 부분을 추가하면
=if(c3>FILTER($K$3:$K$8,($J$3:$J$8&$L$3:$L$8=A3&IF(D3>0,"있음",0))),"불량","")
이 됩니다.
'Excel' 카테고리의 다른 글
단어 포함 합계 구하기 (0) | 2024.03.18 |
---|---|
세로 데이터를 가로 데이터로 변경하기 (2) | 2024.03.15 |
중복된 값은 제외하고 문자열 연결하기 (0) | 2024.03.12 |
근무표 유형 변경하기(365 버전용) (0) | 2024.03.11 |
근무표 유형 변경하기(365 이전 버전용) (4) | 2024.03.08 |