国产aaaa级全身裸体精油片_337p人体粉嫩久久久红粉影视_一区中文字幕在线观看_国产亚洲精品一区二区_欧美裸体男粗大1609_午夜亚洲激情电影av_黄色小说入口_日本精品久久久久中文字幕_少妇思春三a级_亚洲视频自拍偷拍

首頁(yè) > 化工知識(shí) > Excel中不確定列數(shù)的數(shù)據(jù)列快速翻轉(zhuǎn)

Excel中不確定列數(shù)的數(shù)據(jù)列快速翻轉(zhuǎn)

時(shí)間:2020-08-31 來(lái)源:編輯之譚 瀏覽:
在文本數(shù)據(jù)處理時(shí),采用Excel分列處理是慣用方法。最近,譚編對(duì)某寶網(wǎng)關(guān)于代寫論文網(wǎng)店及產(chǎn)品交易記錄進(jìn)行研究,統(tǒng)計(jì)“代寫”交易記錄大數(shù)據(jù),旨在研究學(xué)術(shù)不端亂象。其中抓取了4478個(gè)產(chǎn)品交易記錄,在對(duì)抓取的文本數(shù)據(jù)進(jìn)行處理時(shí),需要產(chǎn)品標(biāo)題、店鋪名、省、市這4個(gè)字段,遇到Excel分列的混亂問題,如圖1所示。

圖1 Excel分列混亂問題

分析文本數(shù)據(jù)的特征:每行數(shù)據(jù)分布的表列數(shù)目不確定;每行右邊3列均為店名、省、市。如果只有少數(shù)幾行數(shù)據(jù),在Excel中采用手動(dòng)調(diào)整對(duì)齊表列、合并店名標(biāo)題等操作,工作量不算什么,也沒必要大動(dòng)干戈編程處理。但是這里需要處理4478行數(shù)據(jù),因此需要采用簡(jiǎn)單的編程來(lái)實(shí)現(xiàn)對(duì)Excel表格數(shù)據(jù)中不確定列數(shù)的數(shù)據(jù)翻轉(zhuǎn)。

 

這里需要將右邊3列(店名、省、市)對(duì)稱翻轉(zhuǎn)到行首(市、省、店名),然后將剩余的表列數(shù)據(jù)合并為“產(chǎn)品標(biāo)題”字段。操作的示意圖如圖2所示。

圖2不確定列數(shù)的Excel表列對(duì)稱翻轉(zhuǎn)示意圖

 

編程環(huán)境

采用Asp專業(yè)調(diào)試工具.exe搭建本地電腦運(yùn)行Asp網(wǎng)頁(yè)的運(yùn)行環(huán)境。當(dāng)然在Excel中編寫VBA宏程序,也可以實(shí)現(xiàn),這里采用筆者熟悉的Asp編程。

 

編程算法

(1)將交易記錄信息表中的產(chǎn)品標(biāo)題列的所有數(shù)據(jù)(4478行)復(fù)制到taobao.txt中。

(2)逐行讀取taobao.txt文件中的每一行數(shù)據(jù),賦值到line變量中,采用split(line,”|”)分割每一行數(shù)據(jù),并保存到arr數(shù)組變量。

(3)利用for循環(huán),從數(shù)組變量的最后一個(gè)元素(下標(biāo)變量為ubound(arr))到第一個(gè),倒序遍歷arr數(shù)組讀取每個(gè)元素的值(字符串)。例如,某一行數(shù)據(jù)有a0,a1,a2,a3,a4等元素,從i=4到0讀取,即讀取順序?yàn)閍4,a3,a2,a1,a0。

(4)在for遍歷之前,設(shè)置一個(gè)計(jì)數(shù)器m=0,在for循環(huán)體內(nèi),每讀取一次數(shù)組元素,計(jì)數(shù)器m加1。判斷讀取第4個(gè)元素前,將讀取的元素值用“|”拼接字符串,在讀取第4個(gè)以后的元素值,采用直接拼接(合并單元格)。將拼接的字符串賦值給newline變量。

(5)每處理一行數(shù)據(jù)后,將新字符串newline逐行寫入taobao2.txt目標(biāo)文件中。

(6)從第(2)到第(5)步,設(shè)置while循環(huán)。循環(huán)條件是沒有達(dá)到文本末尾:

Dowhilenotf1.atEndofStream
……
Loop

(7)關(guān)閉文件的讀寫。

 

編程代碼

完整代碼如下,左右滑動(dòng)代碼可顯示全部。

 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專業(yè)調(diào)試工具.exe文件在同一個(gè)文件夾下。雙擊運(yùn)行“Asp專業(yè)調(diào)試工具.exe”,即可打開瀏覽器自動(dòng)執(zhí)行index.asp程序,程序執(zhí)行非??欤瑤缀鯚o(wú)察覺,在同一文件夾下,即可看見新生成了目標(biāo)文件taobao2.txt,其內(nèi)容如圖3B所示,可以看出,經(jīng)過25行簡(jiǎn)單的asp代碼,實(shí)現(xiàn)了對(duì)4478行文本數(shù)據(jù)的快速翻轉(zhuǎn)。

 
 

(A)處理前 (B)處理后

圖3 處理前后的文本數(shù)據(jù)(點(diǎn)擊圖片可放大)

 

 

Excel分列處理

全選復(fù)制taobao2.txt的文本內(nèi)容,在Excel中粘貼,然后采用“|”分列,即可得到如圖4所示的結(jié)果。

圖4 最終的Excel數(shù)據(jù)

 

后記

本文舉例處理“代寫”交易記錄大數(shù)據(jù),旨在研究學(xué)術(shù)不端亂象,希望大家不會(huì)被圖中的代寫產(chǎn)品信息吸引,譚編不希望本文成為誤導(dǎo)大家“不端”的誘因。如果您是“編輯之談”和“編輯之譚”的忠實(shí)粉絲,作為期刊編輯,譚編愿意給您的寫作和投稿提供建議。

 

譚編采用簡(jiǎn)單的26行程序代碼,實(shí)現(xiàn)了對(duì)Excel表中不確定列數(shù)的4478行表格數(shù)據(jù)的快速翻轉(zhuǎn)。您可能也會(huì)遇到類似的Excel表格問題,這篇文章可以提供思路。

版權(quán):如無(wú)特殊注明,文章轉(zhuǎn)載自網(wǎng)絡(luò),侵權(quán)請(qǐng)聯(lián)系cnmhg168#163.com刪除!文件均為網(wǎng)友上傳,僅供研究和學(xué)習(xí)使用,務(wù)必24小時(shí)內(nèi)刪除。
相關(guān)推薦