이런 경우가 있습니다.
엑셀을 통해서 데이터베이스를 만들다 보면, 각 행마다 고유의 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()
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(시작 값, 끝 값)
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 함수를 돌려라.
다만, 이렇게 처음 하면 오류가 나는데요.
당황하지 않고, 먼저 파일 > 설정으로 들어갑니다. (엑셀도 동일)
설정에서 계산> 반복 계산을 "사용"으로 바꿔주시고, 하단의 설정 저장으로 나와줍니다.
(기본값은 사용 안 함으로 되어있을 겁니다.)
그럼 이렇게 E열에 모두 다른 값을 가지는 10000~99999 사이의 숫자를 갖게 된 것을 알 수 있습니다.
이렇게 하면, 위의 대안들의 모든 문제를 다 해결합니다.
1. 읽기 쉽습니다. ID값이 숫자 5자리로만 되어있으니 팀원에게 공유하기 편합니다. "id값 81345 봐주세요"
2. 중복 값을 가지지 않습니다. 자기자신의 셀과 동일한 값을 가진 셀이 해당 칼럼내에 있는지 확인하고, 있다면 랜덤값을 다시 생성하고 이를 반복하기때문에 해당셀이 중복값을 가질 가능성이 없습니다.
'📝 work > 경험과 기억들' 카테고리의 다른 글
OPIC 오픽 결과 미리 확인하는 방법 (2023.10 기준) (0) | 2023.10.11 |
---|---|
[강의 후기] (리얼 리뷰) 리메인 - UXUI 디자인 패키지 (비추천, 추천하는 대상과 장점 단점) (0) | 2023.01.23 |
인터넷 확정일자 토요일/일요일 주말에 신청하면 언제 나오는가? (0) | 2021.07.30 |
경기도 청년 면접수당 "서울 이사 가기 전에 신청 가능?" (전입신고, 기준일) (0) | 2021.07.30 |
[후기] 2021 카카오 여름 인턴십 비개발직군 [1차] 자기소개서 (서비스 & 비즈, 일정, 지원서 양식, 프로젝트 경험, 포트폴리오) (1) | 2021.07.25 |