【Python × Excel】 Openpyxl에서 Vlookup을 시도합니다.
소개
파이썬에서 Excel을 조작하고 있고 Vlookup하고 싶을 때 없습니까? Vlookup 편리하네요.
그래서 Openpyxl을 사용하여 책을 통해 Vlookup하는 방법을 설명합니다.
이번에는 아래의 평가 데이터와 급여 데이터를 샘플로 사용합니다.
평가 데이터
급여 데이터
준비
필요한 라이브러리를 설치합시다. 이번에 사용하는 것은 Openpyxl입니다.
import openpyxl as px
필요한 파일 로드
여기에서 평가 데이터와 급여 데이터의 2 개의 엑셀을 읽습니다.
wb = px.load_workbook("C:\\Users\\ユーザー名\\Documents\\Qiita用サンプル\\評価データ.xlsx")
ws = wb["評価"]
wb2 = px.load_workbook("C:\\Users\\ユーザー名\\Documents\\Qiita用サンプル\\給与データ.xlsx")
ws2 = wb2["給与"]
Vlookup
드디어 Vlookup을 해갑니다.
#Get last row
lastrow = ws.max_row
lastrow2 = ws2.max_row
#get values from IMaster Sheet
for i in range(2, lastrow + 1):
name_hyoka = ws['B' + str(i)].value
for j in range(2, lastrow2 + 1):
name_salary = ws2['A' + str(j)].value
# get values by vlook up
if name_hyoka == name_salary:
salary = ws2['B' + str(j)].value
ws.cell(row = i, column = 5, value = salary)
break
#Save
def save():
wb.save(filename = "C:\\Users\\ユーザー名\\Documents\\Qiita用サンプル\\評価データ_給与.xlsx")
save()
위의 코드는 평가 데이터의 직원 이름을 검색 값으로 급여 데이터의 직원 이름 열에서 검색합니다. 그리고 직원 이름이 일치하면 급여 데이터의 급여를 평가 데이터의 E 열에 쓰도록합니다.
포인트는
① 2개의 시트 중첩으로 하는 형태로 각각을 For 루프로 돌린다.
②if문으로 문자열 일치의 판정을 한다.
③ 일치하는 경우에만 값을 셀에 씁니다.
④break 잊지 않는다*여기 소중
⑤ 마지막으로 wb 저장
데이터의 읽어들이기는 컬럼의 알파벳 지정으로 할 수 있습니다만, 기입시에는 그것이 잘 안 되었기 때문에 숫자로 컬럼을 지정하고 있습니다.
덧붙여서 break를 넣는 것은 문자열 일치를 발견한 후, 다시 바깥쪽 루프로 돌아가서 다음 검색값을 검색하기 때문입니다.
코드 전체로서는 이런 느낌입니다.
import openpyxl as px
wb = px.load_workbook("C:\\Users\\ユーザー名\\Documents\\Qiita用サンプル\\評価データ.xlsx")
ws = wb["評価"]
wb2 = px.load_workbook("C:\\Users\\ユーザー名\\Documents\\Qiita用サンプル\\給与データ.xlsx")
ws2 = wb2["給与"]
#Get last row
lastrow = ws.max_row
lastrow2 = ws2.max_row
#get values from IMaster Sheet
for i in range(2, lastrow + 1):
name_hyoka = ws['B' + str(i)].value
for j in range(2, lastrow2 + 1):
name_salary = ws2['A' + str(j)].value
# get values by vlook up
if name_hyoka == name_salary:
salary = ws2['B' + str(j)].value
ws.cell(row = i, column = 5, value = salary)
break
#Save
def save():
wb.save(filename = "C:\\Users\\ユーザー名\\Documents\\Qiita用サンプル\\評価データ_給与.xlsx")
save()
동작의 결과는 이쪽입니다.
E열에 급여가 들어있네요.
참고로 한 사이트
h tps : // / ぁ stc ぁ しんふぉ. 코 m / 엔 try / py 쵸 _ 에 x 세 l_v
이 사이트의 해설을 참고로 실천했습니다.
Reference
이 문제에 관하여(【Python × Excel】 Openpyxl에서 Vlookup을 시도합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/djyokochan/items/ebfe4a499004d04b7939
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
필요한 라이브러리를 설치합시다. 이번에 사용하는 것은 Openpyxl입니다.
import openpyxl as px
필요한 파일 로드
여기에서 평가 데이터와 급여 데이터의 2 개의 엑셀을 읽습니다.
wb = px.load_workbook("C:\\Users\\ユーザー名\\Documents\\Qiita用サンプル\\評価データ.xlsx")
ws = wb["評価"]
wb2 = px.load_workbook("C:\\Users\\ユーザー名\\Documents\\Qiita用サンプル\\給与データ.xlsx")
ws2 = wb2["給与"]
Vlookup
드디어 Vlookup을 해갑니다.
#Get last row
lastrow = ws.max_row
lastrow2 = ws2.max_row
#get values from IMaster Sheet
for i in range(2, lastrow + 1):
name_hyoka = ws['B' + str(i)].value
for j in range(2, lastrow2 + 1):
name_salary = ws2['A' + str(j)].value
# get values by vlook up
if name_hyoka == name_salary:
salary = ws2['B' + str(j)].value
ws.cell(row = i, column = 5, value = salary)
break
#Save
def save():
wb.save(filename = "C:\\Users\\ユーザー名\\Documents\\Qiita用サンプル\\評価データ_給与.xlsx")
save()
위의 코드는 평가 데이터의 직원 이름을 검색 값으로 급여 데이터의 직원 이름 열에서 검색합니다. 그리고 직원 이름이 일치하면 급여 데이터의 급여를 평가 데이터의 E 열에 쓰도록합니다.
포인트는
① 2개의 시트 중첩으로 하는 형태로 각각을 For 루프로 돌린다.
②if문으로 문자열 일치의 판정을 한다.
③ 일치하는 경우에만 값을 셀에 씁니다.
④break 잊지 않는다*여기 소중
⑤ 마지막으로 wb 저장
데이터의 읽어들이기는 컬럼의 알파벳 지정으로 할 수 있습니다만, 기입시에는 그것이 잘 안 되었기 때문에 숫자로 컬럼을 지정하고 있습니다.
덧붙여서 break를 넣는 것은 문자열 일치를 발견한 후, 다시 바깥쪽 루프로 돌아가서 다음 검색값을 검색하기 때문입니다.
코드 전체로서는 이런 느낌입니다.
import openpyxl as px
wb = px.load_workbook("C:\\Users\\ユーザー名\\Documents\\Qiita用サンプル\\評価データ.xlsx")
ws = wb["評価"]
wb2 = px.load_workbook("C:\\Users\\ユーザー名\\Documents\\Qiita用サンプル\\給与データ.xlsx")
ws2 = wb2["給与"]
#Get last row
lastrow = ws.max_row
lastrow2 = ws2.max_row
#get values from IMaster Sheet
for i in range(2, lastrow + 1):
name_hyoka = ws['B' + str(i)].value
for j in range(2, lastrow2 + 1):
name_salary = ws2['A' + str(j)].value
# get values by vlook up
if name_hyoka == name_salary:
salary = ws2['B' + str(j)].value
ws.cell(row = i, column = 5, value = salary)
break
#Save
def save():
wb.save(filename = "C:\\Users\\ユーザー名\\Documents\\Qiita用サンプル\\評価データ_給与.xlsx")
save()
동작의 결과는 이쪽입니다.
E열에 급여가 들어있네요.
참고로 한 사이트
h tps : // / ぁ stc ぁ しんふぉ. 코 m / 엔 try / py 쵸 _ 에 x 세 l_v
이 사이트의 해설을 참고로 실천했습니다.
Reference
이 문제에 관하여(【Python × Excel】 Openpyxl에서 Vlookup을 시도합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/djyokochan/items/ebfe4a499004d04b7939
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
wb = px.load_workbook("C:\\Users\\ユーザー名\\Documents\\Qiita用サンプル\\評価データ.xlsx")
ws = wb["評価"]
wb2 = px.load_workbook("C:\\Users\\ユーザー名\\Documents\\Qiita用サンプル\\給与データ.xlsx")
ws2 = wb2["給与"]
드디어 Vlookup을 해갑니다.
#Get last row
lastrow = ws.max_row
lastrow2 = ws2.max_row
#get values from IMaster Sheet
for i in range(2, lastrow + 1):
name_hyoka = ws['B' + str(i)].value
for j in range(2, lastrow2 + 1):
name_salary = ws2['A' + str(j)].value
# get values by vlook up
if name_hyoka == name_salary:
salary = ws2['B' + str(j)].value
ws.cell(row = i, column = 5, value = salary)
break
#Save
def save():
wb.save(filename = "C:\\Users\\ユーザー名\\Documents\\Qiita用サンプル\\評価データ_給与.xlsx")
save()
위의 코드는 평가 데이터의 직원 이름을 검색 값으로 급여 데이터의 직원 이름 열에서 검색합니다. 그리고 직원 이름이 일치하면 급여 데이터의 급여를 평가 데이터의 E 열에 쓰도록합니다.
포인트는
① 2개의 시트 중첩으로 하는 형태로 각각을 For 루프로 돌린다.
②if문으로 문자열 일치의 판정을 한다.
③ 일치하는 경우에만 값을 셀에 씁니다.
④break 잊지 않는다*여기 소중
⑤ 마지막으로 wb 저장
데이터의 읽어들이기는 컬럼의 알파벳 지정으로 할 수 있습니다만, 기입시에는 그것이 잘 안 되었기 때문에 숫자로 컬럼을 지정하고 있습니다.
덧붙여서 break를 넣는 것은 문자열 일치를 발견한 후, 다시 바깥쪽 루프로 돌아가서 다음 검색값을 검색하기 때문입니다.
코드 전체로서는 이런 느낌입니다.
import openpyxl as px
wb = px.load_workbook("C:\\Users\\ユーザー名\\Documents\\Qiita用サンプル\\評価データ.xlsx")
ws = wb["評価"]
wb2 = px.load_workbook("C:\\Users\\ユーザー名\\Documents\\Qiita用サンプル\\給与データ.xlsx")
ws2 = wb2["給与"]
#Get last row
lastrow = ws.max_row
lastrow2 = ws2.max_row
#get values from IMaster Sheet
for i in range(2, lastrow + 1):
name_hyoka = ws['B' + str(i)].value
for j in range(2, lastrow2 + 1):
name_salary = ws2['A' + str(j)].value
# get values by vlook up
if name_hyoka == name_salary:
salary = ws2['B' + str(j)].value
ws.cell(row = i, column = 5, value = salary)
break
#Save
def save():
wb.save(filename = "C:\\Users\\ユーザー名\\Documents\\Qiita用サンプル\\評価データ_給与.xlsx")
save()
동작의 결과는 이쪽입니다.
E열에 급여가 들어있네요.
참고로 한 사이트
h tps : // / ぁ stc ぁ しんふぉ. 코 m / 엔 try / py 쵸 _ 에 x 세 l_v
이 사이트의 해설을 참고로 실천했습니다.
Reference
이 문제에 관하여(【Python × Excel】 Openpyxl에서 Vlookup을 시도합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/djyokochan/items/ebfe4a499004d04b7939
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(【Python × Excel】 Openpyxl에서 Vlookup을 시도합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/djyokochan/items/ebfe4a499004d04b7939텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)