Excel

열 2개에서 원하는 값 찾아서 세로로 쌓기

별동산 2023. 12. 28. 08:47
반응형

데이터 뽑아오기.xlsx
0.01MB

 

 

 

열 하나로 레코드가 정리되면 좋은데, 위와 같이 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))

 

데이터 뽑아오기(완성).xlsx
0.01MB

반응형