Technorati 标签: 数据处理

     今天,主要工作就是处理测试数据,统计汇总成图表来显示。先来说说要求,然后给出我在折腾这堆数据中遇到的问题以及解决方法。

  问题要求:

     

格式说明: A是代表时间,低位字节在前,高位字节在后,十六进制格式。B代表电压值,低位字节在前,高位字节在后,十六进制格式,A和B后面,带4个无效数据和6个字节的0xFF,这种格式的数据排列都在一行里,一行塞满后然后继续填充下一行,如此循环下去,一直填满到30K的文本文件。

要求: 顺序排列时间值和电压值,编排出随着时间变化的电压曲线。

 

解决思路:

    一开始接到这个问题,脑子里想着用shell 脚本来处理,这里面涉及到文本断行断句、进制和数据转换、画图等等操作。光用shell是不可能完成了,因此这样的文本文件有4个,都是这么大小的,肯定要部分程序来处理。下面介绍我是如何处理这个问题的。

     1. 由于每个单元数据的列数是固定的,6个字节有效数据加10个字节的无效数据,构成一个数据单元,这些单元顺序的排成一行,首先要做的是把他们分开,最好分成每一行只有一个数据单元,这样就好便于后续处理。我在这里使用的方法是:利用Editplus的自动换行功能来实现的,具体操作如下,首先选择Editplus的自动换行,结果如下:

这不是我想要的结果,默认的自动换行是以每行80个字符为标准,打开自动换行选项,有如下配置:

Editplus里面关于自动换行有两种选项,一种是根据显示窗口的大小来决定每行的字符数,另一种是固定每行字符数。我这边单元数据的列数是固定的,因此,选择每行固定字符数,设置后,结果如下:

第二种方法:利用Windows自带的记事本,开启自动换行功能,缩短文本框的宽度,就可以调整自动换行的列数。效果如下:

恩,这样看数据,觉的工整多了,但是随之的问题也来了,本来,做到这一步,选择Editplus的列模式(Alt+C激活),就可以直接划去前6个有效字节,然后整体选出拷贝到Excel中的,但是Editplus给出如下提示:

 

哎,这条路堵住了,然后仔细看看上面的行号,在列模式下,第一行中有4个单元数据,第二行有2条单元数据,第三行有6行单元数据。这下也不好做了,有难度,动动脑袋,又有了如下动作:

因为这里面的数据有一些无效数据,采用列模式,可以根据一些条件来事先过滤一些无效数据,然后把一些数据拷贝到Excel里面去,哎呀:

又出现这样的结果。没办法了,只能手动分行,在每行的结尾,按住Alt+Enter来手动划分行,按照上面的列结果,手动分行后如下:

每行单元格中,有多行数据,现在是要求把每行前6个字节单独提取出来?怎么提取?在这里卡了许久,想想列模式,恩,有了。

再将上面的数据,拷贝会Editplus,然后使用列模式,选择整体的前6个字节,结果如下:

 

将此字段拷贝到Excel中,结果如下:

 

恩,这下好了,每行只含有一行的单位数据,现在就好办了,利用Excel的数据分列功能:

将每行的数据单独划分为一列,结果如下:

然后利用Excel的16进制转10进制的函数,来计算时间值和电压值,结果以10进制表示。

这里,要注意一点,

我就是选了这个选项,然后Excel函数死死的算不出来。使用到公式为:=HEX2DEC(B3)*256+HEX2DEC(A3) 最后算的结果如下:

想直接用电压值和时间值这两列数据作为源数据来画图,结果如下:

出现这个原因是有一些混杂无效数据写进去了,不要在意这些细节,经过初步的整理,优化一下图表的纵坐标的初始值,

最后得到的结果如下:

 

 

总结一下:上述的操作中,除了在Excel中手动分行之外,用到了Editplus的列操作,Excel的分列、函数、画图等,效率比起收工筛选强多了。

-----------------------------------------------恩--------------------------------------------------------

打完收工!回家吃饭。。。

