ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 专出难题

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2012-10-12 10:20 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 kkitt 于 2012-10-12 10:33 编辑

有错误,考虑中

TA的精华主题

TA的得分主题

发表于 2012-10-12 10:42 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
wlc5201130 发表于 2012-10-11 02:00
附件.....

公式对   109(9在个位)、15(1在十位)的情况有疏漏

TA的精华主题

TA的得分主题

发表于 2012-10-12 11:05 | 显示全部楼层
CLL1998 发表于 2012-10-12 10:42
公式对   109(9在个位)、15(1在十位)的情况有疏漏

嗯,是的,没有考虑那么多,关键楼主也没有说清楚,要是考虑这些的话。公式得更长了。要加上LEN对位数进行判断喽。

TA的精华主题

TA的得分主题

发表于 2012-10-12 11:12 | 显示全部楼层
本帖最后由 kkitt 于 2012-10-12 12:11 编辑

好了,这次应该可以了

M6=SUM(LARGE(MOD(MOD(LARGE((--MID(LARGE(A1:J15,ROW(1:150)*{1,1,1})+1000,{2,3,4},1)={1,9,5})*LARGE(A1:J15,ROW(1:150))+{2,3,4}*1000,{301,151,1}),1000)*(600-MMULT(TRANSPOSE(1^ROW(1:150)),LEN(SUBSTITUTE(LARGE(((MID(A1:J15+1000,2,1)="1")+(MID(A1:J15+1000,3,1)="9")+(MID(A1:J15+1000,4,1)="5"))*A1:J15+2000,ROW(1:150)),{1,9,5},)))),100),{1,2,3})*10^{4,2,0})

有错误,改为

M6=SUM(LARGE(MOD(LARGE((--MID(LARGE(A1:J15,ROW(1:150))+1000,{2,3,4},1)={1,9,5})*LARGE(A1:J15,ROW(1:150))+{2,3,4}*1000,{301,151,1})*MMULT(TRANSPOSE(1^ROW(1:150)),4-LEN(SUBSTITUTE(LARGE(((MID(A1:J15+1000,2,1)="1")+(MID(A1:J15+1000,3,1)="9")+(RIGHT(A1:J15)="5")>0)*A1:J15+2000,ROW(1:150)),{1,9,5},))),100),{1,2,3})*10^{4,2,0})

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2012-10-12 11:30 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
  1. =RIGHT(CHOOSE({1,2,3},MAX(IF((RIGHT(F19:J26)="5"),F19:J26)),MAX(IF((LEFT(RIGHT("00"&F19:J26,2))="9"),F19:J26)),MAX(IF((LEFT(RIGHT("00"&F19:J26,3))="1"),F19:J26)))*(SUM(LEN(IF((RIGHT(F19:J26)="5")+(LEFT(RIGHT("00"&F19:J26,2))="9")+(LEFT(RIGHT("00"&F19:J26,3))="1"),F19:J26)))-CHOOSE({1,2,3},SUM(LEN(SUBSTITUTE(IF((RIGHT(F19:J26)="5")+(LEFT(RIGHT("00"&F19:J26,2))="9")+(LEFT(RIGHT("00"&F19:J26,3))="1"),F19:J26),5,))),SUM(LEN(SUBSTITUTE(IF((RIGHT(F19:J26)="5")+(LEFT(RIGHT("00"&F19:J26,2))="9")+(LEFT(RIGHT("00"&F19:J26,3))="1"),F19:J26),9,))),SUM(LEN(SUBSTITUTE(IF((RIGHT(F19:J26)="5")+(LEFT(RIGHT("00"&F19:J26,2))="9")+(LEFT(RIGHT("00"&F19:J26,3))="1"),F19:J26),1,))))),2)
复制代码
下一步就超出嵌套了,比较晕。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2012-10-12 11:51 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
KT的公式有误,可改为:
  1. =SUM(LARGE(MOD(RIGHT(LARGE((--MID(10^3+LARGE(A1:J15,ROW(1:150)),{2,3,4},1)={1,9,5})*LARGE(A1:J15,ROW(1:150))+10^{3,4,5},{301,151,1}),3)*MMULT(COLUMN(A:ET)^0,4-LEN(SUBSTITUTE(LARGE(((MID(A1:J15+1000,2,1)="1")+(MID(A1:J15+1000,3,1)="9")+(MOD(A1:J15,10)=5)>0)*A1:J15+2000,ROW(1:150)),{1,9,5},))),100),{1,2,3})*10^{4,2,0})
复制代码
不降为1维硬整即为,
  1. =SUM(LARGE(MOD(CHOOSE({1,2,3},SUM((LEN(A1:J15)-LEN(SUBSTITUTE(A1:J15,5,)))*((MOD(A1:J15,10)=5)+(MID(10^3+A1:J15,3,1)="9")+(MID(10^3+A1:J15,2,1)="1")>0))*MAX((MOD(A1:J15,10)=5)*A1:J15),SUM((LEN(A1:J15)-LEN(SUBSTITUTE(A1:J15,9,)))*((MOD(A1:J15,10)=5)+(MID(10^3+A1:J15,3,1)="9")+(MID(10^3+A1:J15,2,1)="1")>0))*MAX((MID(10^3+A1:J15,3,1)="9")*A1:J15),SUM((LEN(A1:J15)-LEN(SUBSTITUTE(A1:J15,1,)))*((MOD(A1:J15,10)=5)+(MID(10^3+A1:J15,3,1)="9")+(MID(10^3+A1:J15,2,1)="1")>0))*MAX((MID(10^3+A1:J15,2,1)="1")*A1:J15)),100),{1;2;3})*10^{4;2;0})
复制代码

评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2012-10-12 13:16 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
从别人解决难题中,不断学习。

TA的精华主题

TA的得分主题

发表于 2012-10-12 14:01 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
楼主,我感觉你还是没有表达清楚,含5、9、1的最大数,包括两种情况:个位为5的最大数;找出来的所有数种的含5的最大数。
          另外,重复不考虑,比如115或119,95等,都去掉还是只去掉一个?去掉一个,去掉5中的一个还是1(或9)中的一个?都去掉,哪肯定会对结果造成影响,如:正好是最大数
对你的题目进行了完善,并提供VBA代码进行验证,方便设置公式,你看是不是这样的?

12345.zip

16.55 KB, 下载次数: 6

点评

下载下来晚上看,今天没分了,改天再送你分  发表于 2012-10-12 14:11

TA的精华主题

TA的得分主题

发表于 2012-10-12 14:17 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
有这样的神人吗?

TA的精华主题

TA的得分主题

发表于 2012-10-12 15:03 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 jjafxzb 于 2012-10-12 15:25 编辑
lsj128568 发表于 2012-10-12 02:06
笨办法,要什么给什么吧,没啥技术含量
定义两个名称


取数可定义

  1. MID(TEXT(SMALL(IF((MOD($A$1:$J$15,10)=5)+($A$1:$J$15>89),$A$1:$J$15,),ROW($1:$150)),"000"),{1,2,3},1)



  2. MID(SMALL(IF((MOD($A$1:$J$15,10)=5)+($A$1:$J$15>89),$A$1:$J$15,),ROW($1:$150))+1000,{1,2,3},1)
复制代码
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

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

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

GMT+8, 2024-6-17 21:58 , Processed in 0.047579 second(s), 16 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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