初级代码游戏的专栏介绍与文章目录-CSDN博客
(注:这是以前给秘书写的作业指导书,用来处理两个表格中哪些人存在、哪些人不存在。看起来当时使用的access版本是2016。access是微软office套件中的一个软件,存在于家庭版,个人版并不包括。access是个奇怪的存在:没什么新增用户,但有一批死忠足以维持它的存在)
表格比对作业指导书
使用access对excel表格数据进行比对
1 目标
比较不同的excel表格的数据,找出两个表的数据差异。
根据相同关键字合并两张表的数据。
2 步骤
序号 | 步骤 | 要点 |
1 | 新建access数据库 | |
2 | 整理第一张excel表格 | 另存一份,删去标题、汇总和附加的东西 |
3 | 导入第一张excel表格 | |
4 | 检查导入结果 | 数据量、字段内容是否正确 |
5 | 导入第二张excel表格 | 重复2、3、4步 |
6 | 设计查询 | |
7 | 运行查询 | |
8 | 保存结果到excel |
3 详解
3.1 新建access数据库
在桌面点击右键-》【新建】-》【Microsoft Access Database】
3.2 整理excel表格
首先将原始文件复制一份,在副本上操作以免破坏原始数据。
打开副本excel
删除不规范的内容:
标题行
汇总行
表格以外的附加内容
只保留表格列头和数据
如果没有列头加上列头
如有折叠取消折叠
如有太多不需要的列可以删除
保存并关闭副本
3.3 导入excel表格
打开access文件
选择【外部数据】-》【新数据源】-》【从文件】-》【Excel】
选择整理好的excel副本,选项为“将源数据导入到当前数据库的新表中”
点击确定进入下一步
选择要导入的工作表
点击下一步继续
选中第一行包含列标题
点击下一步继续
选择每个列的数据类型,由于excel表格的随意性,建议选择“短文本”以保持数据的原始状态。
注意:默认识别为数值、日期类型的可能会发生转换错误或因为精度而改变数值!
确认无误再点击下一步继续
选择“让Access添加主键”(因为excel表格经常有各种重复和错误)
点击下一步继续
输入表名
点击完成
点关闭结束向导
3.4 检查结果
在access中打开刚才导入的表
与excel的数据进行比对:
记录数是否一致
每个字段是否正确,特别是长数字串
3.5 导入第二张表
重复第一张表的步骤
3.6 设计查询
在access中点击【创建】-》【查询设计】
按住ctrl键选中要比对的两张表
点击添加
点击关闭
用鼠标拖动来建立一个关联关系,关联关系是两个表中要比对的列
拖动完成后两个列之间出现一条连接线
小心地在连接线上点击鼠标右键,注意,线很细,不容易选中
点击【连接属性】
确认两个表和列无误
连接属性下面有三个选项
- 选择出两个表都有的行,只在一张表有的行不要
- 第一张表的全部显示,这样可以找出哪些在第二张表里面没有
- 第二张表的全部显示,这样可以找出哪些在第一张表里面没有
注意,如果想要两张表的数据都显示,只能做两个查询,分别选择2、3
点确定关闭
然后在下部选择要显示的列
下拉列表中列出了所有的列,Sheet1.*代表Shee1的所有列,选择两个表的所有列或者根据需要选择特定的列,为了比对方便可以把重要的列放在前面
保存查询,在查询的标签上点击右键保存,然后关闭
3.7 执行查询
在access左侧双击查询名称
获得查询结果
显示出了Sheet1的所有数据,Sheet2则只显示col1和列1相同的数据
想知道哪些数据没有匹配上,在列头上点击向下的三角
选择排序,这样就可以把空白列排在最前或最后
3.8 保存结果到excel
在access左边查询名称上点右键
3.9 忽略空格
如果文本列包含多余的空格,则需要修改sql语句来忽略空格
例如,一张表的数据为“aaa”,另一张表为“ aaa”,前面多了一个空格,比较的时候会被认为不相同,这就不能获得想要的结果,必须修改查询来解决
在查询视图中的空白处点击右键,选择【SQL视图】
直接修改SQL语句,对需要忽略空格的列增加trim
Trim()函数的功能为删除数据两边的空白
注意,修改后的SQL可能不再为设计视图所支持