본문 바로가기
엑셀

엑셀 여러 데이터 조회 고유값을 사용하여 만들기

by 컴퓨터쟁이 2023. 1. 17.
반응형

 

엑셀 고유코드 고유값 조회기능

 

 

인터넷 검색하면 엄청 많이 나오는 기능 중 하나가 조회 기능이다. 

 

그래도 실제로 자주 쓰는 조회기능을 올린다면 도움이 될 것으로 생각 된다. 그래서 한번 작성해본다. 

 

글 자체는 전달에 의미도 있지만 내가 나중에 기능을 사용할 때 찾아서 쓰기 위한 목적도 있으니 편하게 쭉 기록 하도록 하겠다. 

 

요즘 제조업 회사에 다니면서 bom이라는 것을 자주 사용하게 되었다. 

단순한 공정과정을 가진 회사도 있고 복잡하고 같은 bom 을 여러 제품에 사용하는 공정도 많았다. 

 

그래서 bom을 고유값, 고유코드를 주면서 bom 하위 품목을 조회하기 위해서 생각하면서 만들었다. 

 

다른 곳에서 쓴다면 고유코드를 부여하고 그 고유코드를 이용해서 상위와 하위 내용을 조회 할 수 있는 방법이라고 생각 하면 된다. 

 

상위에서 하위는 레벨로 정하는 경우가 많다. 하지만 우리 회사 특성상 같은 다른 레벨이지만 같은 bom을 쓰는 경우도 있었다. 

 

그러한 것을 해결하기 위해서는 결국은 레벨도 중요하지만, 그냥 모든 품목에 일정한 규칙을 가지는 고유한코드를 주면 된다. 

 

엑셀 수식 함수 사용 

IF 함수 - 내가 선택한 값이 만족할때는 , 이걸 보여주고, 만족안할때는 이걸 보여줘라) 

COUNTIF 함수 - 전체 데이터에서, 내가 선택한 값이 몇개 있는지 찾아라

VALUE 함수 - 글자도 숫자도 아닌것을 값으로 변형시켜라

ROW 함수 - 배열로 ROW(A1)이면 몇번째 칸인지를 숫자로 나타낸다. 값은 1이다.

IFERROR 함수 - 값이 있으면 그대로 나오고, 값이 없으면 내가 적은 값을 보여줘라

 


지금부터 만들어 보겠다. 

 

엑셀 조회 고유코드

설명.

-. 1번을 만들기 위해서는 11번이 필요하다. 

-. 11번을 만들기 위해서는 111번과 112번이 필요하다. 

-. 111번을 만들기 위해서는 1111번과 1112번이 필요하다. 

-. 1111번을 만들기 위해서는 11111번과 111112번이 필요하다. 

-. 112번을 만들기 위해서는 1121번이 필요하다. 

-. 1121번을 만들기 위해서는 11211번, 11212번, 11213번이 필요하다. 

 

쉽게 말해서 그냥 레벨 오를때 마다 뒤에 1이라는 숫자를 붙였다. 

이렇게 만들어 두고 나니 어떻게 바로 아래 하위 내용에 대해서 조회를 할것인지 궁금 할 것이다. 

 

우선 선행으로 해야할 일은 고유코드라는 열을 만들어 주어야 한다. 없어도 다른 방법을 써서 또 하면 된다. 

 

 

 

하지만 일단 만들자.!!

 

 

 

 다음 작업은 옆에 입력칸을 만든다. 

 

입력에 상위 번호를 넣으면 하위 번호가 다 나오도록 만들겠다. 

단!!!! 가장 위의 숫자가 9 를 넘으면 안된다. 

 

11111 이 검색 된다.

 

11112가 검색 된다.

 

 

 

엑셀은 상상력으로 만들어 가는것 같다. 

 

설명을 해보겠다. 

=IF(COUNTIF($F$5:$F$16,$J$4&ROW(A1))=0,"",$J$4&ROW(A1))

=IF(COUNTIF(어디에 찾을것인가, 찾는 값은 무엇인가 &(글자합치기)배열a1은 1) 이 0이면 아무것도 없게, 있으면 그거를 보이게 한다. 

말이 어렵다. 

 

풀이 하자면 결국 countif 라는 것이 같은 모양이 몇개나 있는지 찾는 함수다. 

 

그래서 입력값이 1이라면 1에다가1을 합해서 11이 되도록 만든 것이다. 

 

그리고 11을 countif로 찾아서 1개라도 있으면 그값을 출력하도록 만든 것이다. 

 

row는 말그대로 배열이고, a1은 1이고 a2는 2 a3는 3 이다. 

그래서 사용했다. 11111 다음 11112 더 있다면 11113, 11114 이런식으로 찾기 위해서다. 

 

단순하지만 상상력으로 풀어낸 결과이다. 

 

그리고 나서 값으로 변환 하여야 한다. vloopup을 사용하면 옆에 내용을 불러 올수 있을 것이다. 

그전에 값으로 변환 할 필요가 있다. 

 

 

=VALUE(IF(COUNTIF($F$5:$F$16,$J$4&ROW(A2))=0,"",$J$4&ROW(A2)))

 

value 함수를 사용하여 & 이거로 인한 글자를 합해주었다. 

 

 

 

그럼 vlookup 이 정상적으로 작동 할 것이다. 

 

아래에 value 라고 나오는 부분이 보기 싫다면 거기에 한번더 iferror 를 사용하기 바란다. 

 

 

 

말그대로 그냥 상상해서 이렇게 만들어 보았다. 실제로 사용하려고 만들기도 했다. 

 

궁금한 것이 있다면 아래 꿈 해몽을 클릭해서 물어보아도 좋다.

 

원래는 꿈해몽 풀이나 로또 번호를 공유하기 위해서 만든 것이긴 하지만, 바쁘지 않다면, 어렵지 않다면, 도움을 줄 수도 있을 수 있다고 생각 한다. 

 

 


 

 


 

반응형

댓글