Skip to content
Automation
Skill

/wps-pivot

透视表傻瓜教程。透视表看不懂?不知道字段往哪拖?用最通俗的话教你: 透视表就是"按X分组,算Y的汇总"。帮你选对字段,生成透视结果。 用于帮助用户理解和创建透视表。当用户提到透视表、数据汇总、分组统计时触发。 Pivot table guide - explains concepts in plain language and generates results.

From plugin
bwkyd-wps-skills
842 skills
Install
$ npx -y skills add Bwkyd/wps-skills --skill wps-pivot --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/wps-pivot

Context preview

The summary Claude sees to decide when to auto-load this skill.

透视表傻瓜教程。透视表看不懂?不知道字段往哪拖?用最通俗的话教你: 透视表就是"按X分组,算Y的汇总"。帮你选对字段,生成透视结果。 用于帮助用户理解和创建透视表。当用户提到透视表、数据汇总、分组统计时触发。 Pivot table guide - explains concepts in plain language and generates results.

SKILL.md

wps-pivot.SKILL.md
name: wps-pivot
description: |
  透视表傻瓜教程。透视表看不懂?不知道字段往哪拖?用最通俗的话教你:
  透视表就是"按X分组,算Y的汇总"。帮你选对字段,生成透视结果。
  用于帮助用户理解和创建透视表。当用户提到透视表、数据汇总、分组统计时触发。
  Pivot table guide - explains concepts in plain language and generates results.
license: MIT
user-invocable: true
argument-hint: '[数据描述/分析需求]'
allowed-tools: 'Read, Grep, Glob, Bash, Write, Edit'
metadata:
  author: BWKYD
  title: 透视表教程
  description_zh: 讲解透视表的用法,帮你理解字段拖放和数据汇总
  tags:
    - 透视表
    - 数据分析
    - 汇总
    - Excel
    - WPS
  version: 1.0.1
  license: MIT

数据透视表助手

用人话解释透视表 → 帮你拖对字段 → 生成结果。

> "透视表就是:按X分组,算Y的汇总。" 就这么简单。

When to Use

  • 需要按分类汇总数据
  • 不知道透视表怎么用
  • 需要交叉分析(如:各部门各月销售额)
  • 用户说"帮我做透视表""按XX汇总"

When NOT to Use

  • 简单求和/计数 → 使用 `wps-formula`
  • 图表可视化 → 使用 `wps-chart`

透视表一句话理解

透视表 = 按【行标签】分组,计算【值字段】的【汇总方式】

例子:
  "按部门统计人数"
  → 行标签=部门,值=姓名,汇总=计数

  "各月份各产品的销售额合计"
  → 行标签=月份,列标签=产品,值=销售额,汇总=求和

  "每个销售员的平均单价"
  → 行标签=销售员,值=单价,汇总=平均值

字段拖放指南

┌─────────────────────────────────────┐
│  你的数据有哪些列?                  │
│                                     │
│  分类列(文本)→ 拖到【行】或【列】  │
│    如:部门、月份、产品、地区        │
│                                     │
│  数值列(数字)→ 拖到【值】          │
│    如:金额、数量、分数              │
│                                     │
│  筛选列(可选)→ 拖到【筛选】        │
│    如:年份、状态                    │
└─────────────────────────────────────┘

常见搭配:
┌──────────────┬──────┬──────┬────────┐
│ 需求         │ 行   │ 列   │ 值     │
├──────────────┼──────┼──────┼────────┤
│ 各部门人数   │ 部门 │ -    │ 计数   │
│ 月度销售趋势 │ 月份 │ -    │ 求和   │
│ 部门×月份    │ 部门 │ 月份 │ 求和   │
│ 产品占比     │ 产品 │ -    │ 求和%  │
└──────────────┴──────┴──────┴────────┘

工作流程

Step 1: 理解数据和需求

确认:

  • 数据有哪些列
  • 想按什么分组
  • 想看什么数值(合计/平均/计数)
  • 是否需要交叉分析

Step 2: 用openpyxl生成透视结果

from openpyxl import Workbook, load_workbook
from openpyxl.styles import Font, Alignment, PatternFill, Border, Side
from collections import defaultdict
import os

