ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

   
EH云课堂-专业的职场技能充电站 限时送,魔方网表将Excel变在线系统 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
Excel不给力? 何不试试FoxTable! Excel 2016函数公式学习大典 高效办公必会的Office实战技巧 免费下载Excel行业应用视频
300集Office 2010微视频教程 Tableau-数据可视化工具 精品推荐-800套精选PPT模板,点击获取 ExcelHome出品 - VBA代码宝免费下载
你的Excel 2010实战技巧学习锦囊 欲罢不能, 过目难忘的 Office 新界面 免费的Excel考勤计算系统
查看: 7042|回复: 33

[Excel 函数与公式] [第114期]根据需要提取字符.

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-11-27 15:54 | 显示全部楼层 |阅读模式
本帖最后由 willin2000 于 2016-1-2 19:01 编辑


竞赛结束时间:正确答案满5人并且时间到2016/1/1. 或者时间到2016/3/1.


特别奖励:80字符以下03版公式得5分!!!


本帖子中包含更多资源

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

x

评分

参与人数 11财富 +58 鲜花 +21 技术 +2 收起 理由
moon2778 + 2 辛苦 出题得分
horselyq + 2 坐等看神式
gdw831001 + 3 等大神的超低字符
kane027 + 3 我就送送
看见星光 + 50 前辈的竞赛题总是实用和技巧相结合

查看全部评分

TA的精华主题

TA的得分主题

发表于 2015-11-28 16:17 | 显示全部楼层
本帖最后由 象山海鲜 于 2015-11-30 14:37 编辑

没有好办法,凑个不是办法的办法
开启迭代计算100次
C1
  1. =MOD(C1,100)+1
复制代码


C2 144字符
  1. =IF(OR(MATCH(C2,{0,"","0","a","吖"})=B2*{1;0}+2),C2&MID(A2,SMALL((MATCH(MID(A2,ROW(A:A),1),{"","0","a","吖"})-1<>B2)/1%+ROW(A:A),LEN(C2)+1),1),"")
复制代码
A列数据改变有错误~ 此方案再考虑!!

答案暂定为:
开启迭代计算100次
C1
  1. =MOD(C1,100)+1
复制代码
C2
  1. =IF(C$1<2,,C2)&MID(A2,C$1,MATCH(MID(A2,C$1,1),{"","a","吖"})=B2)
复制代码


{:soso_e157:}{:soso_e152:}
{:soso_e163:}{:soso_e163:}{:soso_e163:}{:soso_e163:}


评分

参与人数 11财富 +60 鲜花 +21 技术 +5 收起 理由
天地有雪 + 2 太强大了
cmxxccxx + 2 太强大了
pxiceplay + 2 太强大了
coldtty + 2 优秀作品
太阳之子 + 2 太强大了

查看全部评分

TA的精华主题

TA的得分主题

发表于 2015-11-28 22:32 | 显示全部楼层
本帖最后由 丢丢表格 于 2015-12-4 08:18 编辑
  1. C2=IF(C$1<2,,C2)&MID(A2,C$1,MATCH(MID(A2,C$1,1),{"","a","吖"})=B2)
复制代码
       C1 =(C1<100)*C1+1           启用迭代 100 次计算

    (附件就不再上传了)








评分

参与人数 9财富 +60 鲜花 +16 技术 +5 收起 理由
cmxxccxx + 2 太强大了
pxiceplay + 2 太强大了
coldtty + 2 优秀作品
太阳之子 + 2 太强大了
看见星光 + 20 向丢丢学习

查看全部评分

TA的精华主题

TA的得分主题

发表于 2015-11-29 16:57 | 显示全部楼层
本帖最后由 看见星光 于 2015-11-29 19:24 编辑

2015年的尾巴了。。。迭代计算2015下。
C1开关公式:
  1. =IF(C1+1>2015,0.1,C1+1)
复制代码

C2等:
  1. =IF(C$1<1,"",C2&IF(MMULT(1*(MID(A2,C$1,1)>={"0","a","吖"}),{1;1;1})=B2,MID(A2,C$1,1),""))
复制代码
或:
  1. =IF(C$1<1,"",C2&IF(MATCH(MID(A2,C$1,1),{"";"0";"a";"吖"})-1=B2,MID(A2,C$1,1),""))
复制代码
80字符了,我还能减什么,感觉有点奇怪,之前居然套了SUM。。郁闷。。。
再减些70:
  1. =IF(C$1<1,"",C2&MID(A2,C$1,MATCH(MID(A2,C$1,1),{"";"0";"a";"吖"})-1=B2))
