错误原因

这一个错误的起源于在匹配字符串是否相等时出现#Value错误,如下图黄色标注的部分。在Excel中提示的错误是 公式中所用的某个值是错误的数据类型(a value used in the formula is of the wrong type),导致这一个错误的原因是匹配的字符串超过了255个字符。应该是Excel中vlookup函数中要求的查找值要求为短字符串(少于255个字符串),从而出现数据类型错误的报错。

解决办法

解决办法为使用lookup函数:

=LOOKUP(1,0/(A:A=J2),A:A)
#=LOOKUP(1,0/(查找区域=值),查找区域)

其中J2就是要查找/匹配的值,对应A:A为要匹配查找的区域

函数解析

首先是lookup函数。lookup函数用于在查找区域中查找给定的值,但LOOKUP函数使用的是二分法查找,也就是模糊匹配,需要对数据排序后才能得到正确的精确匹配值。如果不进行排序同时想要精确匹配的话精可以使用这一个衍生出来的公式:

=LOOKUP(1,0/(查找范围=查找值),结果范围)

关于这个公式中的1和 0/(查找范围=查找值) 的含义,1就是要查找的值,而0/(查找范围=查找值)用于改变条件,不是直接查找我们需要的值,而是先根据 (查找范围=查找值) 得到的一组逻辑值Ture/False,注意这里只有一个TRUE,也就是我们要找的值。接下来用0除以这些逻辑值,在进行计算的时候逻辑值TRUE代表1,FALSE代表0,当分母为0也就是FALSE的时候,计算结果是错误值,这样0/(查找范围=查找值)后只有一个值为0,其他都是错误值

因此,LOOKUP的工作就变成了在一组数据中找1。由于这组数据只有一个0,其他都是错误值,二分法使得LOOKUP只能找到不大于查找值的最后一个数字,因此只能找到0,最后根据0对应的位置精准的找到我们需要的值。

输入对应公式后可以看到超过255个字符串的也可以正确匹配到了

对应Excel数据文件下载:
https://download.csdn.net/download/qq_42692386/86540332

参考文章

对于lookup公式的原理和详细解析可参考:
https://zhuanlan.zhihu.com/p/318455266
解决方法参考文章:
https://club.excelhome.net/forum.php?mod=viewthread&tid=1335963&_dsign=f3ecf8ad

vlookup查找匹配值超过255个字符显示#Value的解决办法的更多相关文章

  1. Exchange无法发送邮件 未找到匹配的连接器来路由外部收件人解决办法

    使用命令行管理程序创建发送连接器 本示例创建发送连接器,用于集线器传输服务器 HubA 向 Internet 发送电子邮件.   复制 New-SendConnector -Name "In ...

  2. .net core 2.0 dbfirst 报 dotnet ef 未找到与命令“dotnet-ef”匹配的可执行文件的解决办法

    问题描述: 最近研究了一段时间.netcore dbfirst,新建类库用来生成实体模型,执行命令总是提示 未找到与命令“dotnet-ef”匹配的可执行文件,根据网上的解决办法引用 Microsof ...

  3. shell查找匹配行,输出该行并输出下面的一行

    查找匹配行,输出该行并输出下面的一行 grep: grep -A 1 'keyword'   file awk:awk '$0~/keyword/{print $0; getline; print $ ...

  4. Sublime 、NotePad++中查找匹配中文字符

    在Sublime .NotePad++中可以使用正则表达式 [\x{4e00}-\x{9fa5}] 查找匹配中文字符.

  5. [重点]delphi 实现 根据给定的标题去《中国青年报》网上电子报数据中查找匹配的内容,并从该内容中取出引题、正题、副题、作者和正文。

    项目要求:根据给定的标题去<中国青年报>网上电子报数据中查找匹配的内容,并从该内容中取出引题.正题.作者和正文. unit Unit1; interface uses Winapi.Win ...

  6. linux 查找匹配文件中包含指定字符的 前五行,这里是指所有匹配的前五行

    最近被问到 一个关于查找匹配字符的信息显示问题: 系统/etc/sysctl.conf文件会定义系统内核的一些配置,请查找和net有关的信息,并只打印前面5行信息. 解决方式大概试两种写法均可: 1. ...

  7. contents() 查找匹配元素内部所有的子节点(包括文本节点)。如果元素是一个iframe,则查找文档内容

    contents() V1.2概述 查找匹配元素内部所有的子节点(包括文本节点).如果元素是一个iframe,则查找文档内容   示例 描述:大理石平台检定规程 查找所有文本节点并加粗 HTML 代码 ...

  8. Visual Studio无法查找或打开 PDB 文件解决办法

    Visual Studio无法查找或打开 PDB 文件解决办法 用VS调试程序时,有时会在VS底部的“输出”框中提示“无法查找或打开 PDB 文件”.这该怎么解决呢? 下面,我们以VS2013为例,来 ...

  9. 关于jquery html()方法获取带有OBJECT标签的元素内容时,出现“类型不匹配。”的解决办法

    关于jquery html()方法获取带有OBJECT标签的元素内容时,出现“类型不匹配.”的解决办法 解决办法: $("selector").clone().html()

  10. vs调试时底部输出调试信息“无法查找或打开 PDB 文件”解决办法

    用VS调试程序时,有时会在VS底部的"输出"框中提示"无法查找或打开 PDB 文件".这该怎么解决呢? 下面,我们以VS2013为例,来教大家解决办法. 工具/ ...