def create_pivot(data_path, row_field, value_field,
                 agg='sum', col_field=None, output_path=None):
    """生成透视表结果"""
    wb = load_workbook(data_path)
    ws = wb.active

    # 读取数据
    headers = [cell.value for cell in ws[1]]
    row_idx = headers.index(row_field)
    val_idx = headers.index(value_field)
    col_idx = headers.index(col_field) if col_field else None

    # 聚合
    if col_field:
        pivot = defaultdict(lambda: defaultdict(list))
        col_values = set()
        for row in ws.iter_rows(min_row=2, values_only=True):
            r_key = row[row_idx]
            c_key = row[col_idx]
            val = float(row[val_idx] or 0)
            pivot[r_key][c_key].append(val)
            col_values.add(c_key)
        col_values = sorted(col_values)
    else:
        pivot = defaultdict(list)
        for row in ws.iter_rows(min_row=2, values_only=True):
            r_key = row[row_idx]
            val = float(row[val_idx] or 0)
            pivot[r_key].append(val)

    # 聚合函数
    agg_funcs = {
        'sum': sum,
        'avg': lambda x: sum(x)/len(x) if x else 0,
        'count': len,
        'max': max,
        'min': min,
    }
    func = agg_funcs.get(agg, sum)

    # 写入结果
    wb_out = Workbook()
    ws_out = wb_out.active
    ws_out.title = "透视结果"

    header_fill = PatternFill('solid', fgColor='2C3E50')
    header_font = Font(name='微软雅黑', size=11, bold=True, color='FFFFFF')

    if col_field:
        # 交叉透视
        ws_out.cell(row=1, column=1, value=row_field).font = header_font
        ws_out.cell(row=1, column=1).fill = header_fill
        for ci, cv in enumerate(col_values, 2):
            ws_out.cell(row=1, column=ci, value=cv).font = header_font
            ws_out.cell(row=1, column=ci).fill = header_fill
        ws_out.cell(row=1, column=len(col_values)+2, value='合计').font = header_font
        ws_out.cell(row=1, column=len(col_values)+2).fill = header_fill

        for ri, (rk, cols) in enumerate(sorted(pivot.items()), 2):
            ws_out.cell(row=ri, column=1, value=rk)
            row_total = 0
            for ci, cv in enumerate(col_values, 2):
                val = func(cols.get(cv, [0]))
                ws_out.cell(row=ri, column=ci, value=round(val, 2))
                row_total += val
            ws_out.cell(row=ri, column=len(col_values)+2, value=round(row_total, 2))
    else:
        ws_out.cell(row=1, column=1, value=row_field).font = header_font
        ws_out.cell(row=1, column=1).fill = header_fill
        ws_out.cell(row=1, column=2, value=f'{value_field}({agg})').font = header_font
        ws_out.cell(row=1, column=2).fill = header_fill

        for ri, (rk, vals) in enumerate(sorted(pivot.items()), 2):
            ws_out.cell(row=ri, column=1, value=rk)
            ws_out.cell(row=ri, column=2, value=round(func(vals), 2))

    if not output_path:
        output_path = '透视结果.xlsx'
    wb_out.save(output_path)
    return os.path.abspath(output_path)

Step 3: 在WPS中创建透视表的步骤指引

WPS中创建透视表(手动操作指引):
1. 选中数据区域(含表头)
2. 菜单 → 插入 → 数据透视表
3. 选择放置位置(新工作表)
4. 在右侧面板拖放字段:
   - 行区域:拖入分类字段
   - 列区域:拖入交叉字段(可选)
   - 值区域:拖入数值字段
   - 筛选区域:拖入筛选字段(可选)
5. 点击值字段 → 值字段设置 → 选择汇总方式

Step 4: 交付

1. 生成透视结果Excel 2. 或提供WPS内操作步骤指引 3. 说明如何修改汇总方式和筛选

示例

# 简单透视
/wps-pivot 按部门统计销售额合计,数据在sales.xlsx

# 交叉透视
/wps-pivot 各部门每个月的销售额是多少

# 不懂透视表
/wps-pivot 透视表是什么?我的数据有姓名、部门、月份、销售额,想看各部门汇总
Read more
Ships withbwkyd-wps-skills

42 个 WPS Office 办公自动化 Claude Code Skills 集合 一句话指令,让 Claude 帮你自动生成 Word / Excel / PPT / PDF 文档。

Get the whole plugin

Other skills on bwkyd-wps-skills.

wps-attendance
Skill

wps-attendance

考勤打卡统计。把考勤机导出的打卡数据丢进来,自动统计每个人的 迟到、早退、缺勤、加班时长,生成月度考勤汇总表,异常考勤自动标红。 用于帮助HR处理考勤数据。当用户提到考勤、打卡、迟到、加班统计时触发。 Attendance tracker - generates summary reports from…

wps-batch-convert
Skill

wps-batch-convert

文档批量格式转换。把一个文件夹里的Word全转文本、Excel全导出CSV、 Markdown转Word,支持docx/txt/xlsx/csv/md等格式批量互转,一次搞定。 用于帮助用户批量转换文档格式。当用户提到批量转换、格式转换、导出时触发。 Batch converts documents between…

wps-budget
Skill

wps-budget

预算表一键生成。部门年度预算、项目预算、活动经费预算,选个模板填数字就行, 小计合计公式自动写好,还有预算vs实际对比和执行率自动计算。 用于帮助财务和行政制作预算表。当用户提到预算、费用表、经费时触发。 Budget spreadsheet generator with formulas and variance…

wps-certificate
Skill

wps-certificate

证书奖状批量生成。给一份名单,批量生成荣誉证书、结业证书、聘书、感谢信, 每人一份独立文件,年终评优、培训结业、表彰活动必备工具。 用于帮助用户批量生成证书。当用户提到证书、奖状、聘书时触发。 Batch certificate/award generator from a list of recipients.

wps-chart
Skill

wps-chart

数据图表一键生成。不知道数据该用什么图表?告诉我你的数据和目的, 自动推荐最佳图表类型并生成,柱状图折线图饼图散点图都支持,还帮你调配色。 用于帮助用户制作数据可视化图表。当用户提到图表、柱状图、折线图、饼图时触发。 Chart generator - recommends best chart type and…

wps-cn-calendar
Skill

wps-cn-calendar

日历排班值班表。生成带法定节假日和调休标注的月度/年度日历表, 还能做三班倒/两班倒排班表和节假日值班安排,颜色区分不同班次一目了然。 用于帮助用户生成日历和排班表。当用户提到日历、排班、值班、节假日时触发。 Chinese calendar with holidays, shift scheduling, and…