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. BinaryWriter和BinaryReader用法

      C#的FileStream类提供了最原始的字节级上的文件读写功能,但我们习惯于对字符串操作,于是StreamWriter和 StreamReader类增强了FileStream,它让我们在字符串级 ...

  2. centos6.4使用man查找命令时,报错No manual entry for xxxx

    前提:安装man的命令 yum -y install man 使用man报错 [root@localhost objs]# man fcntlNo manual entry for fcntl[roo ...

  3. Java 使用 Redis

      安装 开始在 Java 中使用 Redis 前, 我们需要确保已经安装了 redis 服务及 Java redis 驱动,且你的机器上能正常使用 Java. Java的安装配置可以参考我们的 Ja ...

  4. 向linux内核版本号添加字符/为何有时会自动添加“+”号

    转载:http://blog.csdn.net/adaptiver/article/details/7225980 1.   引子 编译2.6.35.7 kernel版本的时候发现,“2.6.35.7 ...

  5. LeetCode24 Swap Nodes in Pairs

    题意: Given a linked list, swap every two adjacent nodes and return its head. For example,Given 1-> ...

  6. selenium python 定位一组对象

    为什么定位一组对象? 定位一组对象的思想    在定位一组对象的过程中我们如何实现?以前的都是通过具体的对象定位,那么定位一组我们就需要通过css来定位   在单个定位对象中使用的是find_elem ...

  7. iOS retain、strong、weak、assign

    iOS retain.strong.weak.assign strong与weak是由ARC新引入的对象变量属性xcode 4.2(ios sdk4.3和以下版本)和之前的版本使用的是retain和a ...

  8. 【阿里云产品公测】Opensearch使用体验和评测

    作者:阿里云用户outofmemory 昨天晚上收到了阿里云发的邮件,Open search可以申请公测了,于是迫不及待申请了测试,审核人员很高效,过了不到俩小时给批下来了.  很开心,于是趁今天是周 ...

  9. 【阿里云产品公测】高大上的搜索服务OpenSearch,你值得拥有!

    [阿里云产品公测]高大上的搜索服务OpenSearch,你值得拥有! 作者:阿里云用户trcher ​ 一.前言: 在OpenSearch没出来之前,就一直想给网站做个搜索功能,虽然网站本身自带搜索功 ...

  10. Git 暂存区

    可以用 git log 查看提交日志(附加的 --stat 参数可以看到每次提交的文件变更统计). $ cd /path/to/my/workspace/demo $ git log --stat 如 ...