
简介本资源为高中学业水平测试计算机考试Excel操作练习题的PDF整理文档面向备考信息技术学业水平测试的高中生及信息技术教师集中解决Excel上机操作题型的复习与训练需求。文档共1个PDF文件压缩包约40KB篇幅精炼便于打印成册或随堂分发。内容围绕基本操作、数据处理、图表制作、公式计算、格式设置等模块展开具体覆盖单元格合并居中、总分与平均成绩的公式函数计算、按全年工资排序与多条件排序、自动筛选月平均工资低于5000元的数据、数据点折线图建立与图表标题设置、字体字号与行高列宽调整、货币符号添加及文字对齐方式等考点并涉及工作表复制与筛选结果另存为统计表等综合操作。每道练习题均给出明确的数据表与操作要求可帮助读者逐项对照上手练习快速熟悉学业水平测试常见题型与评分要点适合考前集中查漏补缺。已有1283人学习下载。1. 从一份学考练习 PDF 说起Excel 操作题到底考什么机房最后一节课老师把《高中学业水平测试计算机考试EXCEL操作练习题.pdf》发到每台机器上题目从 SUMIFS 多条件求和一路排到图表、分类汇总。学生照着 PDF 里的表格把数据敲进 Excel再按指令做排序、筛选、算平均分。这套流程看着简单真正拉开分差的全在细节引用区域少写一行整题零分把结果手敲成常量而不是公式判分脚本一扫就露馅。这里要讲的是围绕这类操作练习题的整套做法——考点怎么拆、练习题怎么批量生成、作答怎么自动判分、PDF 怎么排版打印以及遇到 excel 无法复制粘贴时的处理顺序。出题的老师和带机房课的技术老师能直接用自学备考的学生照着练也不吃亏。2. 学业水平测试 Excel 操作题的考点图谱与函数选型2.1 操作题的题型分布与判分口径学考操作题的分值通常压在四类动作上统计计算、查找引用、排序筛选、分类汇总与图表。它们看起来是 Excel 的入门内容但判分口径和我算对了是两回事——机器判的是单元格里的东西不是屏幕上的数字。题型典型指令常用函数/操作判分关注点统计计算计算各班总分、及格率SUM、SUMIFS、AVERAGEIFS、ROUND是否写成公式、引用区域是否完整查找引用按学号填出姓名或班级VLOOKUP、XLOOKUP、INDEXMATCH查找值列顺序、绝对引用有没有加排序筛选按总分降序筛出 480 分以上排序、多条件筛选、高级筛选是否扩展选定区域、标题行有没有被当成数据分类汇总/图表按班级求平均分并画柱形图分类汇总、数据透视、图表汇总字段、图表数据源是否含标题提示判分脚本普遍用 openpyxl 的data_onlyFalse读公式原文再用data_onlyTrue读缓存值。只答常量不写公式第一遍就被刷掉。2.2 统计类考点SUMIFS 多条件求和的正确写法SUMIFS 是学考里出现频率最高的函数之一也是最容易写错区域的。它的参数顺序和 SUMIF 不同求和区域在最前面。学生常把条件区域和求和区域写反算出来的数看着像对的其实全错。ROUND(SUMIFS(成绩表!$E$2:$E$401,成绩表!$B$2:$B$401,$A2,成绩表!$C$2:$C$401,60)/COUNTIFS(成绩表!$B$2:$B$401,$A2,成绩表!$C$2:$C$401,60),2)逐段拆开看成绩表!$E$2:$E$401是求和区域固定住不能随行漂移$B$2:$B$401是班级条件列$A2指当前行的班级名列锁行不锁往下拖才正确$C$2:$C$401,60是第二个条件统计及格人数用 COUNTIFS两段相除得到及格率。外层 ROUND 保留两位小数学考对小数位约定很死少一位可能就判错。条件里写60时比较运算符必须在引号内写成加单元格引用则要用D2的拼接写法。2.3 查找类考点VLOOKUP、XLOOKUP 与 INDEXMATCH 怎么选查找题的坑在版本。XLOOKUP 只有 Microsoft 365 和 Excel 2021 之后才有不少学校机房还停留在 Excel 2016练 XLOOKUP 上了考场会直接报#NAME?。稳妥策略是按考场版本选函数VLOOKUP($A2,学籍表!$A:$C,2,FALSE) XLOOKUP($A2,学籍表!$A:$A,学籍表!$B:$B,未找到) INDEX(学籍表!$B:$B,MATCH($A2,学籍表!$A:$A,0))VLOOKUP 的第四个参数必须写 FALSE 或 0省略会走近似匹配遇到未排序的学号会返回莫名其妙的姓名第三个参数 2 表示返回学籍表第 2 列改成 3 就返回班级。XLOOKUP 的优势是能指定未找到的返回值也能向左查找但前提示考场有这个函数。INDEXMATCH 在三个里最灵活、最不怕插入列代价是公式长、学生易写错嵌套括号教学场景里一般作为进阶内容。2.4 排序、多条件筛选与分类汇总的操作边界排序题的核心不是点按钮而是选对区域。如果先点了某一列再排序Excel 只排这一列其他列不动数据就彻底错位——这是机房最高频的翻车点。正确做法是选中包含标题行的整个数据区或用 CtrlA 让 Excel 自动识别连续区域再进数据—排序勾选数据包含标题。多条件筛选用数据—筛选叠加条件即可需要导出结果则用高级筛选配合条件区域条件区域里同一行是与不同行是或。分类汇总前必须先按分类字段排序否则同一班级会被切成好几段汇总出重复行。图表题则要注意数据源是否含标题柱形图的分类轴标签来自第一列图例来自第一行少选一行标题图例就变成系列1、系列2白丢分。3. 用 openpyxl 批量生成 Excel 操作练习题3.1 题库字段设计与 markdown 表格转换 excel自己攒一套 excel 表格实践训练题最省事的题库载体是 markdown 表格改起来直观、能进版本管理需要的时候再转换成 Excel。字段至少包含题目编号、题干、操作指令、考核函数、参考答案公式、难度。一张典型题库长这样题号操作指令考点参考答案难度A1用公式算出每人的总分SUMSUM(D2:F2)易A2统计高三A班语文平均分AVERAGEIFSROUND(AVERAGEIFS(...),1)中A3按总分降序排列排序操作型易把这张表另存为 CSV再pd.read_csv读进来就能驱动生成脚本。用 markdown 表格转换 excel 的好处是题干和答案在同一行生成题目和生成标准答案共用一份数据不会出现题目改了、答案忘了改的错位。3.2 生成数据页与作答页的最小脚本下面这段脚本生成一个只含常量数据、总分列留空的成绩表逼考生自己写公式。运行环境只需pip install openpyxl。import random from openpyxl import Workbook from openpyxl.styles import Font, Alignment SURNAMES list(赵钱孙李周吴郑王冯陈) GIVEN [伟, 芳, 娜, 敏, 静, 强, 磊, 洋, 艳, 勇] def make_students(n, seed20240501): rng random.Random(seed) # 固定种子保证每次生成的题一样 rows [] for i in range(1, n 1): sid f2024{i:04d} # 学号定长 8 位VLOOKUP 精确匹配不出错 name rng.choice(SURNAMES) rng.choice(GIVEN) cls f高三{chr(64 rng.randint(1, 6))}班 # 高三A班 ~ 高三F班 rows.append([sid, name, cls, rng.randint(60, 100), # 语文 rng.randint(55, 100), # 数学 rng.randint(58, 100), # 英语 None]) # 总分留空由考生写公式 return rows def write_paper(path, rows): wb Workbook() ws wb.active ws.title 成绩表 ws.append([学号, 姓名, 班级, 语文, 数学, 英语, 总分]) for c in ws[1]: c.font Font(boldTrue) c.alignment Alignment(horizontalcenter) for r in rows: ws.append(r) ws.freeze_panes A2 # 冻结首行方便机房学生滚动查看 ws.column_dimensions[A].width 12 wb.save(path) if __name__ __main__: data make_students(120) write_paper(练习题_成绩表.xlsx, data) print(f生成 {len(data)} 条记录 - 练习题_成绩表.xlsx)逻辑说明make_students负责造数据write_paper只负责写盘两者分开是为了让换一套数据、复用同一模板变成一行调用。rng用固定 seed 初始化同一 seed 每次生成的姓名、分数完全一致出题和印卷不会对不上。总分列写None而不是 0是为了让判分脚本能区分没做和填了 0 分。3.3 参数化控制题目数量、难度与随机种子把可变部分抽成命令行参数一个脚本就能服务多个班、多套卷。import argparse from gen_paper import make_students, write_paper parser argparse.ArgumentParser(description学考 Excel 练习题生成器) parser.add_argument(--count, typeint, default120, help学生记录条数) parser.add_argument(--seed, typeint, default20240501, help随机种子) parser.add_argument(--out, default练习题_成绩表.xlsx, help输出文件名) args parser.parse_args() write_paper(args.out, make_students(args.count, args.seed))参数默认值作用调整建议--count120生成记录条数一节课 80150 条够练太多拖慢机房机器--seed20240501随机种子A 班用 20240501、B 班用 20240502卷子不同但可控--out练习题_成绩表.xlsx输出文件名按「班级_场次」命名判分时好批量匹配注意难度不靠随机加大数字范围来调而是靠题量分布。易题给一道 SUM中档题给 SUMIFS 或 AVERAGEIFS难题再加分类汇总和图表三层比例一般按 5:3:2。3.4 生成后必做的三项自检第一项查空值用 openpyxl 遍历总分列确认全部为 None若出现数字说明模板被污染。第二项查格式学号必须存成文本若被 Excel 自动转成科学计数法VLOOKUP 的查找值就对不上。第三项查重复len(set(sid)) len(sid)种子写重了会出现同学号判分时一个学号匹配到两个人整批成绩都不可信。三项检查加起来不到二十行代码但能挡掉九成以上的题目本身有问题投诉。4. 自动判分读取考生作答并逐题比对4.1 用 pandas 读取并归一化作答结果判分的第一步不是比对是把考生交上来的东西洗干净。机房里常见的脏数据有学号前后带空格、数字被存成浮点、列名被改了。下面这段负责把作答表拉齐到统一形状。import pandas as pd def load_answer(path): # dtype 强制学号为字符串避免 20240001 变成 20240001.0 df pd.read_excel(path, sheet_name成绩表, dtype{学号: str}) df.columns [str(c).strip() for c in df.columns] # 去掉列名里的空格 df[学号] df[学号].str.strip() # 去掉学号前后空格 df[姓名] df[姓名].str.strip() return dfsheet_name必须写死学生有可能自己加了新工作表不指定会读到空表。dtype里的映射是逐列生效的只对学号这一列做字符串强制其他列保持自动推断。columns归一化那行看着多余实际能救回大量列名后面跟了个空格导致匹配失败的卷子。4.2 数值型、文本型与公式型答案的判分差异答案形态判分方式风险点数值常量比对差值允许 1e-6 误差学生手敲结果、没写公式过程分丢失公式data_onlyFalse读原文判断是否以开头需同时读缓存值确认结果正确文本去空格、全角转半角后比对姓名中间多空格、中英文标点混用排序结果逐行比对整列顺序只排了部分区域顺序对但数据串行浮点比较不要用ROUND(...,2)算出来的 89.99 在二进制里可能是 89.9899999。统一用abs(a - b) 1e-6。文本比对前先做.replace( , ).replace( , )全角空格是学考里最隐蔽的失分点之一。4.3 用 python 查找 excel 中字符串定位错题判分要给出错在哪而不只是错了。用 openpyxl 遍历单元格找出含特定标记的位置就能生成逐题定位的错题报告。from openpyxl import load_workbook def find_text(path, sheet, needle): # data_onlyFalse 保留公式原文能看到学生写了什么公式 wb load_workbook(path, data_onlyFalse) ws wb[sheet] hits [] for row in ws.iter_rows(): # 遍历全部有值的单元格 for cell in row: if isinstance(cell.value, str) and needle in cell.value: hits.append((cell.coordinate, cell.value)) return hits # 例找出所有写了 IF 但条件区域不含 $ 的公式 for coord, val in find_text(张三_成绩表.xlsx, 成绩表, IF(): if $ not in val: print(f{coord} 缺少绝对引用: {val})iter_rows默认只遍历有数据的矩形区域不会扫到几百万个空单元格。isinstance判断必须有因为数字和 None 不支持in。这段同样适合检查公式里是否误用了相对引用把$缺失的行挑出来学生改起来有明确目标。4.4 批量判分并输出成绩单把所有卷子放进同一个目录跑一条命令出总表。python grade.py \ --answer-dir ./交卷 \ --key ./标准答案_成绩表.xlsx \ --out ./成绩单.xlsx \ --tolerance 1e-6--answer-dir指向收卷目录脚本用glob(*.xlsx)扫全部文件跳过以~$开头的 Excel 临时文件——这是机房收卷最容易混进来的垃圾。--key是教师端标准答案--out输出一张汇总表字段含学号、姓名、各题得分、总分、错题坐标。--tolerance控制数值容差默认 1e-6 足够。收卷阶段学生机常出现文件被占用无法读取脚本要对每个文件做 try/except读失败的在总表里标文件异常而不是直接崩掉整个批次。5. 从 Excel 到 PDF打印排版与复制粘贴疑难处理5.1 用 microsoft print to pdf 驱动导出可打印练习题Windows 自带的 Microsoft Print to PDF 是最省事的导出方式不需要装额外软件。导出前要把页面设定做对否则打印机分页会把一张成绩表切成七八页。操作顺序先在页面布局里把纸张设为 A4、方向设为横向再到缩放里选将所有列调整为一页接着进打印标题把顶端标题行设为$1:$1这样翻页后每页都有表头最后框选要打印的区域设成打印区域再 CtrlP 选 Microsoft Print to PDF。这套设置同样适用于在线练习场景——把练习题导出成 PDF 发给学生比直接发 xlsx 更安全学生改不动原始数据。要生成整套卷子的 PDF可以用 VBA 或 Python 的win32com批量调用ExportAsFixedFormat比手工一份份点快得多。5.2 pdf 转 word 与网页提取题目回填 excel 的注意点把别人现成的练习题 PDF 拿来做二次加工pdf 转 word 是常见路径但表格转过去之后列宽会乱、合并单元格会错位、数值往往变成文本格式。转换完必须回到 Excel 里做三件事全选数值区用分列或VALUE()还原成数字、检查学号是否变成科学计数法、核对每列的对应关系有没有串行。网页 PDF 提取也是同样的坑网页表格里的空单元格在 PDF 里会消失转回 Excel 后整行左移题面数据全错位。稳妥做法是提取后人工比对行数列数宁可多花十分钟也别把错位的数据发给学生。5.3 excel 无法复制粘贴时的排查顺序机房最高频的突发状况就是 excel 无法复制粘贴学生举手老师挨个看。按下面的顺序排查基本能覆盖常见原因。顺序现象处理动作1光标还在单元格里闪烁按 Esc 退出编辑状态再复制2整张表都动不了审阅里看是否开了工作表保护或共享工作簿撤销保护3只有这一台机器不行关闭截图、输入法等占用剪贴板的程序再试4换文件也一样用excel /safe安全模式启动定位冲突的 excel 加载项5以上都不行任务管理器结束所有 EXCEL.EXE 进程重启 Excel第 4 步是排查加载项的入口很多第三方插件会在启动时接管剪贴板安全模式下正常就说明是加载项的问题逐个禁用即可。第 5 步之前记得让学生先保存强行结束进程会丢未存内容。如果只有某个区域复制粘贴没反应检查该区域是否含合并单元格或者位于被保护的工作表里——这两种情况下 Excel 表面不报错只是默默拒绝粘贴。最后补一句收卷前统一让学生另存为一份副本再交能避免大量文件占用导致的读取失败。本文还有配套的精品资源点击获取