随机推荐

  1. 探秘 MySQL 索引底层原理,解锁数据库优化的关键密码(下)

    上两篇文章<探秘MySQL索引底层原理,解锁数据库优化的关键密码(上)>和<探秘 MySQL 索引底层原理,解锁数据库优化的关键密码(中)>主要讲了MySQL索引的底层原理,且 ...

  2. drawcall和batch

    drawcall和batch的概念和区别可以结合冯乐乐书的前端章节和以下i链接达到透彻的理解 正如链接中所讲,batch是比drawcall所指范围更广的概念,包含了drawcall https:// ...

  3. 详细介绍java的线程池状态

    一.详细介绍java的线程池状态 Java 中的线程池状态是 ThreadPoolExecutor 类内部管理的一个重要概念.线程池的状态决定了线程池的行为,例如是否接受新任务.是否处理队列中的任务. ...

  4. 在线modbus RTU报文解析器 报文解析工具

    本文分享一个在线Modbus RTU报文解析器: 网址:https://www.bais.top/tools/modbusRTU/ 网站干净简洁: 如图: 集成了CRC校验,若报文不对则不会进行解析 ...

  5. .net6 api添加接口注释

    参照: .NET 6 Swagger添加xml注释 - 凡尘一叶~ - 博客园 (cnblogs.com)[这个比较准] .net core的Swagger接口文档使用教程(一):Swashbuckl ...

  6. ArrayList中的contains方法

    ArrayList类的contains方法 如果此 collection 包含指定的元素,则返回 true. 具体实现 public boolean contains(Object o) { retu ...

  7. 详解Git中的.gitignore文件

    1.什么是.gitignore文件?有什么作用? 在Git中,有一种特殊的文件,其文件全名就是 .gitignore,这个文件可以用txt打开,主要功能是屏蔽某些文件,使得这些文件不被追踪(track ...

  8. Pytorch之Tensor学习

    Pytorch之Tensor学习 Tensors是与数组和矩阵类似的数据结构,比如它与numpy 的ndarray类似,但tensors可以在GPU上运行.实际上,tensors和numpy数组经常共 ...

  9. openssl头文件出现DEPRECATEDIN_1_1_0导致引入头文件时程序无法编译

    我使用的是unbuntu20.04版本中,通过apt安装的openssl,发现openssl中的多个库文件中会出现类似'DEPRECATEDIN_1_1_0(unsigned char *ASN1_S ...

  10. ubuntu2004 ROS1安装

    ubuntu初始环境配置ROS1 1.换源并更新数据库 ubuntu2004换源 # 备份原来的源并且另存 sudo cp -v /etc/apt/sources.list /etc/apt/sour ...