复制代码





本帖子中包含更多资源

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

x

评分

参与人数 9财富 +40 鲜花 +18 技术 +5 收起 理由
江苏永能朱兴华 + 2 太强大了
cmxxccxx + 2 太强大了
pxiceplay + 2 太强大了,迭代完全没研究过……
coldtty + 2
象山海鲜 + 2 骚年又来抢分了~~~

查看全部评分

TA的精华主题

TA的得分主题

发表于 2015-12-1 10:16 | 显示全部楼层
本帖最后由 cmxxccxx 于 2015-12-2 11:30 编辑

不知道这样算不算达成题目要求:(附件结果测试是可以的)
文件选项--公式---启用迭代计算,次数50,C1做为辅助,输入
  1. =MOD(C1,50)+1
复制代码


C2输入公式,下拉
  1. =IF(C$1>1,C2,)&IF(1+SUM(N(MID(A2,C$1,1)>{"9","Z"}))=B2,MID(A2,C$1,1),)
复制代码
  1. C2公式字符数70
复制代码
得到最后所有要求的结果, 改变参数也是可以变更答案


本帖子中包含更多资源

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

x

评分

参与人数 8财富 +60 鲜花 +14 技术 +5 收起 理由
gdw831001 + 3 太强大了
pxiceplay + 2 太强大了
coldtty + 2 优秀作品
看见星光 + 20 老师V5
丢丢表格 + 2 不错。 花花上

查看全部评分

TA的精华主题

TA的得分主题

发表于 2015-12-1 16:19 | 显示全部楼层
C2=IF(LEN(C$1)*LEN(A2),T(C2)&IF(MATCH(MID(A2,LEN(C2)+1,1),{"","0","A","吖"})-1=B2,MID(A2,LEN(C2)+1,1),CHAR(9)),"")
开迭代计算,50(最大字数)次+。
C1为控制,平时为空,需要计算时,C1数组公式:
=SUM(LEN(C2:C31))
(这样C1才能在C2以下重算时重算,以便使C2以下再重算,形成多次迭代,要不一次就停了)

然后是BUG:
1、字符串和版主要求只是看上去一致,实际有不可见字符,要检验的话可以套CLEAN,不过如果是要字符串完全一样那就当没分了;
2、不管哪儿重算貌似C列的都会跟着重算,然后字符出现一些偏差,毕竟迭代计算确实不怎么太熟……
3、A、B列变化时,C列也不能直接正确计算,需要先清空C1再重新填入数组=SUM(LEN(C2:C31)),相当于每次改变A、B列要重启一遍迭代。

基本来说是个BUG满满的一次性公式,然后也没有别的思路了,等等看楼上楼下老师的答案了。

评分

参与人数 7财富 +15 鲜花 +8 收起 理由
象山海鲜 + 1
gdw831001 + 2 值得肯定
满坛皆为吾师 + 3 优秀作品
cmxxccxx + 1
看见星光 + 5 老师态度不认真

查看全部评分

TA的精华主题

TA的得分主题

发表于 2015-12-2 21:33 | 显示全部楼层
本帖最后由 chrong007 于 2015-12-3 18:18 编辑

不知道啥能减到80字符。开启迭代.C1<50时F9刷新一下。
C1=MOD(C1+1,199)
C2=IF(C$1,C2&IF((MID(A2,C$1,1)>=TEXT(B2-2,"吖;!0;A"))*(MID(A2,C$1,1)<=TEXT(B2-2,"座;9;z")),MID(A2,C$1,1),""),"")

评分

参与人数 2财富 +10 鲜花 +2 技术 +1 收起 理由
gdw831001 + 2 值得肯定
willin2000 + 10 + 1 公式长度108, 方向正确,不完全满足要求.技.

查看全部评分

TA的精华主题

TA的得分主题

发表于 2015-12-3 10:23 | 显示全部楼层
本帖最后由 nccuiyehua 于 2015-12-4 16:09 编辑

C1单元格
  1. =IF(C1>60,61,C1+1)
复制代码
C2单元格
  1. =IF(IF(C$1>LEN(A2),3,IF(CODE(MID(A2,C$1,1))>42000,2,INT(CODE(MID(A2,C$1,1))/65)))<>(B2-1),SUBSTITUTE(IF(C$1=1,A2,C2),MID(A2,C$1,1),),IF(C$1=1,A2,C2))
