설비대장 CMMS 이전 준비: 엑셀에서 정리할 7가지
직접 해 본 결과
- 점검한 설비 합성 설비대장
- 300대
- 찾은 문제 심어 둔 문제 7종
- 69/69건
- 점검 시간 3,000대는 0.5초 이내
- 0.06초
CMMS(설비보전 관리 시스템)는 정비 작업의 일정을 세우고 관리·추적하는 전산 시스템입니다. 엑셀 설비대장을 CMMS로 옮기기 전에는 번호 중복, 표기 흔들림, 날짜·단위 형식, 상위설비(그 설비가 속한 더 큰 설비) 연결부터 정리해야 합니다. 합성 설비대장 300대에 흔한 문제 69건을 심고 점검 스크립트를 돌려 보니, 0.06초 만에 69건을 모두 찾았습니다.
이런 분께 / 준비물
엑셀로 설비대장을 관리하다 CMMS 도입을 앞두고 있는 보전·설비 담당자를 위한 글입니다.
- 지금 쓰는 설비대장 엑셀 파일(사본으로 작업합니다)
- 도입할 CMMS의 이관 양식(기존 데이터를 옮겨 넣도록 업체가 주는 양식). 있으면 먼저 받아 필수 항목을 맞춥니다.
- 점검 스크립트를 쓰려면: Windows에 Python 설치(1단계에서 설명)
- 스크립트 없이 눈으로 정리해도 됩니다. 아래 7가지를 체크리스트로 쓰면 됩니다.
정리할 7가지 한눈에 보기
번호·연결처럼 시스템의 뼈대가 되는 항목부터 고칩니다.
| 번호 | 항목 | 왜 문제인가 | 고치는 방법 |
|---|---|---|---|
| ① | 설비번호 중복 | 두 설비를 구분할 수 없음 | 한쪽에 새 번호 부여 |
| ② | 상위설비 연결 오류 | 설비 계층(라인 → 설비 → 부품)이 끊김 | 없는 번호를 바로잡기 |
| ③ | 필수값 누락 | 시스템 필수 항목이 비면 등록이 막힐 수 있음 | 설치일·위치 등 채우기 |
| ④ | 설비유형 표기 흔들림 | 같은 펌프가 펌프·PUMP·Pump로 나뉘어 통계가 틀어짐 | 표준 이름으로 통일 |
| ⑤ | 날짜 형식 섞임 | 문자로 저장된 날짜(2019.03.01 등)는 날짜로 계산되지 않음 | 날짜로 다시 입력 |
| ⑥ | 용량 단위 섞임 | kW·HP·숫자만 섞이면 비교가 안 됨 | 한 단위로 통일 |
| ⑦ | 상태가 비고에 숨음 | 폐기 설비가 가동 설비로 넘어감 | 상태 열을 따로 만들기 |
1단계 스크립트로 정리할 곳 먼저 찾기
고치기 전에 check_ledger.py로 7가지 문제가 어디 있는지 목록부터 뽑습니다.
- Python을 설치합니다. 공식 문서가 권장하는 ’Python install manager’를 python.org 또는 Microsoft Store에서 받습니다.
- 명령 프롬프트(글자로 명령을 입력하는 창)를 엽니다. 시작 메뉴에서
cmd를 검색하면 나옵니다. - pip(파이썬 부품을 설치하는 도구)으로 엑셀 파일을 다루는 부품 openpyxl을 설치합니다.
python -m pip install openpyxl
- check_ledger.py와 설비대장 사본을 한 폴더에 둡니다.
- 명령 프롬프트에서 그 폴더로 이동합니다. 파일 탐색기 주소창의 경로를 복사해
cd /d뒤에 붙여 넣고 Enter를 누릅니다./d를 붙이면 다른 드라이브여도 됩니다. 네트워크 폴더에 있는 파일은 내 PC로 복사한 뒤 실행합니다. - 설비대장 파일 이름을 넣어 실행합니다. 파일 이름에 띄어쓰기가 있으면 따옴표로 감쌉니다.
python check_ledger.py "설비대장 사본.xlsx"
같은 폴더에 정리필요목록.xlsx가 생깁니다. 행, 설비번호, 항목, 현재값, 제안이 한 줄씩 들어 있습니다. ’필수값 누락’은 현재값 칸에 빠진 열 이름이 들어갑니다.
- 회사 기준에 맞추려면 check_ledger.py를 메모장으로 엽니다(마우스 오른쪽 버튼 → 연결 프로그램 → 메모장. 더블클릭하면 실행될 수 있습니다).
- 위쪽에서 ‘열 이름 설정(COLUMNS)’, ‘비면 안 되는 열’, ‘설비유형 표준 이름’, ‘용량 표기 규칙’ 줄을 고칠 수 있습니다.
2단계 뼈대부터: 번호와 상위설비 (①②)
설비번호는 중복이 없어야 하고, 상위설비 칸의 번호는 대장에 실제로 있어야 합니다.
- 예를 들어 모터의 상위설비는 그 모터가 달린 컨베이어입니다.
- 중복 번호가 있으면 어느 쪽이 맞는지 현장에서 확인하고, 다른 쪽에 새 번호를 줍니다.
- 스크립트는 앞뒤 공백·대소문자만 다른 번호(P-001과 ’p-001 ’)도 중복으로 봅니다. 시스템에 옮기면서 같은 번호로 바뀔 수 있기 때문입니다.
- 상위설비 번호가 대장에 없다면 오타이거나, 상위 설비가 대장에서 빠진 경우입니다.
3단계 비면 안 되는 칸 채우기 (③)
설비번호·설비명·유형·위치·설치일·중요도 6개 칸은 비우지 않습니다.
- 이 6개는 이 글의 스크립트가 필수로 보는 칸입니다. 도입할 CMMS의 필수 항목에 맞춰 스크립트 위쪽 ‘비면 안 되는 열’ 줄을 고칩니다.
- 설치일을 모르면 ’추정’임을 비고에 남기고 연도만이라도 채웁니다.
4단계 표기와 형식 통일하기 (④~⑦)
설비유형·날짜·용량·상태를 한 가지 표기로 통일합니다.
- 설비유형: 표준 이름 목록을 정하고, 나머지 표기는 모두 그중 하나로 바꿉니다.
- 날짜: 문자로 저장된 날짜(2019.03.01, 19/03/01 등)는 정렬·기간 계산에 쓸 수 없습니다. 2019-03-01처럼 다시 입력해 엑셀이 날짜로 알아보게 합니다.
- 용량: 한 단위로 통일합니다. 단위를 머리글로 올리고(예: 용량(kW)) 칸에는 숫자만 적으면 섞이지 않습니다.
- 상태: 비고에 ’폐기’처럼 적어 둔 내용은 ‘상태’ 열로 옮깁니다.
다 고쳤으면 1단계 스크립트를 한 번 더 돌려 남은 곳이 없는지 확인합니다.
5단계 다시 흐트러지지 않게 템플릿 쓰기
정리한 뒤에는 입력 단계에서 막아야 다시 흐트러지지 않습니다.
정리 템플릿은 엑셀의 데이터 유효성 검사(칸에 넣을 수 있는 값을 제한하는 기능)로 이렇게 막습니다.
- 설비유형·상태·중요도는 드롭다운 목록에서만 고릅니다.
- 설치일 칸에는 날짜만, 용량 칸에는 숫자만 들어갑니다.
- 드롭다운 목록은 ‘목록’ 시트에서 고칩니다(설비유형 5칸, 상태 4칸).
- 칸을 늘리면 데이터 유효성 검사의 원본 범위와 스크립트의 ‘설비유형 표준 이름’ 줄도 함께 고칩니다.
- 이 템플릿으로 만든 파일에도 1단계 스크립트를 그대로 쓸 수 있습니다(상태 열이 있으면 비고 검사는 건너뜀).
직접 만들 때는 데이터 탭 → 데이터 유효성 검사 → 제한 대상 ‘목록’ → 원본에 목록 범위를 지정합니다(Microsoft 안내 기준).
직접 해 본 결과
가상 공장(라인 4개)의 설비 300대로 합성 설비대장을 만들었습니다. 회사 자료는 쓰지 않았고, 제조사 이름도 가상입니다.
| 심어 둔 문제 | 건수 | 스크립트가 찾은 건수 |
|---|---|---|
| 설비유형 표기 흔들림 | 18 | 18 |
| 설치일 누락 | 15 | 15 |
| 날짜 형식 섞임 | 12 | 12 |
| 용량 단위 섞임 | 9 | 9 |
| 상태가 비고에 있음 | 6 | 6 |
| 상위설비 없음 | 5 | 5 |
| 설비번호 중복 | 4 | 4 |
- 심어 둔 69건을 모두 찾았습니다.
- 번호 중복은 두 행이 같은 번호를 쓰므로 양쪽 행을 모두 보고합니다. 그래서 총 보고 건수는 73건입니다.
- 템플릿은 엑셀 2010에서 드롭다운·날짜 검사가 걸린 것을 확인했고, 예시 3행에 심은 문제 4가지를 스크립트가 모두 찾았습니다.
- 까다로운 입력 17가지로도 돌려, 멈추지 않고 이유를 알려 주도록 고쳤습니다.
주의할 점과 한계
- 합성 데이터에는 일부러 심은 문제만 있습니다. 실제 설비대장에는 스크립트 규칙 밖의 문제(설비명 오타, 위치 체계 자체의 차이 등)가 더 있을 수 있습니다.
- 스크립트는 첫 번째 시트, 첫 행 머리글을 기준으로 읽습니다.
- 병합 셀은 맨 위 칸에만 값이 있어 나머지는 ’필수값 누락’으로 나옵니다. 병합을 풀고 값을 채운 뒤 검사합니다.
- 템플릿에 잘못된 값을 넣었을 때 막히는 화면은 직접 확인하지 않았습니다.
자주 묻는 질문
설비가 수천 대인데 스크립트가 버틸까요?
합성 설비대장 3,000대도 0.5초 안에 끝났습니다.
우리 회사 설비대장은 열 이름이 다릅니다.
스크립트 위쪽 '열 이름 설정'에 회사 머리글을 추가합니다(예: '설비번호': ['설비번호', '설비코드']). 설비번호부터 비고까지 9개 머리글이 모두 있어야 하고(빈 열이어도 됨), 머리글은 1행에 있어야 합니다. 제목 행이 있으면 사본에서 지웁니다.
정리는 엑셀에서 끝내고 옮겨야 하나요, 옮긴 뒤 고쳐도 되나요?
옮기기 전에 정리하는 편이 낫습니다. 번호와 상위설비는 다른 데이터가 연결되는 기준이라, 옮긴 뒤에 고치면 연결된 기록까지 함께 확인해야 할 수 있습니다.
근거와 출처
직접 해 본 근거
- 직접 캡처 점검 스크립트 실행 화면, 정리필요목록, 정리 템플릿을 엑셀 2010과 명령 프롬프트에서 직접 캡처했습니다. 시연 영상은 이 캡처로 다시 구성했습니다.
- 직접 측정 합성 설비대장(설비 300대)에 문제 69건을 심고 점검 스크립트로 찾았습니다. 69건 모두 찾았고, 300대 검사에 0.06초, 3,000대로 늘려도 0.5초 이내였습니다.
- 결과 파일 정리 템플릿(드롭다운·날짜 검사 포함)과 점검 스크립트를 내려받을 수 있습니다. 템플릿은 엑셀 2010에서 드롭다운·날짜 검사 규칙이 적용된 것을 확인했고, 템플릿에 입력한 예시에 스크립트를 돌려 심어 둔 문제를 모두 찾았습니다.