見出し画像

試行錯誤したExcelデータ転記【Python🐍】

こんにちは!
パソコンインストラクター歴12年目の
チサです。(*´∀`)

今日は
2日ほど試行錯誤して
ようやくPython🐍で書けた🎉

エクセルデータ転記について
書こうと思います。

どんなことを
したのかというと⁇

こんなデータがあったとして👇

Kindle本の売り上げデータ表
(架空)

有料注文数が1000🫢
そんなにたくさん売れたら
うれしいなーー
( ´∀` )

あ!このデータは
Kindle作家📕の方なら
一度はみたことある?
かもしれないです。

AmazonのKDPサイトから
ダウンロードできる
売上データ表の一部
【注文】シートです。

(中身はわたしの願望が詰まった
架空データ🤣)

この売上データ表から
こんな風にデータを転記したい!

注文シートのデータを元に
分析シートに
書き出したい!
(🔥口🔥)و

❶本ごとにまとめて
❷さらに!
どのマーケットで合計何冊売れたのか?
集計して別シートに転記💻

これね…
エクセルのピボットテーブル使ったら
すぐできるんですが👇

ピボットテーブルって
便利ーー!

そんな
すぐにわかる分析を🤣

今回はPython🐍の勉強がてら
2日もかかって
コードを書いてみました!!
𐤔wʷ 🤣 𐤔w𐤔

わたしはこれまでは

1つの条件を元に集計する…
ということはやったことがあったんですが

今回のように
本ごと
さらにマーケットごと

という
2つの縛りがあるのは初だったので

なかなか
いいアイデアが出てこなくて💦

いろいろ試行錯誤。。

やっとこ書き出せました( ´∀` )


今日はわたしがどんな風に
書いたのか?
そのコードをお見せしますね。

もっといい方法をご存じの方は
ぜひぜひ教えてください!
(絶対もっとすっきり書ける方法あると思う!)
*_ _)ペコリン

ではでは
ごらんあれーーー!👇

import openpyxl
path_excel = "KDP.xlsx"
path_save = "KDP_result.xlsx"
wb = openpyxl.load_workbook(path_excel)
ws = wb["注文"]

# 注文シートから重複しないbook_list作成
book_list = []
for row in ws["B2:B" + str(ws.max_row)]:
    key = row[0].value
    if key not in book_list:
        book_list.append(key)

ws_to = wb["分析"]
idx = 2

for book in book_list:
    com_dict = {}
    for row in ws["A2:G" + str(ws.max_row)]:
        # どのマーケットで何冊売れたのか?com_dictにデータを入れる
        if book == row[1].value:
            place = row[4].value
            hanbaisu = row[5].value
            if place not in com_dict:
                com_dict[place] = [hanbaisu]
            else:
                com_dict[place].append(hanbaisu)
    # com_dictの情報を分析シートに転記
    for key, values in com_dict.items():
        ws_to["A" + str(idx)].value = book
        ws_to["B" + str(idx)].value = key
        kazu = 0
        for value in values:
            kazu += value
        ws_to["C" + str(idx)].value = kazu
        idx += 1

wb.save(path_save)
wb.close()
print("完了")

Python🐍は
インデントがずれると
動作が変わってくるので
要注意ですね!

リストやら辞書やら
織り交ぜて
なんとか完成しました!
ヾ(●´∇`●)ノ

書いてて思ったことは…

やっぱりプログラミングって
すこしずつ完成させていくのが
着実にゴールに近づけられるな!
ってこと。
ദ്ദി ˃ ᵕ ˂ ) ‹"ーᵎᵎ

理屈はわかってても
いざ!思い通りに動かすのって
けっこうむずかしい💦

なので、
まずは小さいところから
骨組みをつくって
🦴
だんだん肉付け
🥩する。。

みたいなイメージで作るのが
いいな!
と思いました。

またやりたいことを見つけて
Python🐍修行をしたいな思います♪
(*´∀`*)


ではでは
またあした!
(´꒳`)/


【Amazonで販売中のKindle📕】

➊パソコンに関する📕 2冊

➋Kindle出版に関する📕 2冊

➌節約に関する📕 1冊

➍読書に関する📕 1冊

➎海外の方向けの📕 3冊

気になる本があれば
試し読みだけでも♪
(´▽`)

この記事が気に入ったらサポートをしてみませんか?