Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 6937|回复: 19

[已解决]提取3个及以上连续数字的单元格

  [复制链接]
发表于 2012-5-10 21:41 | 显示全部楼层 |阅读模式
3个连续数字.zip (2.34 KB, 下载次数: 169)
发表于 2012-5-11 08:46 | 显示全部楼层
本帖最后由 CheryBTL 于 2012-5-11 13:53 编辑

原来确实有问题:这个186还不够完善,仅适用于6位数。加油去了!!!
=INDEX(1:1,SMALL(ISERR(FIND(111,MMULT(COLUMN(A:J)^0,10^(ROW($2:$11)*(-(0&MID(MMULT(COLUMN(A:F)^0,10^(0&MID(A1:G1,{1;2;3;4;5;6},1))),ROW($1:$10),1))<0)))))/1%+COLUMN(A:G),COLUMN(A:G)))&""

看来用MID取位被0的方法在这里行不通,补上FIND的方法吧,140了:
=INDEX(1:1,SMALL(ISERR(FIND(111,MMULT(COLUMN(A:J)^0,10^(ROW(1:10)*ISNUMBER(FIND(ROW($1:$10)-1,$A1:$G1))))))/1%+COLUMN($A:$G),COLUMN(A1)))&""

回复

使用道具 举报

 楼主| 发表于 2012-5-11 10:11 | 显示全部楼层
CheryBTL 发表于 2012-5-11 08:46
先上一个再减化了:
165:
=OFFSET(A1,,SMALL(IF(MMULT(COLUMN(A:G)^0,--(--(0&MID(MMULT(COLUMN(A:F)^0,1 ...

公式错误
AA.gif


回复

使用道具 举报

发表于 2012-5-11 11:02 | 显示全部楼层
本帖最后由 wjc2090742 于 2012-5-11 11:32 编辑

这个可以吗?数组公式
  1. =INDEX(1:1,SMALL(ISERR(FIND(111,MMULT(COLUMN(A:J)^0,ISNUMBER(FIND(ROW($1:$10)-1,$A1:$G1))/10^ROW($1:$10))))*99+COLUMN($A:$G),COLUMN(A1)))&""
复制代码

点评

字数不够了,字符小于130  发表于 2012-5-11 12:07

评分

参与人数 1 +9 收起 理由
chunlin1wang + 9 很给力! 思路和我预设一样,精简可以小于13.

查看全部评分

回复

使用道具 举报

发表于 2012-5-11 11:33 | 显示全部楼层
  1. =INDEX(1:1,SMALL((FIND(1000,MMULT(COLUMN(A:K)^0,ISERR(FIND(ROW($1:$11)-2,$A1:$G1))*10^ROW($3:$13)))>8)*99+COLUMN($A:$G),COLUMN(A1)))&""
复制代码

点评

在做MM的另一方向,发现解决不了0,1形成的1000现象,魔魔的ROW()-2,查找负值的想法,也如钻石般闪亮。  发表于 2012-5-12 16:11

评分

参与人数 2 +12 收起 理由
wjc2090742 + 3 我只能加3...
chunlin1wang + 9 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2012-5-11 12:54 | 显示全部楼层    本楼为最佳答案   
  1. =INDEX(1:1,SMALL(ISERR(FIND(111,MMULT(10^COLUMN($A:$J),1-ISERR(FIND(ROW($1:$10)-1,$A1:$G1)))))*99+COLUMN($A:$G),COLUMN(A1)))&""
复制代码

评分

参与人数 4 +32 金币 +10 收起 理由
魔魔 + 10 + 10 MMULT学习了
飞雨飘 + 10 赞一个!
wjc2090742 + 3 赞一个!
chunlin1wang + 9 学习,在等等给最佳

查看全部评分

回复

使用道具 举报

发表于 2012-5-11 14:09 | 显示全部楼层
唉,mmult还没有学到家,向6楼学习。
回复

使用道具 举报

发表于 2012-5-11 16:09 | 显示全部楼层
本帖最后由 飞雨飘 于 2012-5-11 16:16 编辑

核心判定的另一个思路 、不过通用性不好。
  1. =INDEX(1:1,SMALL(ISERR(FIND(111,MMULT(10^COLUMN($A:$J),-(FIND(ROW($1:$10)-1,$A1:$G1&5^19)<7))))*99+COLUMN($A:$G),COLUMN(A1)))&""
复制代码

评分

参与人数 1 +9 收起 理由
chunlin1wang + 9 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2012-5-11 16:34 | 显示全部楼层
上一个玩玩!
  1. =INDEX(1:1,SMALL((FIND(111,MMULT(10^COLUMN(A:J),2^ISERR(FIND(ROW($1:$10)-1,$A1:$G1)))&111)>9)*99+COLUMN($A:$G),COLUMN(A1)))&""
复制代码
  1. =INDEX(1:1,SMALL((FIND(111,MMULT(10^COLUMN(A:J),2^(FIND(ROW($1:$10)-1,$A1:$G1&1/17)>6))&111)>9)*99+COLUMN($A:$G),COLUMN(A1)))&""
复制代码

评分

参与人数 1 +9 收起 理由
chunlin1wang + 9 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2012-5-11 17:57 | 显示全部楼层
8楼写成
  1. $A1:$G1&REPT(" ",9)&5^19
复制代码
的话,应该就可以保证通用性了,因为3行开始的公式说明值在999-999999之间,所以如2389这样的数据是完全有可能出现的。

点评

如果不考虑字符数的话,用LEN就可以了。  发表于 2012-5-12 08:19
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-20 23:26 , Processed in 0.437878 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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