最近由于工作关系,深入的用了一阵excel,并遭遇和处理了一系列关于excel数据的问题。

其中最有趣的一个,就是一个无法vlookup的问题。

问题记录如下:

excel中直接打开csv文件,看到类似如下的数据表(为清晰,使用16进制显示):

00000000: 534e 2c44 4154 410d 0a41 092c 4461 7461  SN,DATA..A.,Data
00000010: 310d 0a31 3233 3435 3738 3930 3132 092c  1..12345789012.,
00000020: 4461 7461 340d 0a43 092c 4461 7461 330d  Data4..C.,Data3.
00000030: 0a                                       .

在另外一个数据表中,需要对SN号做关联操作。于是使用常用的vlookup进行关联,但是发现全部数据都只得到N/A:

SN   取值
A   #N/A
12345789012 #N/A
C   #N/A

在两个表里使用查询功能查询相应的sn,都可以查到。

于是使用sublime查看csv文件本身,发现这个csv中的sn号,后面统一附加了一个tab字符。

csv文件来自于一个软件系统,咨询研发,得到的答复是,sn里有一些号是纯数字,如果不加tab,会被excel显示为科学计数法,引发更多问题。

使用正则表达式移除掉全部tab之后,用excel直接打开,发现确实部分sn被显示为科学计数法,且无法恢复原始值。

经研究,发现excel对于此种情况,其实有处理方法,就是使用csv数据导入功能而不要直接打开csv,经实验,使用文本数据导入功能,并设定sn字段为文本,即可解决科学计数法问题,并且可以正确的vlookup。

由于太忙,研发团队拒绝对系统进行任何修改。同时,各种表格的数据来源非常复杂,大家基本都已经在基于这些excel数据在工作了。

因此,写了一段vba代码针对无法vlookup的excel文档的sn做了处理,解决了这些文档无法vlookup的问题:

Public Sub 去掉SN号两端的空格()' TODO:首先把字段设置成文本格式Dim Rng1 As RangeFor Each Rng1 In Range("A2:A9999")' 处理科学计数法问题On Error Resume NextIf CStr(Val(Rng1.Value)) = Rng1.Value ThenRng1.Value = "'" & Rng1.ValueEnd IfRng1.Value = Trim(Rng1.Value)Rng1.Value = Replace(Rng1.Value, vbTab, "")DoEventsNext
End Sub

使用的时候,需要修改range的范围,和sn的实际范围对应。

没有使用UsedRange.Rows.count之类的方法,是因为期间发现了很多人的很多表格,数据可能并不多,但rows.count都是一个巨大的数字。(一般这些数据也都是来自于某软件系统导出的数据,看来非常不靠谱),解决这个问题是另外一个话题了,暂且不表。

有一个花絮是,曾经在一个同事的表格,发现了部分匹配成XX的值,实际是因为sn匹配失败,导致得到了其他结果。我深深的怀疑,在此前的工作中,有多少数据是刚好经过了这个坑被计算出来的,这又引发了哪些连锁的数据错误,而这些数据如果刚好被用于计算公司的成本收入或者其他重要的用途,导致的判断错误最终会引发多大的后果。

