ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[Excel 函数与公式] [开_145-3]连号判断与显示[已总结]

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2013-11-26 13:21 | 显示全部楼层 |阅读模式
本帖最后由 delete_007 于 2014-1-6 18:00 编辑

竞赛日期:2013-11-26至2013-12-20
这两天感冒了,开帖时间延迟至2013-12-27,请谅解。
目前最佳答案144字符!
题目说明:
  1.A3:G12为数据区域,可引用。数据区均为[1,9999]的正整数。
  2.每行按升序排列。
  3.寻找每行中的连号,并按要求显示结果:
    如一行中没有连号,则显示“无连号”;
    如只有一段连号,则显示“n连号”(n代表连号的数字个数);
    如7个数字刚好组成顺子,则显示“7顺”;
    如有多段连号,则每段连号间用“+”连接。
      (详见数据区的底色标示及模拟结果)

答题要求:
  1.纯函数题,在H3录入公式,并下拉完成。禁止其它任何操作。
  2.通过2003版EXCEL验证。

评分:
  1.公式长度(含=)小于210个字符,得1分;
  2.公式长度(含=)小于170个字符,得2分;
  3.其余正确答案,给予适当财富奖励。

[开_145-3]连号判断与显示.rar (4.84 KB, 下载次数: 360)

开_145-3题目.jpg


该贴已经同步到 delete_007的微博

单选投票, 共有 18 人参与投票

投票已经结束

33.33% (6)
44.44% (8)
11.11% (2)
11.11% (2)
您所在的用户组没有投票权限

评分

9

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-11-27 08:52 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
{:soso_e141:}
我先来捧个场
=TEXT(TEXT(SUBSTITUTE(SUM(TEXT(FREQUENCY(COLUMN(A:G),(B3:G3-A3:F3<>1)*COLUMN(A:F)),"[<2]!0")*10^(7-ROW($1:$7))),0,),"[=7]7顺;[<7]0连号;0;无连号"),"[>99]0连号+0连号+0连号;0连号+0连号")

补充内容 (2013-12-13 14:47):
缩减一下
=MID(SUBSTITUTE(TEXT(SUM(TEXT(FREQUENCY(ROW($1:$7),(B3:G3-A3:F3<>1)*COLUMN(A:F)),"[<2]!0")*10^(7-ROW($1:$7))),"[=7]+7顺;[=]+无连号;"&REPT("+0连号",6)),"+0连号",),2,99)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-11-27 10:51 | 显示全部楼层
本帖最后由 CheryBTL 于 2013-11-28 08:04 编辑

先交答案,又是死在大门前,179字符:
  1. =SUBSTITUTE(TEXT(SUBSTITUTE(SUM(TEXT(FREQUENCY(IF(A3:F3+1=B3:G3,COLUMN(A:F)),(A3:F3+1<>B3:G3)*COLUMN(A:F))+1,"[=1]!0;0")*10^(7-ROW($1:$7))),0,),"[=7]0顺;;0连号+0连号+0连号;无连号"),"0连号+",)
复制代码
原来可以省掉第一个TEXT,164字符:
  1. =SUBSTITUTE(TEXT(SUBSTITUTE(SUM((FREQUENCY(IF(A3:F3+1=B3:G3,COLUMN(A:F)),(A3:F3+1<>B3:G3)*COLUMN(A:F))+1)*10^(7-ROW($1:$7))),1,),"[=7]0顺;;0连号+0连号+0连号;无连号"),"0连号+",)
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-11-27 13:52 | 显示全部楼层
  1. =MID(SUBSTITUTE(TEXT(SUM((FREQUENCY(IF(B3:G3-A3:F3=1,COLUMN(A:F)),SMALL((B3:G3-A3:F3=1)*7+COLUMN(A:F),ROW($1:$6)))+1)*10^(7-ROW($1:$7))),"[>7e6]17顺;[=1111111]1无连号;"&REPT("+0连号",7)),"+1连号",),2,99)
复制代码
195先占个位子,回头慢慢想

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-11-27 16:14 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
  1. =SUBSTITUTE(TEXT(SUBSTITUTE(SUM((FREQUENCY(IF(A3:F3+1=B3:G3,B3:G3),(A3:F3+1<>B3:G3)*B3:G3)+1)*10^(7-ROW($1:$7))),1,),"[=7]7顺;;0连号+0连号+0连号;无连号"),"0连号+",)
复制代码
含等号152
``


补充内容 (2013-12-17 00:12):
  1. =SUBSTITUTE(TEXT(SUBSTITUTE(SUM(FREQUENCY(B3:G3,(B3:G3-A3:F3<>1)*B3:G3)*10^(7-ROW($1:$7)))+1,1,),"[=7]7顺;;"&REPT("0连号+",6)&"0连号;无连号"),"0连号+",)
复制代码
含等号142``

补充内容 (2013-12-17 00:29):
142问题多多``

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-11-28 00:14 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
  1. =SUBSTITUTE(TEXT(SUBSTITUTE(MMULT(10^(7-COLUMN(A:G)),FREQUENCY(IF(B3:G3=A3:F3+1,B3:G3),IF(B3:G3<>A3:F3+1,B3:G3,))+1),1,),"[=7]7顺;;0连号"&REPT("+0连号",6)&";无连号"),"0连号+",)
复制代码
166字节,站位先

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-11-28 10:26 | 显示全部楼层
用最简单的思路撰写出最华丽的篇章
7版,穷举法,163字,和模拟结果等同
  1. =SUBSTITUTE(TEXT(0&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUM((A3:F3+1=B3:G3)*10^{6,5,4,3,2,1}),10,2),12,3),13,4),0,),"[=1114]7顺;[>]0连号+0连号+0连号;无连号"),"0连号+",)
