Excel精英培训网

 找回密码
 注册
查看: 6582|回复: 21

函高练习题-01

  [复制链接]
发表于 2012-5-8 11:24 | 显示全部楼层 |阅读模式
字符串:全角&半角&全角&半角
要求一个公式提取第一个半角部分
全角即中文汉字,半角包括英文字母、数字、符号
不用回复可见了,题目比较妖,大家一起讨论。
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2012-5-8 11:47 | 显示全部楼层
本帖最后由 tyxh0916 于 2012-5-8 13:26 编辑
  1. =MIDB(A1,SEARCHB("?",A1),INDEX(FREQUENCY(IF(MIDB(A1,ROW($1:$99),1)<>" ",ROW($1:$99)),IF(MIDB(A1,ROW($1:$99),1)=" ",ROW($1:$99))),SEARCHB("?",A1)))
  2. =MIDB(A1,SEARCHB("?",A1),MIN(IF((MIDB(A1,ROW($1:$30),1)=" ")*ROW($1:$30)>SEARCHB("?",A1),ROW($1:$30)))-SEARCHB("?",A1))
复制代码

评分

参与人数 1金币 +20 收起 理由
小妖 + 20

查看全部评分

回复

使用道具 举报

发表于 2012-5-8 11:52 | 显示全部楼层
  1. =MID(A1,SEARCHB("?",A1)/2+0.5,MIN(IF(CODE(MID(A1,ROW(INDIRECT(SEARCHB("?",A1)/2+0.5 &":"&LEN(A1))),1))>122,ROW(INDIRECT(SEARCHB("?",A1)/2+0.5 &":"&LEN(A1)))))-SEARCHB("?",A1)/2-0.5)
复制代码

评分

参与人数 1金币 +10 收起 理由
小妖 + 10

查看全部评分

回复

使用道具 举报

发表于 2012-5-8 11:55 | 显示全部楼层
=MID(A2,MATCH(1,--(LEN(MID(A2,ROW($1:$25),1))=LENB(MID(A2,ROW($1:$25),1))),),MATCH(1,(LEN(MID(A2,ROW($1:$25),1))=LENB(MID(A2,ROW($1:$25),1)))*(LEN(MID(A2,ROW($2:$26),1))<>LENB(MID(A2,ROW($2:$26),1))),)-MATCH(1,--(LEN(MID(A2,ROW($1:$25),1))=LENB(MID(A2,ROW($1:$25),1))),)+1)

Book1(1).rar

1.94 KB, 下载次数: 32

评分

参与人数 1金币 +10 收起 理由
小妖 + 10

查看全部评分

回复

使用道具 举报

发表于 2012-5-8 12:01 | 显示全部楼层
本帖最后由 CheryBTL 于 2012-5-8 13:03 编辑

想到个140字符:再简化吧:
  1. =REPLACE(LEFT(A1,MATCH(1,(LENB(MID(A1,ROW($1:$98),1))=1)-(LENB(MID(A1,ROW($2:$99),1))=1),)),1,MATCH(1,N(LENB(MID(A1,ROW($1:$98),1))=1),)-1,)
复制代码
看到大家用SEARCHB("?",A1)确实好,可以再简化到113:
  1. =REPLACE(LEFT(A1,MATCH(1,(LENB(MID(A1,ROW($1:$98),1))=1)-(LENB(MID(A1,ROW($2:$99),1))=1),)),1,SEARCHB("?",A1)/2,)
复制代码


函高1-CheryBTL.rar (1.66 KB, 下载次数: 33)

评分

参与人数 1金币 +20 收起 理由
小妖 + 20

查看全部评分

回复

使用道具 举报

发表于 2012-5-8 12:15 | 显示全部楼层
本帖最后由 wp8680 于 2012-5-8 12:54 编辑

不用看了,好像不通用,公式后半部分有错。故删除了公式。请谅解

回复

使用道具 举报

发表于 2012-5-8 12:42 | 显示全部楼层
  1. =MID(A1,0.5+SEARCHB("?",A1)/2,MATCH(2,LENB(MID(A1,ROW($1:$99),1))-(ROW($1:$99)<SEARCHB("?",A1)/2),0)-0.5-SEARCHB("?",A1)/2)
复制代码

评分

参与人数 1金币 +10 收起 理由
小妖 + 10

查看全部评分

回复

使用道具 举报

发表于 2012-5-8 13:15 | 显示全部楼层
=LEFT(MIDB(A1,SEARCHB("?",A1),98),MIN(IF(MIDB(MIDB(A1,SEARCHB("?",A1),99),ROW(2:99),1)=" ",ROW(1:98))))

评分

参与人数 1金币 +10 收起 理由
小妖 + 10

查看全部评分

回复

使用道具 举报

发表于 2012-5-8 14:01 | 显示全部楼层
本帖最后由 wjc2090742 于 2012-5-8 14:19 编辑

数组公式
  1. =MIDB(A1,SEARCHB("?",A1),MATCH(" ",MIDB(A1,SEARCHB("?",A1)+ROW($1:$99),1),)+1)
复制代码
  1. =MIDB(A1,SEARCHB("?",A1),MATCH(2,LENB(MID(A1,SEARCHB("?",A1)+ROW($1:$99),1)),)+1)
复制代码

评分

参与人数 1金币 +10 收起 理由
小妖 + 10

查看全部评分

回复

使用道具 举报

发表于 2012-5-8 14:03 | 显示全部楼层
  1. =MIDB(A1,SEARCHB("?",A1),MATCH("?",MIDB(A1,SEARCHB("?",A1)+ROW($1:$99),2),))
复制代码

评分

参与人数 1金币 +10 收起 理由
小妖 + 10

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-23 16:10 , Processed in 0.426365 second(s), 23 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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