ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[Excel 函数与公式] [第64期]Excel-单一储存格寻找三连或四连

[复制链接]

TA的精华主题

TA的得分主题

发表于 2010-8-3 19:42 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
初学者难免使用多层IF及公式过长,但能符合第1条奖赏,重在参与吧!
请楼主检验:
D1=IF(COUNT(FIND({0,1,2,3,4,5,6,7,8,9},A1))=4,IF(MIN(--MID(A1,ROW($1:$4),1))+3=MAX(--MID(A1,ROW($1:$4),1)),A1,IF(MIN(--MID(A1,ROW($1:$4),1))+2=LARGE(--MID(A1,ROW($1:$4),1),2),SUBSTITUTE(A1,MAX(--MID(A1,ROW($1:$4),1)),""),IF(MAX(--MID(A1,ROW($1:$4),1))-2=LARGE(--MID(A1,ROW($1:$4),1),3),SUBSTITUTE(A1,MIN(--MID(A1,ROW($1:$4),1)),""),""))),IF((COUNT(FIND({0,1,2,3,4,5,6,7,8,9},A1))=3)*(MIN(--MID(A1,ROW($1:$4),1))+2=MAX(--MID(A1,ROW($1:$4),1))),TEXT(SUM(MID(A1,SMALL(FIND(ROW($1:$10)-1,A1&"1&0123456789"),ROW($1:$3)),1)*10^(3-ROW($1:$3))),REPT(0,3)),""))
         数组公式   
        下拉填充

[ 本帖最后由 fugb-2010 于 2010-8-6 19:55 编辑 ]

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2010-8-4 23:41 | 显示全部楼层
D1=CHOOSE(SUM(--(MMULT(LOOKUP((ROW($1:$8)+{0,1,2}),ROW($1:$10),--(FREQUENCY(--(MID(A1,{1;2;3;4},1)),ROW($1:$10)-1)>0)),{1;1;1})=3))+1,"",SUBSTITUTE(A1,SUM(--(MID(A1,{1;2;3;4},1)))-SUM(MATCH(3,MMULT(LOOKUP((ROW($1:$8)+{0,1,2}),ROW($1:$10),--(FREQUENCY(--(MID(A1,{1;2;3;4},1)),ROW($1:$10)-1)>0)),{1;1;1}),0)+{-1;0;1}),"",1),A1&"")       
字元數:        326


[ 本帖最后由 泓() 于 2010-8-5 12:23 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2010-8-8 22:02 | 显示全部楼层
=IF(DEVSQ(-MID(A1,{1,2,3,4},1))=5,A1,TEXT(MAX((MOD(MMULT(-RIGHT(SMALL(MID(A1,{1,2,3;1,2,4;1,3,4;2,3,4},1)+10*ROW(1:4),{1,2,3}+{0;3;6;9})-{1,2,3}),{100;10;1}),111)=0)*REPLACE(A1,{4;3;2;1},1,)),"000;;"))

数学的思路,普通公式,不计=号189字符。
=IF(DEVSQ(-MID(A1,{1,2,3,4},1))=5,A1,TEXT(MAX((MMULT((MID(A1,{1,2,3;1,2,4;1,3,4;2,3,4},1)+(SUM(-MID(A1,{1,2,3,4},1))+MID(A1,{4;3;2;1},1))/3)^2,{1;1;1})=2)*REPLACE(A1,{4;3;2;1},1,)),"000;;"))

[ 本帖最后由 wjc2090742 于 2010-8-11 09:11 编辑 ]

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2010-8-13 16:43 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
终于小于210了 206个字(算=号)

D1=TEXT(SUM(MID("0"&A1,1+LARGE((FREQUENCY(IF(MMULT(--(SUBSTITUTE(A1,{0;1;2;3;4;5;6;7}+{0,1,2},)<>A1&""),{1;1;1})=3,ROW($1:$8)+{0,1,2}),MID(A1,{1;2;3;4},1)+1)>0)*ROW($1:$5),{1;2;3;4}),1)*10^{0;1;2;3}),"000;;")

[ 本帖最后由 kkitt 于 2010-8-13 23:20 编辑 ]

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2010-8-19 10:25 | 显示全部楼层
D1=IF(OR(MMULT(-ISERR(FIND(ROW($2:$9)-{0,1,2},A1)),{1;1;1})=0),TEXT(MIN(--SUBSTITUTE(A1,IF(MMULT({1,-1},LARGE(-MID(A1,{1,2,3,4},1),{1,2,3;2,3,4}))-1,SMALL(--MID(A1,{1,2,3,4},1),{1,2,4})),,1)),"000"),"")
数组公式,下拉

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2010-8-21 20:00 | 显示全部楼层




这块骨头有点难啃,总是有点顾此失彼的感觉,哎…,楼主真是台湾人?这就算是同胞为您捧个场吧.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2010-8-23 12:09 | 显示全部楼层

回复 19楼 piny 的帖子

翻查了一下他的原話,確實說的是150個字符,太有挑戰性了,公式的精簡到了這個份上,減一個字符都算是一種很大的進步,我就不想走火入魔了,等著分享現成的思路。

樓主當時出題的時候有預見到會有如此短的公式嗎?說實話,初看到這道題,思路已經框死了,想來想去,就只有一個思路。看了“凍豆腐”版主和大頭兄等幾個3分公式,真是有一種坐井觀天的感覺。對於數組的修煉,我還剛開始,閉關30天去了……

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-8-23 10:58 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 sunya_0529 于 2010-8-23 10:48 发表


想起大头兄说过的一句话,用公式解决一个问题,公式长度一般不超过160个字符。

哈哈,到目前为止,似乎这一猜想还是正确的。对解题而言,要达到大头的水平,自觉差距甚远。现在要换一下方向,去找一些难题,让 ...


呵 我印象中大頭老師說是不超過150字元,所以目前最佳解152字元似仍有想像空間 ^^

TA的精华主题

TA的得分主题

发表于 2010-8-23 10:48 | 显示全部楼层
原帖由 wangg913 于 2010-7-27 15:57 发表
=IF(COUNT(FIND(1111,SUM(10^MID(A1,{1,2,3,4},1)))),A1,IF(COUNT(FIND(111+{0,1,10,100},SUM(10^MID(A1,{1,2,3,4},1)))),SUBSTITUTE(A1,-LOOKUP(,{3,4}-FIND({"010",2},SUM(10^-MID(A1,{1,2,3,4},1))%&0)),,1),"")) ...


想起大头兄说过的一句话,用公式解决一个问题,公式长度一般不超过160个字符。

哈哈,到目前为止,似乎这一猜想还是正确的。对解题而言,要达到大头的水平,自觉差距甚远。现在要换一下方向,去找一些难题,让大头“裸奔”!!!

TA的精华主题

TA的得分主题

发表于 2010-8-23 09:39 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
原帖由 wangg913 于 2010-7-27 15:57 发表
=IF(COUNT(FIND(1111,SUM(10^MID(A1,{1,2,3,4},1)))),A1,IF(COUNT(FIND(111+{0,1,10,100},SUM(10^MID(A1,{1,2,3,4},1)))),SUBSTITUTE(A1,-LOOKUP(,{3,4}-FIND({"010",2},SUM(10^-MID(A1,{1,2,3,4},1))%&0)),,1),"")) ...


-LOOKUP(,{3,4,-9999}-FIND({"010",2,1111},SUM(10^-MID(A1,{1,2,3,4},1))%&0))
真不知道大头的脑瓜子是什么材料组成的,佩服!佩服!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-21 23:38 , Processed in 0.046922 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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