Excel无法vlookup事件相关推荐

  1. 【图文】Excel中vlookup函数的使用方法

    今天统计数据,用到了Excel中vlookup函数,第一次使用当然少不了百度,经过反复研究后,算是解决了问题,现整理成文档. 一.实现效果 Sheet1   Sheet2       注:上图中she ...

  2. EXCEL的VLOOKUP匹配失败是什么原因呢

    EXCEL的VLOOKUP匹配失败是什么原因呢 原因 解决办法 原因 单元格格式问题 解决办法 将目标列的单元格式.待匹配列的单元格格式.以及待填充列单元格格式,统一设置为"常规" ...

  3. excel的vlookup如果是空白就不显示0,而是显示空白

    excel的vlookup如果是空白就显示0的问题 解决方法: 借鉴一下以下格式即可,把VLOOKUP替换成你的,加&""就是解决0的问题:http://yayihouse ...

  4. Excel表格vlookup函数

    Excel表格vlookup函数 一.基础用法 1.精确匹配(精确查找) 2.近似匹配(区间查找) 3.反向查找 4.多条件查找 二.进阶用法(公式嵌套) 1.屏蔽错误值(IFERROR) 2.关键字 ...

  5. 计算机一级vlookup函数的使用方法,电子档Excel中vlookup函数的使用方法(图解详细说明)...

    摘要: 在平时的工作中,相信很多问题在学校学习的难以用在工作当中,但是没学习到的知识点倒是出现在了我们的工作中,本文我将给大家以生动的图解(偷笑)加说明的方式详细介绍Excel中vlookup函数的使 ...

  6. 计算机中函数vlookup怎么用,教您使用excel函数vlookup

    excel函数vlookup在工作中等到了广泛应用,能够用来核对数据,对表于表之间的数据快速查找以及核对起到很重要的作用,在这里小编给大家分享一些Vlookup函数的基础操作,大家可以学习一下. 我们 ...

  7. 【Excel】excel使用VLOOKUP+IF实现多列匹配查找

    excel中vlookup函数为精准匹配查找,但此函数局限于单列的精准匹配,如果需求是多列条件进行匹配,怎么通过vlookup函数实现呢? 思路:通过if函数将多列拼成一列再通过vlookup函数进行 ...

  8. Excel中VLOOKUP函数简易使用——精确匹配或近似匹配数据

    一.问题描述 在我们使用Excel的过程中,会遇到已经有一份完整的信息记录表,而业务经常需要从完整记录表中获取对应内容到业务表中,这时我们又不希望使用手动查找办法一个个查找匹配,而是希望能够一下就能精 ...

  9. Excel中VLOOKUP函数的详细用法(灰常有用,求加精!求加精!)

    好久没有写博客了,这篇不关乎编程开发(以后的每一篇可能都不会了),记录下昨天晚上刚跟网易Excel女王学会的一招VLOOUP函数的用法吧,用法不难,自己又摸索着把"女王"教的知识扩 ...

最新文章

  1. VMware 克隆Linux后找不到eth0
  2. 一行代码,得到最强时序基线!
  3. Android手机在获取root权限下的抓包过程
  4. searchsploit漏洞查找工具使用指南(exploit-db.com 离线工具 exploitdb)
  5. JBoss Eclipse IDE
  6. 在Windows 2008 R2下部署SQL Server 2008 R2 群集(一)
  7. LInux--进程间通信
  8. pg高性能服务器,Pgpool-II 负载均衡对PG的性能影响
  9. 【CodeForces - 205B 】Little Elephant and Sorting (思维)
  10. C/C++ putchar函数 - C语言零基础入门教程
  11. 互联网的高薪是否可持续,20万年薪的公务员到底香不香
  12. zoom怎么解除静音_如何召开一场Zoom视频会议
  13. 【18】processing-声音(中文)
  14. 【新浪云共享型MYSQL】Navicat连接新浪云共享型MYSQL附JAVA/PHP配置文件)
  15. VB6下如何获得硬盘序列号
  16. 罗技m330更换接收器(通过重新对码的方式)
  17. mysql中用于删除数据的是什么意思_数据库删除语句delete有什么用?
  18. chrome扩展程序_如何实施Chrome扩展程序
  19. ASPICE_SWE.1_01_01_QA
  20. 计算机英语 多余的,C盘都是英文不敢动手?只要删除这4个文件夹,电脑空间多出10个G!...

热门文章

  1. 一文搞懂ECU休眠唤醒之利器-TJA1145
  2. 链表实现学生信息管理系统
  3. 5G安全的全球统一认证体系和标准演进
  4. 如何在Unity编辑器中添加你自己的工具
  5. Java实现 LeetCode 609 在系统中查找重复文件(阅读理解+暴力大法)
  6. zabbix 5.0监控客户端
  7. 余弦定理对比文本相似度实现查重
  8. javascript 实现blob加密视频(html video),服务端为php
  9. Excel文件导入导出操作
  10. python抓取股票竞价数据_Python 抓取新浪财经股票数据