巧用Excel分列功能处理数据
今天,主要工作就是处理测试数据,统计汇总成图表来显示。先来说说要求,然后给出我在折腾这堆数据中遇到的问题以及解决方法。
问题要求:
格式说明: 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分列功能处理数据的更多相关文章
- Excel--数据分列功能
原文:http://www.ittribalwo.com/article/3963.html excel分列功能一:按照固定宽度进行数据拆分 情景: 如下图所示,在日常工作中,我们经常需要根据人员的身 ...
- Excel技巧--巧用分列功能整理日期格式
遇到这样混乱的日期列表,可以使用“分列”功能来整理: 1.选择该列,点击“数据”-->“分列”功能: 2.在对话框中的第1.2步都不用设置,到第3步选择“日期”格式: 4.完成后,再使用单元格格 ...
- 利用Aspose.Cells完成easyUI中DataGrid数据的Excel导出功能
我准备在项目中实现该功能之前,google发现大部分代码都是利用一般处理程序HttpHandler实现的服务器端数据的Excel导出,但是这样存在的问题是ashx读取的数据一般都是数据库中视图的数据, ...
- 个人永久性免费-Excel催化剂功能第100波-透视多行数据为多列数据结构
在数据处理过程中,大量的非预期格式结构需要作转换,有大家熟知的多维转一维(准确来说应该是交叉表结构的数据转二维表标准数据表结构),也同样有一些需要透视操作的数据源,此篇同样提供更便捷的方法实现此类数据 ...
- 个人永久性免费-Excel催化剂功能第91波-地图数据挖宝之行政区域信息实时下载(含经纬度)
移动互联网和O2O兴起的这十年时间里,由地图LBS功能衍生出一大堆的极高商业价值的数据及应用,地图相关的数据,也是数据分析过程中一个大宝藏,从此篇开始将带给大家一系列的地图相关的数据采集,满足数据分析 ...
- 个人永久性免费-Excel催化剂功能第66波-数据快速录入,预定义引用数据逐字提示
在前面好几波的功能中,为数据录入的规范性做了很大的改进,数据录入乃是数据应用之根,没有完整.干净的数据源,再往下游的所有数据应用场景都是空话.在目前IT化进程推进了20多年的现状,是否还仍有必要在Ex ...
- 个人永久性免费-Excel催化剂功能第20波-Excel与Sqlserver零门槛交互-数据上传篇
Excel作为众多数据存储的交换介质,在不同的系统内的数据很少可以很连贯地进行整合分析,一般的业务系统都会提供导出Excel作为标配功能供用户使用系统内生成的数据. 此时最大的问题是,Excel很维去 ...
- PHP的laravel框架后台实现数据导出excel的功能
要想在PHP后台实现excel导入导出功能,一种简单有效的方法就是使用phpexcel插件. 要使用phpexcel插件,首先需要下载composer,这个工具是专门用来管理项目中库之间的依赖关系的. ...
- 巧用Excel提高工作效率
程序员如何巧用Excel提高工作效率 主要讲解下Excel中VLOOKUP函数的使用,相比于上一篇中的内容,个人觉得这个相对高级一些. 1.使用背景 为什么会使用到这个函数呢,背景是这样的,有两个系统 ...
随机推荐
- oc-25-id类型,
/** id:万能指针 能够指向任何OC对象. id = NSObject *, id cat = [Cat new]; [cat jump]; NSObject:是所有类的父类,基类.可以指向任何O ...
- oc-14-对象方法调用类方法
Person.h #import <Foundation/Foundation.h> @interface Person : NSObject { @public int _age; fl ...
- 检测MYSQL不同步发邮件通知的脚本
脚本代码如下:#!/bin/bash ...
- kafka 简介
1. 概述 Kafka是Linkedin于2010年12月份开源的消息系统,它主要用于处理活跃的流式数据,使用scala编写.活跃的流式数据在web网站应用中非常常见,这些数据包括网站的pv.用户访 ...
- excel 批量替换换行符
在excel批量替换换行符操作步骤: 全选需要查找换行符的范围 CTRL+H调出查找和替换 在查找内容内输入"ctrl+enter"两个组合键 点击查找全部即可. 在excel中输 ...
- 如何成为apple开发者???
苹果开发者帐号申请流程如下 http://www.360doc.com/content/13/1029/12/11029609_325024387.shtml 苹果开发者账号分为 个人(individ ...
- oc语言复制视频文件
void copyFile() { NSString *home=NSHomeDirectory(); NSString *path=[NSString stringWithFormat:@" ...
- [Java] HashMap的用法
重点介绍HashMap.首先介绍一下什么是Map.在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value.在下文中会 ...
- 【MYSQL】常用命令备忘录
source 不接路径时,查找文件的路径是执行mysql命令时的路径 接路径时,使用路径+filename [root@wordpressserver mysql]# vi demo.mysql [r ...
- Error reading from file 解决办法
最近安装程序遇见这个问题: Error reading from file. 解决办法: 给这个程序添加权限: 添加SYSTEM的读写改..如果比较懒,直接全部允许. 然后Retry.