이런 경우가 있습니다.

엑셀을 통해서 데이터베이스를 만들다 보면, 각 행마다 고유의 id를 부여해야 하는 경우가 있습니다.

단순히 1,2,3,4로 행마다 숫자를 넣어두면 행의 순서가 바뀌거나 중간에 삭제되거나 할 때마다 혼선이 생깁니다.

 

id 이름 날짜 별점
1 김철수 2021/04/06 5
2 박박사 2021/05/31 4
3 김이박 2022/09/04 3
4 초초초 2022/12/12 5

이렇게 되어있다가 3행을 삭제하게 되는 경우엔

 

id 이름 날짜 별점
1 김철수 2021/04/06 5
2 박박사 2021/05/31 4
4 초초초 2022/12/12 5

id가 1,2,4 가 되어 오류처럼 보이게 됩니다.

또한, 순서대로 숫자가 올라가는 형태이기 때문에 새로운 행을 추가해줄 때마다, 최종 id 값이 몇 번인지 확인하고 넣어줘야 합니다. 

위 예시에서는 3개밖에 안되기 때문에 다음 값으로 5를 넣어주면 되지만, 행이 천 개에서 만개를 넘어가게 되면 다음 행값을 계산하는 것은 굉장히 복잡한 일이 됩니다.

 

이런 대안들이 있습니다.

1. rand()

rand() 사용 예시

id 이름 날짜 별점
0.4131525679 김철수 2021/04/06 5
0.9862289703 박박사 2021/05/31 4
0.3600194268 김이박 2022/09/04 3
0.3096730023 초초초 2022/12/12 5

=rand() 함수를 써서 실수인 난수(소수점)를 생성할 수 있습니다. 

하지만, 중복이 제거되지 않습니다. 매우 작은 확률이지만 같은 숫자가 나올 수 있습니다.

그리고, 커뮤니케이션하기 매우 어렵습니다. 전달할 때

"id값이 0.8723891237곳 확인해주세요"는 어렵겠죠.

 

2. randbetween(시작 값, 끝 값)

randbetween() 사용 예시

id 이름 날짜 별점
3 김철수 2021/04/06 5
9 박박사 2021/05/31 4
3 김이박 2022/09/04 3
4 초초초 2022/12/12 5

=randbetween(시작 값, 끝 값)을 통해서 정수인 난수를 생성할 수 있습니다.

커뮤니케이션은 rand에 비해서 많이 쉽지만,

하지만, 역시 중복이 제거되지 않습니다. 숫자 크기를 키우면 확률이 줄어들지만 역시 같은 숫자가 나올 가능성이 있습니다.

 

 

그런데, 이런 기능이 없습니다.

그래서 각행마다 랜덤 한 문자나 숫자로 unique ID를 만들어 주는 기능이 필요한데,

실제적으로 엑셀, 구글 스프레드시트에서는 해당 기능을 제공하지 않습니다.

 

단, 함수를 조합하고 설정을 통해 동일한 형태를 구현할 수 있습니다.

 

대신 이렇게 하면 됩니다.

=IF(COUNTIF(해당셀의칼럼, 해당셀)=1, 해당셀, RANDBETWEEN(숫자시작값,숫자끝값))

해석 : 랜덤 ID를 넣고자 하는 셀이 포함된 행에 해당 셀과 같은 값이 있다면, randbetween 함수를 돌려라.

 

countif/randbetween 사용 예시

다만, 이렇게 처음 하면 오류가 나는데요.

오류발생

당황하지 않고, 먼저 파일 > 설정으로 들어갑니다. (엑셀도 동일)

설정으로갑니다.

 

설정에서 계산> 반복 계산을 "사용"으로 바꿔주시고, 하단의 설정 저장으로 나와줍니다.

(기본값은 사용 안 함으로 되어있을 겁니다.)

반복계산을 사용으로 설정

 

그럼 이렇게 E열에 모두 다른 값을 가지는 10000~99999 사이의 숫자를 갖게 된 것을 알 수 있습니다.

이렇게 하면, 위의 대안들의 모든 문제를 다 해결합니다.

 

1. 읽기 쉽습니다. ID값이 숫자 5자리로만 되어있으니 팀원에게 공유하기 편합니다. "id값 81345 봐주세요"

2. 중복 값을 가지지 않습니다. 자기자신의 셀과 동일한 값을 가진 셀이 해당 칼럼내에 있는지 확인하고, 있다면 랜덤값을 다시 생성하고 이를 반복하기때문에 해당셀이 중복값을 가질 가능성이 없습니다.

성공!

 


 

[노션 꿀팁] Notion 페이지 타이틀 제목 두줄(여러 줄) 만드는 방법 <노션트릭>

[노션 꿀팁/트릭] 노션 페이지 타이틀 2줄(여러 줄) 만드는 방법 과거 노션은 타이틀을 2줄 이상 작성할 수 있도록 허용하고 있었으나, 최근 언젠가부터 타이틀 의 줄 바꿈 줄 나눔을 지원하

slowslow.tistory.com

 

+ Recent posts