计算车间每日产量达标率

1. 情境问题

大龙是一名产品质检员,每天下班前,他都要统计所有车间计划产量及每日产量。

他把数据记录到【检验记录表模板.xlsx】工作簿并另存为【x月x日检验记录表.xlsx】工作簿,本案例以 8 月 25 日为例,结果如下图:

接下来,我们分析一下这份工作任务,

工作目标

【生产计划表.xlsx】工作簿和【工人产量日报表.xlsx】工作簿中对应的数据,复制或经过计算记录到【检验记录表模板.xlsx】工作簿中,最后另存为【8月25日检验记录表.xlsx】工作簿。

平时他都是手动操作完成,具体的步骤是这样的:

运用 Python 代码帮助他/她实现工作目标 👇:

【生产计划表.xlsx】工作簿和【工人产量日报表.xlsx】工作簿中对应的数据,复制或经过计算记录到【检验记录表模板.xlsx】工作簿中,最后另存为【8月25日检验记录表.xlsx】工作簿。

2.1 元组合并

元组合并即连接两个或多个元组,可以使用+运算符。

总的来说,元组合并的使用是这样的,你需要注意:

 

2.2 round()内置函数

round()可以用来保留小数位数。

总的来说,round()的使用是这样的,你需要注意:

实现代码:

from openpyxl import load_workbook

# 获取【工人产量日报表】工作表
production_wb = load_workbook('../工作/工人产量日报表.xlsx')
production_sheet = production_wb.active

# 创建产量字典
production_dict = {}

# 遍历【工人产量日报表】工作表中的数据
#从第三行开始取出所有数据
for row in production_sheet.iter_rows(min_row=3, values_only=True):
    # 从“工号”中提取出“车间号”(workshop_num)
    workshop_num = row[0][:2]

    # 判断字典中是否有该车间的信息
    if production_dict.get(workshop_num) == None:
        # 以“车间号”为键,“产品编号”与“实际产量 ”组成的字典为值,写入字典中
        production_dict[workshop_num] = {row[1]: row[4]}

    else:
        # 判断当前车间中,是否有该产品的信息
        if production_dict[workshop_num].get(row[1]) != None:
            # 累加“实际产量”
            production_dict[workshop_num][row[1]] += row[4]

        # 如不存在该产品信息,则以“产品编号”为键,“实际产量”为值,写入字典中
        else:
            production_dict[workshop_num][row[1]] = row[4]

# 分别获取【检验记录表模板】、【生产计划表】工作表
template_wb = load_workbook('../工作/检验记录表模板.xlsx')
template_sheet = template_wb.active

plan_wb = load_workbook('../工作/生产计划表.xlsx')
plan_sheet = plan_wb.active

# 遍历【生产计划表】工作表中的数据
for row in plan_sheet.iter_rows(min_row=3, values_only=True):
    # 根据“车间号”、“产品编号”,获取产量字典中的“实际产量”
    actual_production = production_dict[row[1]][row[2]]

    # 计算“目标达成率”
    rate = actual_production / row[3]

    # 将“目标达成率”保留两位小数,并转成百分比格式
    rate = str(round(rate*100, 2)) + '%'

    # 根据【检验记录表模板】工作表的表头,将数据写入【检验记录表模板】工作表中
    template_row = row[:4] + (actual_production, rate)
    template_sheet.append(template_row)

# 将【检验记录表模板.xlsx】工作簿另存为【8月25日检验记录表.xlsx】工作簿
template_wb.save('../工作/8月25日检验记录表.xlsx')

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mez_Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值