0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

エクセル複数シートの結合

Last updated at Posted at 2021-08-20

#1.はじめに & 動作環境
バックオフィスにおいて日常的に発生する業務にエクセルの加工作業がある。
これらの多くの作業は同じ作業の繰り返しであることが多いため、これらをできる限り自動化することで業務の効率化と生産性の向上を目指す。

#2.工程図 for Excel1納期管理表
納期管理表はアイテムごとにシートで分けて管理されている。
そのままだと集計する際に不便なため、一つのシートに全てのアイテムを統合したサマリーシートを作成する。

1.シェアドライブに保管している管理表エクセルの読み込み
2.シートを左から順に読み込んでいく
3.新規シートの作成(サマリーシート)
4.読み込んだシートの情報をサマリーシートに上から順に書き込み
5.ブックのコピーを別名でローカルドライブに保存
BacklogList.JPG

#3.コードの作成 for Excel1納期管理表

import openpyxl

wb = openpyxl.load_workbook(S:\\xxxDpt\\sales\\001 納期管理表\\n_納期管理表2021Custxyz.xlsm") #Sドライブ上のエクセルの読み込み

is_first_sheet = True #初期値をTrueにしておく
row_list = [] #row_listという空リストを用意し、この中に各シートの行を順次追加する

for ws in wb.worksheets: #シートを順に読み込んでいく
    if is_first_sheet:
        start_row = 1 #最初のシートは1行目から読み込む
    else:
        start_row = 4 #最初のシート以外は4行目から読み込む
    
    for row in ws.iter_rows(min_row=start_row):
        if row[0].row > 3 and row[0].value is None: #A列3行目以降が空セルだったら読み込み完了
            break
        value_list = []
        for c in row: #読み込んだデータをvalue_listに格納していく
            value_list.append(c.value)
        row_list.append(value_list)
        
    is_first_sheet = False

ws_new = wb.create_sheet(title="SUMsheet") #新規シートの作成

row_num = 1  # 書き込み時の行番号

for row in row_list: #新しいシートに1行ずつデータを書き込む
    ws_new.append(row)
    
    if row_num > 3:
        ws_new.cell(row_num, 1).number_format = "yyyy/m/d"
    row_num = row_num +1

ws_new.delete_rows(idx=1, amount=2)

wb.save(“C:/Users/KY/Documents/n.納期管理表/SUMBook_Custxyz.xlsx") # 別名でブック保存

#4.完成 for Excel1納期管理表
二つのシートに分かれて記載してあったItem x1とItem x2を統合して1つのシートにまとめて記載することができた。

model_Aシートの製品X1
image.png

model_Bシートの製品X2
image.png

新規作成したSUMシートに製品X1 と製品X2の両方が転記された
image.png

なお、非表示にしているシートも読み込んでしまうが、A列を空欄にしておくことで読み込まないようにさせている。

image.png

今回使用したデータはダミーのため、2シートしかなく、データ自体も少なくしているが、
実際に使用しているブックは10シート以上あり、データ数も膨大である。

以上

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?