复制代码
如果数据是1223456,或者1234556,就要改一下,任然穷举,179字
  1. =SUBSTITUTE(TEXT(0&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUM((A3:F3+1=B3:G3)*10^{6,5,4,3,2,1}),10,2),12,3),13,4),14,5),0,),"[=115]7顺;[>]0连号+0连号+0连号;无连号"),"0连号+",)
复制代码
这一行留着哪天想出不穷举的方法便于编辑

补充内容 (2013-12-19 18:13):
这道竞赛题自从来了个华丽篇章后就忘了还有这么一码事了,今天下午通过手机的提醒事项提醒才又看了一遍,还真发现问题了,1234569,返回错误,再套一层又超嵌套,弄了一下午,搜索了相关的帖子,从254到215,到现199

补充内容 (2013-12-19 18:16):
=SUBSTITUTE(TEXT(0&SUBSTITUTE(SUM((MMULT((MMULT(N((A3:F3+1)<>B3:G3),N(COLUMN(A:F)>ROW($1:$6)))=ROW($1:$6)-1)*(A3:F3+1=B3:G3),A$3:A$8^0)+1)*10^{5;4;3;2;1;0}),1,),"[=7]7顺;[=0]无连号;0连号+0连号+0连号"),"0连号+",)

补充内容 (2013-12-19 18:23):
原来补充还有字数限制,1分2分事小,华丽篇章的口号都喊出去了,这要是不能及时发现,让我情何以堪,这人就丢大发了。。。。。。。。

点评

取巧使用A$3:A$8^0,这一部分引用区域不完全符合要求。不过鉴于更改为常规办法Row($1:$6)^0,也不会超过210字符,便不再扣分。  发表于 2013-12-27 14:09

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-11-28 15:57 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
  1. =SUBSTITUTE(TEXT(SUBSTITUTE(SUM((FREQUENCY(IF(A3:F3=B3:G3-1,COLUMN(A:F)),(A3:F3<>B3:G3-1)*COLUMN(A:F))+1)*10^(7-ROW($1:$7))),1,),"[=7]0顺;[>]0连号+0连号+0连号;;无连号"),"0连号+",)
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-11-28 16:41 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 delete_007 于 2013-12-2 12:29 编辑

头都快炸了。。。还是得出低于字符数限制的。。。
233字符,普通公式,把所有可能出现的效果,得到1、0的数字,都列出来,然后BIN2DEC,转化为10进制来看,不过再增加数字,这个分析的复杂程度将几何倍增长:
  1. =SUBSTITUTE(TEXT(LOOKUP(BIN2DEC(MID(SUMPRODUCT((B3:G3-A3:F3=1)*10^-COLUMN(A:F)),3,6)),ROW($1:$33)*2-3,{"无连号";2;3;22;4;22;23;32;5;22;23;222;24;32;33;24;6;22;23;222;24;222;223;232;25;32;33;322;34;42;43;52;"7顺"}),"0连号+0连号+0连号"),"0连号+",)
复制代码

329字符,兼容性更强,公式稍加修改,便可以接受最多出现“9连号”的结果。不过不能使用“定义名称”,这里即将超出嵌套,所以没处理“无连号”和“7顺”:
  1. =TEXT(SUBSTITUTE(SUMPRODUCT(FREQUENCY(IF(A3:F3=B3:G3-1,{1,2,3,4,5,6}),IF(A3:F3<>B3:G3-1,{1,2,3,4,5,6}))+1,10^(ROW(INDIRECT("1:"&COUNT(FREQUENCY(IF(A3:F3=B3:G3-1,{1,2,3,4,5,6}),IF(A3:F3<>B3:G3-1,{1,2,3,4,5,6})))))-1)),1,),REPT("0连号+",SUM(--(FREQUENCY(IF(A3:F3=B3:G3-1,{1,2,3,4,5,6}),IF(A3:F3<>B3:G3-1,{1,2,3,4,5,6}))>0))-1)&"0连号")
复制代码
  1. =SUBSTITUTE(TEXT(0&SUBSTITUTE(SUM(SMALL(IF(B3:G3-A3:F3=1,,COLUMN(A:F)),ROW($1:$6))*10^{5;4;3;2;1;0}*{10,-1})+7,1,),"[=]无连号;[=7]7顺;0连号+0连号+0连号"),"0连号+",)
复制代码


(开_145-3)连号判断与显示-小翟(思路过程).zip (19.52 KB, 下载次数: 119)

补充内容 (2013-12-27 13:54):
调整一下细节,148字符
=SUBSTITUTE(TEXT(SUBSTITUTE(SUM(SMALL(IF(B3:G3-A3:F3=1,,COLUMN(A:F)),ROW($1:$6))*10^{5;4;3;2;1;0}*{10,-1})+7,1,),"[=7]7顺;;0连号+0连号+0连号;无连号"),"0连号+",)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-11-28 23:21 | 显示全部楼层
=SUBSTITUTE(TEXT(SUBSTITUTE(0&SUM((FREQUENCY(IF(B3:G3-A3:F3=1,COLUMN(A:F)),(B3:G3-A3:F3<>1)*COLUMN(A:F))+1)*10^(7-ROW($1:$7))),1,),"[=7]7顺;[=0]无连号;0连号+0连号+0连号"),"0连号+",)
数组

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-22 13:06 , Processed in 0.059515 second(s), 28 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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