ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 944|回复: 9

[求助] 为什么我的遗漏公式会是错误的

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-8-14 17:30 | 显示全部楼层 |阅读模式
遗漏.zip (68.12 KB, 下载次数: 18)

TA的精华主题

TA的得分主题

发表于 2014-8-14 17:54 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2014-8-14 18:37 | 显示全部楼层
按照你的公式,若找不到K1,结果就是上一个单元格加1,就是6啊,没错额。。。

TA的精华主题

TA的得分主题

发表于 2014-8-14 18:52 | 显示全部楼层
因为你的F1:O1的0~9是数值型,改成文本型(前面加个单引号)就不会错了(以你举的K9为例,K1若是数值型,K8=5,K9=N(K8)+1=5+1=6,而若K1是文本5,K8也是文本5,则K9=N(K8)+1=0+1=1)
附件把条件格式也简化了一下。

EH(WJG)c.rar

53.65 KB, 下载次数: 10

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-8-14 21:57 | 显示全部楼层
wangjguo44 发表于 2014-8-14 18:52
因为你的F1:O1的0~9是数值型,改成文本型(前面加个单引号)就不会错了(以你举的K9为例,K1若是数值型,K8 ...

谢谢老师,我的公式全部都是错误的,原来文本和数值没有搞清楚,还是要再学习。谢谢老师。

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-8-14 22:13 | 显示全部楼层
wangjguo44 发表于 2014-8-14 18:52
因为你的F1:O1的0~9是数值型,改成文本型(前面加个单引号)就不会错了(以你举的K9为例,K1若是数值型,K8 ...

遗漏--1.zip (61.66 KB, 下载次数: 4) 老师,如果提取遗漏值最大的数相对应的数据又如何应用公式(只提取前面3位对应的数)。

TA的精华主题

TA的得分主题

发表于 2014-8-15 09:34 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
上天恩宠的东 发表于 2014-8-14 22:13
老师,如果提取遗漏值最大的数相对应的数据又如何应用公式(只提取前面3位对应的数)。

请验证
EH(WJG)c.rar (471.5 KB, 下载次数: 16)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-8-15 10:43 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
wangjguo44 发表于 2014-8-15 09:34
请验证

老师我没有看明白,您看我说的对不对“000”,{1;2;3}是指我要求的数是3个.{100;10;1}也是指我要求的数是3个,SUM是和数,其他的我不懂。谢谢老师来指点。

TA的精华主题

TA的得分主题

发表于 2014-8-15 12:23 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 wangjguo44 于 2014-8-15 12:28 编辑
上天恩宠的东 发表于 2014-8-15 10:43
老师我没有看明白,您看我说的对不对“000”,{1;2;3}是指我要求的数是3个.{100;10;1}也是指我要求的数是 ...

以P8为例:
  1. =TEXT(SUM((9-RIGHT(LARGE(IF(ISNUMBER(F8:O8),F8:O8,)*10+9-$F$1:$O$1,{1;2;3})))*{100;10;1}),"000")
复制代码

1、IF(ISNUMBER(F8:O8),F8:O8,)——因为F8:O8中有文本型(数字),也有数值型数字:{1,"1",5,2,1,"5",4,"7",5,1},首先把文本数字排除掉(置零),只考虑数值型:{1,0,5,2,1,0,4,0,5,1}

2、IF(ISNUMBER(F8:O8),F8:O8,)*10+$F$1:$O$1——把这些数字扩大10倍加上第一行的数字(虽是文本型数字,但一归入加减乘除运算,就如同数值型),这样一来,就把第一行的数字与本行数值大小结合起来,(本行大的依然是大的),由于你的模拟结果,本行相同大小的,列标序号小的要排在前面,所以做了变通,不是直接加上第一行的数字,而是用9去减掉第一行数字,即IF(ISNUMBER(F8:O8),F8:O8,)*10+9-$F$1:$O$1,得到{19,8,57,26,15,4,43,2,51,10},这样保证列表号小的数值更大;


3、LARGE(IF(ISNUMBER(F8:O8),F8:O8,)*10+9-$F$1:$O$1,{1;2;3})——取出前三个大数,这很容易理解:{57;51;43}


4、RIGHT(LARGE(IF(ISNUMBER(F8:O8),F8:O8,)*10+9-$F$1:$O$1,{1;2;3}))——从这三个数取得个位数的值:{"7";"1";"3"},因为前面用9去减,现在再把这个9减回来:9-RIGHT(LARGE(IF(ISNUMBER(F8:O8),F8:O8,)*10+9-$F$1:$O$1,{1;2;3})),得到第一行的数:{2;8;6}

5、SUM((9-RIGHT(LARGE(IF(ISNUMBER(F8:O8),F8:O8,)*10+9-$F$1:$O$1,{1;2;3})))*{100;10;1})——把这三个数分别乘以{100;10;1})得到{200;80;6},再求和,得到286,即是所要求的结果;

6、TEXT(SUM((9-RIGHT(LARGE(IF(ISNUMBER(F8:O8),F8:O8,)*10+9-$F$1:$O$1,{1;2;3})))*{100;10;1}),"000")——由于有可能某一行的F列数字最大,(如34行的第31期,F34=5,系一行中最大,对应的F1是0,其次是M34、H34对应的M1、H1的7和2),第四步得到的是{0;7;2},倘仅用SUM求值,0乘100仍然0,结果是两位数72,用TEXT(……,"000")就可以显示为以0开头的三位数“072”了!


评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-8-15 16:35 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
wangjguo44 发表于 2014-8-15 12:23
以P8为例:

1、IF(ISNUMBER(F8:O8),F8:O8,)——因为F8:O8中有文本型(数字),也有数值型数字:{1,"1" ...

谢谢老师的详细解答,我先慢慢理解,衷心感谢老师。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-26 13:07 , Processed in 0.041979 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表