2.1 TXT文件中的数据,如何批量导入Excel
在实际工作中,很多平台和系统导出的数据都是TXT格式的,那么我们就从文本文件数据的导入开始介绍吧。
为了能游刃有余地应对各种情况,下面结合4个案例展开介绍。
2.1.1 常规文本文件数据的导入
需要导入的文本文件如图2-1所示。
图2-1
要在Excel中导入文本文件中的数据,有两种方法,一种是利用文本导入工具,另一种是借助Power Query工具,前者是Excel各个版本通用的方法,后者是Excel 2016、Excel 2019和Office 365版本的内置功能,如果使用的是Excel 2013或Excel 2010,需要从微软公司官网下载并安装Power Query插件。
下面就这两种方法,分别展开介绍。
■ 方法一:利用文本导入工具导入
在Excel 2019版本中,文本导入工具位于“数据”选项卡下面的“获取外部数据”组中,如图2-2所示。我们可以调用此工具进行文本数据的导入,方法如下。
图2-2
01 打开要放置文本数据的Excel工作簿,单击A1单元格,然后单击“数据”选项卡下的“自文本”按钮,弹出“导入文本文件”对话框,选择文本文件所在位置,单击“导入”按钮,如图2-3所示。
图2-3
02 在文本导入向导的第1步中,按图2-4所示步骤操作。
图2-4
03 进入文本导入向导的第2步,按图2-5所示步骤操作。
图2-5
04 进入文本导入向导的第3步,按图2-6所示步骤操作。
图2-6
05 完成文本导入的操作后,设置数据的放置位置,如图2-7所示。
图2-7
06 将数据导入Excel后的效果如图2-8所示。
图2-8
■ 方法二:借助Power Query工具导入。
01 单击“数据”选项卡下的“新建查询”按钮→“从文件”→“从文本”,如图2-9所示。
图2-9
02 在弹出的对话框中选择要导入的文本文件所在位置,单击“打开”按钮。
03 在弹出的Power Query导入界面中,按图2-10所示步骤操作,加载数据。
图2-10
04 加载数据后的效果如图2-11所示。
图2-11
你会发现,Excel默认将数据创建为超级表而非普通区域。
虽然以上两种方法都可以导入文本文件中的数据,但是显然方法二(借助Power Query导入数据)更加快捷。
不仅如此,当文本文件中的数据变更或向其中追加新的数据时,使用方法二导入Excel中的结果还支持同步更新,仅需单击“刷新”按钮即可,如图2-12所示。
图2-12
小结
推荐使用Excel 2016、Excel 2019或Office 365版本的用户优先使用Power Query导入文本文件中的数据,低版本用户使用方法一导入数据。
2.1.2 身份证号码等长文本数据的导入
除了常规的数据,实际工作中还可能遇到一些特殊数据,如身份证号码或银行账号等位数较多的数字,这时如果还按照上一小节介绍的步骤导入,会导致部分数据丢失。
下面结合一个案例说明关键步骤的设置方法。
现在有大量18位数字的身份证号码需要导入Excel,由于篇幅有限,仅展示前10行数据,如图2-13所示(已对身份证号码进行脱敏处理)。
由于身份证号码为18位数字,使用常规方法进行导入时,Excel默认只保留15位数字,这样会导致所有身份证号码的后3位数字变为0,如图2-14所示。
图2-13
图2-14
为了避免这种情况的发生,需要在导入数据时指定身份证号码列按文本格式导入,下面分两种方法介绍关键的设置步骤。
■ 方法一:利用文本导入工具导入
01 参照2.1.1小节图2-3~图2-6所示的操作,在文本导入向导第3步对应的对话框中选中身份证号码所在的列,将其设置为文本格式,单击“完成”按钮,如图2-15所示。
图2-15
02 这样设置后才能完整地导入身份证号码,如图2-16所示。
图2-16
■ 方法二:借助Po wer Query工具导入
01 参照2.1.1小节图2-9所示的操作,进入Power Query导入界面后,可见身份证号码列的数字变为科学记数法显示,所以这时不能直接单击“加载”按钮,而要单击“转换数据”按钮,如图2-17所示。
图2-17
02 进入Power Query编辑器后,界面如图2-18所示。
图2-18
03 选中身份证号码所在的列,将其转换为文本格式,如图2-19所示。
图2-19
04 在弹出的对话框中单击“替换当前转换”按钮,如图2-20所示。
图2-20
05 转换成功后,即可完整显示18位身份证号码,单击“关闭并上载”按钮,将Power Query中的转换结果导入Excel中,如图2-21所示。
06 将数据导入Excel中的结果如图2-22所示。
图2-21
图2-22
Excel中的这个结果同样也是支持跟随数据源刷新的,当文本文件中的数据源变动后,在Excel中单击“设计”选项卡下的“刷新”按钮即可同步更新。
2.1.3 从十几个文本字段中删除部分字段再导入Excel
前面两个案例都是将文本文件中所有字段数据导入Excel,实际工作中有时我们只需要数据中的一部分字段,所以可以从数据中删除部分字段再导入。
原始文本文件如图2-23所示。其中的“退款额”和“退货量”无须导入Excel。
图2-23
下面依然分两种方法展开介绍。
■ 方法一:利用文本导入工具导入
由于前面已经介绍过文本导入工具,所以这里重复的步骤不赘述。
01 参照2.1.1小节图2-3~图2-6所示的操作,在文本导入向导第3步对应的对话框中,依次选中无须导入的字段所在的列,选中“不导入此列(跳过)”单选项,单击“完成”按钮,如图2-24所示。
图2-24
02 这样即可忽略无须导入的字段,将数据导入Excel中,如图2-25所示。
图2-25
■ 方法二:借助Power Query工具导入
01 在“数据”选项卡下单击“从文本/CSV”按钮,将文本文件中的数据导入Power Query。在Power Query导入界面单击“转换数据”按钮,如图2-26所示。
图2-26
02 在Power Query编辑器中,按住<Ctrl>键不松开并依次选中无须导入的两列,单击“删除列”按钮,如图2-27所示。
图2-27
03 单击“关闭并上载”按钮将Power Query中的转换结果导入Excel中,如图2-28所示。
图2-28
04 Excel中的结果如图2-29所示。
图2-29
2.1.4 从字段中选择性导入数据
当文本文件中需要删除的字段太多时,我们可以仅选择需要导入的字段进行导入。
原始文件中包含几十列数据,如图2-30所示,仅需导入前面的从“日期”至“转化率”的10个字段,后面的几十个字段数据无须导入。
图2-30
下面依然分两种方法展开介绍。
■ 方法一:利用文本导入工具导入
01 参照2.1.1小节图2-3~图2-6所示的操作,在文本导入向导第3步对应的对话框中(如图2-31所示),先单击“退款额”所在的列,再按住鼠标左键不松开并向右拖动底部的滚动条直至最后一列。
图2-31
02 按住<Shift>键不松开并单击最后一列(“星期”字段所在的列),目的是选中从“退款额”至“星期”的连续几十列,然后选中“不导入此列(跳过)”单选项,单击“完成”按钮,如图2-32所示。
图2-32
03 这样即可忽略无须导入的几十列,仅导入有效数据,如图2-33所示。
图2-33
■ 方法二:借助Power Query工具导入
01 参照2. 1.2小节图2-9、图2-10所示的操作,将数据导入Power Query编辑器后,按住<Shift>键不松开并依次单击“日期”列和“转化率”列,目的是选中这些需要导入的连续多列数据,然后单击“删除列”按钮的下半部分,在弹出的下拉菜单中选择“删除其他列”,如图2-34所示。
图2-34
02 在Power Query中转换得到想要的结果后,单击“关闭并上载”按钮,如图2-35所示。
图2-35
03 Excel中的效果如图2-36所示。
当然,借助Power Query导入的这些数据,可以借助“刷新”功能使之与数据源保持同步更新,这也是使用Power Query的极大优势所在。
图2-36