巧用Excel分列功能处理数据的更多相关文章

  1. Excel--数据分列功能

    原文:http://www.ittribalwo.com/article/3963.html excel分列功能一:按照固定宽度进行数据拆分 情景: 如下图所示,在日常工作中,我们经常需要根据人员的身 ...

  2. Excel技巧--巧用分列功能整理日期格式

    遇到这样混乱的日期列表,可以使用“分列”功能来整理: 1.选择该列,点击“数据”-->“分列”功能: 2.在对话框中的第1.2步都不用设置,到第3步选择“日期”格式: 4.完成后,再使用单元格格 ...

  3. 利用Aspose.Cells完成easyUI中DataGrid数据的Excel导出功能

    我准备在项目中实现该功能之前,google发现大部分代码都是利用一般处理程序HttpHandler实现的服务器端数据的Excel导出,但是这样存在的问题是ashx读取的数据一般都是数据库中视图的数据, ...

  4. 个人永久性免费-Excel催化剂功能第100波-透视多行数据为多列数据结构

    在数据处理过程中,大量的非预期格式结构需要作转换,有大家熟知的多维转一维(准确来说应该是交叉表结构的数据转二维表标准数据表结构),也同样有一些需要透视操作的数据源,此篇同样提供更便捷的方法实现此类数据 ...

  5. 个人永久性免费-Excel催化剂功能第91波-地图数据挖宝之行政区域信息实时下载(含经纬度)

    移动互联网和O2O兴起的这十年时间里,由地图LBS功能衍生出一大堆的极高商业价值的数据及应用,地图相关的数据,也是数据分析过程中一个大宝藏,从此篇开始将带给大家一系列的地图相关的数据采集,满足数据分析 ...

  6. 个人永久性免费-Excel催化剂功能第66波-数据快速录入,预定义引用数据逐字提示

    在前面好几波的功能中,为数据录入的规范性做了很大的改进,数据录入乃是数据应用之根,没有完整.干净的数据源,再往下游的所有数据应用场景都是空话.在目前IT化进程推进了20多年的现状,是否还仍有必要在Ex ...

  7. 个人永久性免费-Excel催化剂功能第20波-Excel与Sqlserver零门槛交互-数据上传篇

    Excel作为众多数据存储的交换介质,在不同的系统内的数据很少可以很连贯地进行整合分析,一般的业务系统都会提供导出Excel作为标配功能供用户使用系统内生成的数据. 此时最大的问题是,Excel很维去 ...

  8. PHP的laravel框架后台实现数据导出excel的功能

    要想在PHP后台实现excel导入导出功能,一种简单有效的方法就是使用phpexcel插件. 要使用phpexcel插件,首先需要下载composer,这个工具是专门用来管理项目中库之间的依赖关系的. ...

  9. 巧用Excel提高工作效率

    程序员如何巧用Excel提高工作效率 主要讲解下Excel中VLOOKUP函数的使用,相比于上一篇中的内容,个人觉得这个相对高级一些. 1.使用背景 为什么会使用到这个函数呢,背景是这样的,有两个系统 ...

随机推荐

  1. 0c-34-自动释放池

    #import <Foundation/Foundation.h> #import "Person.h" Person * creatPerson() { Person ...

  2. Linux 必掌握的 SQL 命令

    数据库和 SQL 在本系列教程中,目前我们使用平面文本文件来存储数据.平面文本文件可能适合相对较少的数据,但它们对存储大量数据或查询该数据没有多大帮助.多年来,为该目的开发了多种数据库,包括分层和网络 ...

  3. SPA初试-1

    本篇内容是在上一次的基础上进行改进,对状态的定义进行了修改,一个状态的定义如下: function state(stateName, template, templateUrl) { this.sta ...

  4. 图解java8 stream 的几个转换方法

    图片摘自:http://ifeve.com/stream/ 1.distinct 对于stream中包含的元素进行去重复操作(去重复依赖元素的equals方法) 2.filter 对于stream中包 ...

  5. 快递鸟API接口调用代码示例(免费不限量)

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...

  6. Android进阶笔记17:3种JSON解析工具(org.json、fastjson、gson)

    一. 目前解析json有三种工具:org.json(Java常用的解析),fastjson(阿里巴巴工程师开发的),Gson(Google官网出的),其中解析速度最快的是Gson. 3种json工具下 ...

  7. js中的命名规范

    在实际开发中规范的命名,不仅方便自己查看,理解变量的实际意义,而且在团队开发中也能提高开发效率. 下面将介绍javascript中的变量的命名规范: 1)首先,变量名要有实际意义,不建议使用单个的字母 ...

  8. 【阿里云产品公测】云引擎ACE java DEMO 直接部署体验

    作者:阿里云用户啊里新人 本来想根据前几个哥们的公测文章,体验一下,发现他妈的都是php的一下我就,,好吧还有群,群里高手如云,,看着文档(其实文档写的很清晰了!只不过我太懒了!)   哈哈,所以群里 ...

  9. 免费公测:RDS只读实例

    免费公测:RDS只读实例 ​ 简要介绍 在对数据库有少量写请求,但有大量的读请求的应用场景下,单个实例可能无法抵抗读取压力, 甚至对主流程业务产生影响.为了实现读取能力的弹性扩展,分担数据库压力,阿里 ...

  10. socket总结

    Socket简介 1,socket是什么? 2,socket的作用 3,socket怎么用 4,socket的扩展 ——————————————————- socket是什么? Socket这个名词现 ...