影刀RPA Excel数据透视与SQL聚合:数据分析自动化实战
影刀RPA Excel数据透视与SQL聚合数据分析自动化实战作者林焱采集来的原始数据往往是一堆流水账要变成有用的信息必须经过聚合分析。Excel数据透视和SQL查询是两种常见的数据聚合方式影刀都能搞定。一、两种方案对比方案适合场景技术复杂度Excel数据透视数据量10万行需要可视化低SQL查询数据量大需要复杂条件中Python pandas数据量大复杂分析高拼多多店群自动化报活动上架二、用影刀自动创建 Excel 数据透视表适合从网页采集完数据后自动在 Excel 里生成数据透视分析。场景采集了商品销售数据商品名、类别、销量、金额自动生成各类别的汇总。// 方式一用Python openpyxl生成透视表 Python代码 import openpyxl from openpyxl import load_workbook wb load_workbook(销售数据.xlsx) ws wb.active # 读取所有数据 data [] for row in ws.iter_rows(min_row2, values_onlyTrue): if row[0]: # 跳过空行 data.append(row) # 按类别聚合 from collections import defaultdict category_sum defaultdict(lambda: {销量: 0, 金额: 0.0}) for row in data: 商品名, 类别, 销量, 金额 row[0], row[1], row[2], row[3] try: category_sum[类别][销量] int(销量 or 0) category_sum[类别][金额] float(金额 or 0)   except: pass # 写入新Sheet if 类别汇总 in wb.sheetnames: del wb[类别汇总] ws_summary wb.create_sheet(类别汇总) ws_summary.append([类别, 总销量, 总金额, 占比]) total_amount sum(v[金额] for v in category_sum.values()) for cat, vals in sorted(category_sum.items(), keylambda x: -x[1][金额]): ratio f{vals[金额]/total_amount*100:.1f}% ws_summary.append([cat, vals[销量], round(vals[金额], 2), ratio]) wb.save(销售数据.xlsx) print(透视分析完成) 执行Python代码(Python代码)三、用 SQLite 做数据聚合影刀可以操作 SQLite 数据库用 SQL 语句做聚合分析// 先把 Excel 数据导入 SQLite Python代码_导入 import sqlite3 import openpyxl # 读取Excel wb openpyxl.load_workbook(销售数据.xlsx) ws wb.active # 创建数据库 conn sqlite3.connect(sales.db) cur conn.cursor() cur.execute(DROP TABLE IF EXISTS sales) cur.execute(CREATE TABLE sales ( product_name TEXT, category TEXT, quantity INTEGER, amount REAL, date TEXT )) for row in ws.iter_rows(min_row2, values_onlyTrue): if row[0]: cur.execute(INSERT INTO sales VALUES (?,?,?,?,?), row[:5]) conn.commit() conn.close() print(数据导入完成) 执行Python代码(Python代码_导入) // 然后执行SQL聚合查询 连接数据库(sales.db) // 各类别销售汇总 SQL SELECT category as 类别, COUNT(*) as 商品数, SUM(quantity) as 总销量, ROUND(SUM(amount), 2) as 总金额, ROUND(AVG(amount), 2) as 平均金额 FROM sales GROUP BY category ORDER BY 总金额 DESC 查询结果 执行SQL查询(SQL) 写入Excel(查询结果, 类别汇总.xlsx)四、常用聚合 SQL 模板按时间聚合日/周/月-- 按月汇总SELECTsubstr(date,1,7)as月份,-- 取 yyyy-MM 部分SUM(amount)as月销售额,COUNT(*)as订单数FROMsalesGROUPBYsubstr(date,1,7)ORDERBY月份TOP N 分析TEMU店群矩阵自动化运营核价报活动-- 销量最高的10个商品SELECTproduct_name,SUM(quantity)as总销量FROMsalesGROUPBYproduct_nameORDERBY总销量DESCLIMIT10同比环比-- 本月 vs 上月WITHmonthlyAS(SELECTsubstr(date,1,7)as月份,SUM(amount)as金额FROMsalesGROUPBYsubstr(date,1,7))SELECTa.月份,a.金额as本月金额,b.金额as上月金额,ROUND((a.金额-b.金额)/b.金额*100,1)||%as环比增长FROMmonthly aLEFTJOINmonthly bONsubstr(a.月份,1,4)||-||CASEWHENCAST(substr(a.月份,6)ASINT)1THEN12ELSEprintf(%02d,CAST(substr(a.月份,6)ASINT)-1)ENDb.月份ORDERBYa.月份五、实战自动生成每周数据分析报告// 定时每周一 09:00 // 读取上周数据 上周起止 计算上周日期范围() 从数据库查询(上周数据, SQLSELECT * FROM sales WHERE date BETWEEN ? AND ?, 参数上周起止) // 聚合分析 执行多个SQL(类别汇总, 日趋势, TOP商品, 异常订单) // 写入报告Excel 写入多个Sheet报告(类别汇总, 日趋势, TOP商品) // 发送 发钉钉通知(上周数据分析报告已生成请查阅)数据采集只是第一步分析和洞察才是最终目的。掌握 SQL 聚合让原始数据变成决策依据。作者林焱