Excel 머시닝 처리

11152 단어 Python

1. 시작 & 액션 환경


후방 사무실에서 일상적으로 발생하는 업무 중에는 Excel의 가공 작업이 있다.
이 많은 일들이 같은 일을 반복하기 때문에 가능한 한 이 일들을 자동화하여 업무 효율과 생산 효율을 높이는 것을 목표로 한다.
작업 환경
OS : Windows10
Python : 3.8.3
jupyter notebook 6.0.1

2. Excel 함수 찾기 및 축소


일상적으로 사용되는 Excel 함수를 조사합니다.
동시에 반복되는 정형 작업에 사용되는 함수를 축소한다.
• 공유 드라이브에 보관된 Excel 열기
· 삭제 행렬
• 별명으로 책을 보관
· 불필요한 데이터 제거
• 여러 워크시트 통합
・merge
• 로컬 드라이브에 저장된 Excel 열기

3. Excel2 OpenOrders for 엔지니어링



4. 코드 처리 절차 개요


1. 핵심 시스템에서 Excel로 주문 데이터 및 인벤토리 정보 다운로드
2. 파이톤을 사용하여 공유 드라이브에 저장된 excel 데이터를pandas로 읽기
3. 본 작업에 필요하지 않은 약 200열을 삭제한다
공열에 항목 명칭 추가(관리표 납품 예정일, 날짜 수정, 출하 처리)
날짜순(Sort)
#GoLive Openorder list
import pandas as pd
import time

t1 = time.time() # 処理前の時刻

#データ読込
df = pd.read_excel('C:/Users/qz781/Desktop/PythonProject/Python_CJL/02.Backlog Review/BacklogReport_vr3.xlsm', sheet_name='MGHEAD',  index_col=1)

#列の削除 →カラムをリストで渡してまとめて列を削除
columns = ['x1','x2','x3','x4','x5']
df1 = df.drop(columns, axis=1)

#新規列の追加
df1["管理表納入予定日"] = ""
df1["日付修正"] = ""
df1["出荷処理"] = ""

#sort
df1 = df1.sort_values(by="MGTRDT", ascending = True)

df1.to_excel('C:/Users/xxx/Desktop/PythonProject/OpenOrders.xlsx', sheet_name='test')

t2 = time.time()# 処理後の時刻
elapsed_time = t2-t1
print(f"経過時間:{elapsed_time}") # 経過時間を表示

CustoCode 추출
4. 고객 소유자로부터 고객 코드, 그와 관련된 고객 명칭과 모든 고객의 출하 처리 항목을 읽는다
import pandas as pd

#1.データの読み込み
df = pd.read_excel('C:/Users/xxx/Desktop/PythonProject/BacklogReport_vr3.xlsm', sheet_name='OOLINE ( OIS100)',  index_col=0)

# 列 "A", "B" の 2 列を抽出
df2 = df.loc[:,['OBORNO','OBCUNO']]

df2.to_excel('C:/Users/xxx/Desktop/PythonProject/OpenOrders_OIS100.xlsx', sheet_name='test')


Order# 키를 눌러 CustCode를 Merge로 설정
5.pandas가 읽은 주문 접수 데이터와 고객주를 결합하여 고객 코드에서 이해하기 어려운 고객명과 고객마다 다른 출하 처리 항목을 보충하여 다른 구성원들도 바로 이해할 수 있도록 한다.
6. 검사 항목별로 필터링
7. 로컬 드라이브에 저장합니다.매일 MTG에서 팀과 공유하여 배송 진행률과 업무 지시를 확인합니다.
# merge1
import pandas as pd

#データ読込
df1 = pd.read_excel('C:/Users/xxx/Desktop/PythonProject/OpenOrders_MGHEAD.xlsx', sheet_name='test',  index_col=None)
df2 = pd.read_excel('C:/Users/qz781/Desktop/PythonProject/Python_CJL/02.Backlog Review/OpenOrders_OIS100.xlsx', sheet_name='test2',  index_col=None)

#データ型の確認&変更

df2["OBORNO"] = df2["OBORNO"].astype(str)
#df1.dtypes #MGRORN=object
df2.dtypes #OBORNO=int64 →objectに変更

df3 = pd.merge(df1, df2, left_on= "MGRORN", right_on="OBORNO", how="outer")

#filtering
df3 = df3.loc[df3["MGFACI"] == "EJ1"]
df3 = df3.loc[df3["MGTRSL"] != 99]
df3 = df3.loc[df3["MGTRSL"] != 44]

df3.to_excel('C:/Users/xxx/Desktop/PythonProject/OpenOrders_merge1.xlsx', sheet_name='test')

5. for Excel2 OpenOrders 완료



여기에도 사용된 자료는 실제 업무에 사용된 자료를 가상 데이터로 바꿨다.또 위조로 바꾸는 시간을 단축하기 위해 데이터량도 극단적으로 압축됐다.

6.끝


또 매일 같은 일을 해야 하기 때문에 수공 작업은 힘들지만, 이처럼 조금씩이라도 자동화하면서 다른 작업을 할 수 있어 효율성도 높일 수 있다.
이번에 제작된 코드는 실제 업무에 직접 적용된다.
지금까지 수공으로 진행됐습니다.눈에 필요한 열을 추출해 200열을 삭제하고, Vlookup을 이용해 고객 이름을 잡아당기는 작업은 하루 30분 정도 걸린다.
파이썬을 사용하면 20분 정도 단축할 수 있고, 파이썬 자동 처리 과정에서 다른 작업을 할 수 있다
실제 현장에서는 납기 관리표가 여러 사람이 공유해 업데이트되기 때문에 사업의 추가 등을 고려할 수 있는 형태가 수시로 바뀐다.
따라서 나중에 재평가할 때 바로 내용을 알 수 있을 뿐만 아니라 수정하기 쉽도록 간단한 코드에 주의하시기 바랍니다.
앞으로도 열심히 공부해서 더 효과적인 글쓰기와 사용법을 익히고 싶습니다.

좋은 웹페이지 즐겨찾기