열 하나로 레코드가 정리되면 좋은데, 위와 같이 A열과 C열에 구분자가 있고, 값이 B열과 D열에 있을 때
원하는 구분값에 대한 값을 찾아서 G열에 표시하고자 합니다.
1. 문제점
① A에 해당하는 값을 찾을 수는 있는데, 중간에 공백이 생김
② C열과 D열을 A열 아래에 붙인 다음 값을 뽑아낼 수는 있는데, C열이 아래로 내려가서 원하는 결과와 순서가 달라짐
2. 해결 방안 1
① A값이 있는 경우 오른쪽 값 가져오기
=IF(A2="A",B2,IF(C2="A",D2,""))
② 왼쪽에 정렬을 위한 일련번호 기록하기
=IF(LEN(G2),MAX($F$1:F1)+1,"")
길이가 0보다 큰 경우 일련번호 최댓값에 1을 더한 값을 채웁니다.
③ 값으로 붙여 넣기
정렬하면 다시 G열의 값이 바뀌므로 F열과 G열을 선택하고 복사한 후 값으로 붙여 넣기를 합니다.
④ F열 기준 정렬하기
그러면 아래와 같이 원하는 값이 나옵니다.
3. 해결 방안 2 - 365 등 상위 버전
가. 위 2번까지 하고 Sort, ChooseCols 함수 사용
Sort함수를 이용해서 순번으로 정렬하고,
ChooseCols를 함수를 이용해 두 번째 열만 가져올 수 있습니다.
=CHOOSECOLS(SORT(F2:G9),2)
나. Filter와 VStack 함수 사용
이건 정렬 순서가 중요하지 않다고 할 때 사용할 수 있는 것입니다.
비교할 값이 A열과 C열에 있고, 가져올 값은 B열과 D열에 있으므로
Filter 함수를 두 번 사용하고, VStack으로 세로로 쌓으면 됩니다.
이것의 단점은 왼쪽부터 오른쪽으로 작업하기 때문에 원하는 결과와 순서가 다르다는 것입니다.
=VSTACK(FILTER(B2:B9,A2:A9=$G$1),FILTER(D2:D9,C2:C9=$G$1))
'Excel' 카테고리의 다른 글
진행 상태 표시 - 완료, 지연, 진행필요, 미완료(1) (0) | 2024.01.06 |
---|---|
동일 열에서 날짜가 다른지 비교하기 (0) | 2024.01.03 |
여러 시트에서 원하는 값 구해서 합하기(2) (2) | 2023.12.27 |
여러 시트에서 원하는 값 구해서 합하기(1) (4) | 2023.12.26 |
조건부 서식 - 셀 주소 기준 색칠하기 (0) | 2023.12.13 |