首页 > 化工知识 > Excel中不确定列数的数据列快速翻转

Excel中不确定列数的数据列快速翻转

时间:2020-08-31 来源:编辑之谭 浏览:
在文本数据处理时,采用Excel分列处理是惯用方法。最近,谭编对某宝网关于代写论文网店及产品交易记录进行研究,统计“代写”交易记录大数据,旨在研究学术不端乱象。其中抓取了4478个产品交易记录,在对抓取的文本数据进行处理时,需要产品标题、店铺名、省、市这4个字段,遇到Excel分列的混乱问题,如图1所示。

图1 Excel分列混乱问题

分析文本数据的特征:每行数据分布的表列数目不确定;每行右边3列均为店名、省、市。如果只有少数几行数据,在Excel中采用手动调整对齐表列、合并店名标题等操作,工作量不算什么,也没必要大动干戈编程处理。但是这里需要处理4478行数据,因此需要采用简单的编程来实现对Excel表格数据中不确定列数的数据翻转。

 

这里需要将右边3列(店名、省、市)对称翻转到行首(市、省、店名),然后将剩余的表列数据合并为“产品标题”字段。操作的示意图如图2所示。

图2不确定列数的Excel表列对称翻转示意图

 

编程环境

采用Asp专业调试工具.exe搭建本地电脑运行Asp网页的运行环境。当然在Excel中编写VBA宏程序,也可以实现,这里采用笔者熟悉的Asp编程。

 

编程算法

(1)将交易记录信息表中的产品标题列的所有数据(4478行)复制到taobao.txt中。

(2)逐行读取taobao.txt文件中的每一行数据,赋值到line变量中,采用split(line,”|”)分割每一行数据,并保存到arr数组变量。

(3)利用for循环,从数组变量的最后一个元素(下标变量为ubound(arr))到第一个,倒序遍历arr数组读取每个元素的值(字符串)。例如,某一行数据有a0,a1,a2,a3,a4等元素,从i=4到0读取,即读取顺序为a4,a3,a2,a1,a0。

(4)在for遍历之前,设置一个计数器m=0,在for循环体内,每读取一次数组元素,计数器m加1。判断读取第4个元素前,将读取的元素值用“|”拼接字符串,在读取第4个以后的元素值,采用直接拼接(合并单元格)。将拼接的字符串赋值给newline变量。

(5)每处理一行数据后,将新字符串newline逐行写入taobao2.txt目标文件中。

(6)从第(2)到第(5)步,设置while循环。循环条件是没有达到文本末尾:

Dowhilenotf1.atEndofStream
……
Loop

(7)关闭文件的读写。

 

编程代码

完整代码如下,左右滑动代码可显示全部。

 1setfs=server.createobject("scripting.filesystemobject")
 2file=server.mappath("taobao.txt")'读取的文件名
 3setf1=fs.opentextfile(file,1,true)'读取方式
 4filename=Server.MapPath("taobao2.txt")'写入的文件名
 5Setf2=fs.OpenTextFile(filename,8,true,0)'写入方式
 6Dowhilenotf1.atendofstream
 7line=f1.readline
 8arr=Split(line,"|")
 9newline=""
10m=0
11Fori=ubound(arr)To0Step-1
12m=m+1
13Ifm<5then
14newline=newline+"|"+arr(i)
15Else
16newline=newline+arr(i)
17Endif
18Next
19f2.writeline(newline)
20Loop
21Response.write"Ok"
22f1.close()
23Setf1=Nothing
24f2.close
25Setf2=nothing
26Setfs=nothing

 

将Asp程序保存在index.asp文件中,与Asp专业调试工具.exe文件在同一个文件夹下。双击运行“Asp专业调试工具.exe”,即可打开浏览器自动执行index.asp程序,程序执行非常快,几乎无察觉,在同一文件夹下,即可看见新生成了目标文件taobao2.txt,其内容如图3B所示,可以看出,经过25行简单的asp代码,实现了对4478行文本数据的快速翻转。

 
 

(A)处理前 (B)处理后

图3 处理前后的文本数据(点击图片可放大)

 

 

Excel分列处理

全选复制taobao2.txt的文本内容,在Excel中粘贴,然后采用“|”分列,即可得到如图4所示的结果。

图4 最终的Excel数据

 

后记

本文举例处理“代写”交易记录大数据,旨在研究学术不端乱象,希望大家不会被图中的代写产品信息吸引,谭编不希望本文成为误导大家“不端”的诱因。如果您是“编辑之谈”和“编辑之谭”的忠实粉丝,作为期刊编辑,谭编愿意给您的写作和投稿提供建议。

 

谭编采用简单的26行程序代码,实现了对Excel表中不确定列数的4478行表格数据的快速翻转。您可能也会遇到类似的Excel表格问题,这篇文章可以提供思路。

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