复制代码
精简一下,130个字符,力争能多拿点分。
  1. =SUBSTITUTE(IF(C$1=1,A2,C2),IF(IF(C$1>LEN(A2),,IF(CODE(MID(A2,C$1,1))>42000,3,INT(CODE(MID(A2,C$1,1))/65)+1))=B2,,MID(A2,C$1,1)),)
复制代码
用LOOKUP函数判断,再缩短些长度,117个字符
  1. =SUBSTITUTE(IF(C$1=1,A2,C2),IF(IF(C$1>LEN(A2),4,LOOKUP(CODE(MID(A2,C$1,1)),{48,1;58,2;123,3}))=B2,"",MID(A2,C$1,1)),)
复制代码
思路:
1. 用lookup+CODE(MID(A2,C$1,1))判断字符类别,1为数字,2为字母,3为汉字
2. SUBSTITUTE( C2,MID(A2,C1,1),)来对不符合要求的字符进行替换
3. 利用C1进行循环引用并替换
4. 以上是用减法去除不符合要求的字符,还打算用加法,不断添加符合要求的字符。遇到问题是1不知道停止,每计算一次都重新增加一遍。2强制由0开始时又往往跳过第一个字符。没法得到正确的结果。
我已经完成的公式如下:=IF(C$1=1,"",C2&IF(IF(C$1>LEN(A2),4,LOOKUP(CODE(MID(A2,C$1,1)),{48,1;58,2;123,3}))=B2,MID(A2,C$1,1),""))   ,有兴趣的可以继续讨论研究。
首次参加技术竞赛,请版主老师点评!!



评分

参与人数 5财富 +15 鲜花 +5 技术 +2 收起 理由
象山海鲜 + 1
gdw831001 + 3 学习了
看见星光 + 5 眼镜猫,是你吗?
丢丢表格 + 1 头像是可怕了一点
willin2000 + 10 思路正确,但是C1公式没有完成自动归位.

查看全部评分

TA的精华主题

TA的得分主题

发表于 2015-12-4 14:27 | 显示全部楼层
本帖最后由 swyrlbq 于 2015-12-5 06:47 编辑

感觉要用迭代计算。所以需要操作,以下公式操作如下;(03版)
先设置迭代计算99次,再在C1输入公式;=IF(C1>98,,C1+1)回车后,把迭代计算改为100
然后(为了记录答题思路,贴上过程中的几个公式,以最后公式为答案)

公式一(110字符)
C2=IF(C$1,C2&MID(A2,SMALL(IF(LOOKUP(MID(A2,ROW($1:99),1),{"","0","A","吖";0,1,2,3})=B2,ROW($1:99),99),C$1),1),"")


公式二(97字符)
C2=IF(C$1,C2&MID(A2,SMALL(IF(MATCH(MID(A2,ROW($1:99),1),{"","A","吖"})=B2,ROW($1:99),99),C$1),1),"")
下拉。

公式三(72字符)
C2=IF(C$1,C2&IF(MATCH(MID(A2,C$1,1),{"","A","吖"})=B2,MID(A2,C$1,1),""),"")





评分

参与人数 6财富 +30 鲜花 +9 技术 +4 收起 理由
象山海鲜 + 1
gdw831001 + 2 向老师学习
cmxxccxx + 2
pxiceplay + 2 值得肯定
丢丢表格 + 2 好久不见了

查看全部评分

TA的精华主题

TA的得分主题

发表于 2015-12-5 22:36 | 显示全部楼层

辅助c1:
  1. =MOD(1+C$1,100)
复制代码


c2:
  1. =IF(OR(C$1=1,C2=0),A2,IF(AND(MID(A2,(C$1<1)+C$1,1)>=CHOOSE(B2,"0","a","阿"),MID(A2,(C$1<1)+C$1,1)<=CHOOSE(B2,"9","z","々")),C2,SUBSTITUTE(C2,MID(A2,(C$1<1)+C$1,1),)))&""
复制代码

评分

参与人数 8财富 +20 鲜花 +13 技术 +2 收起 理由
bajifeng + 2 优秀作品
象山海鲜 + 1
太阳之子 + 2 值得肯定
chrong007 + 2 值得肯定
cmxxccxx + 2

查看全部评分

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

本版积分规则

关注官方微信,每天学会一个新技能

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

GMT+8, 2019-3-21 01:15 , Processed in 1.128999 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Wooffice Inc.

   

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

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

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