ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

分离数字、字母、汉字,大写人民币转阿拉伯(gouweicao78)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2008-7-15 10:10 | 显示全部楼层 |阅读模式

列如:asd235df           找出235    asddf

          xs124bbef32      找出12432    xsbbef

         123zse1d2f

       .......

没有规律的数据中找出数字和字母

[此贴子已经被gouweicao78于2008-7-23 16:29:14编辑过]

TA的精华主题

TA的得分主题

发表于 2008-7-15 13:51 | 显示全部楼层
我认为比较麻烦,看有没有简便的先。做个句号..

TA的精华主题

TA的得分主题

发表于 2008-7-15 14:29 | 显示全部楼层

如果你能接受vb自定义函数的话,就请复制下面代码

Function EXTRACHARACTER(Str, n)
Dim TempCharacter As String, i As Integer
TempCharacter = ""
If n = 0 Then
    For i = 1 To Len(Str)
        If Asc(Mid(Str, i, 1)) >= 48 And Asc(Mid(Str, i, 1)) <= 57 Then
            TempCharacter = TempCharacter & Mid(Str, i, 1)
        End If
    Next i
Else
    For i = 1 To Len(Str)
        If Asc(Mid(Str, i, 1)) < 48 Or Asc(Mid(Str, i, 1)) > 57 Then
            TempCharacter = TempCharacter & Mid(Str, i, 1)
        End If
    Next i
End If
EXTRACHARACTER = TempCharacter
End Function

TA的精华主题

TA的得分主题

发表于 2008-7-15 20:15 | 显示全部楼层

来个“循环引用”的另类解法:

1、设置工具》选项》重新计算》迭代次数设置为1

2、A2是需要提取的字符串(注意,只包含数字和小写字母)

3、B1输入=MOD(A1,10),C1输入=CHAR(96+MOD(A1,26))

4、B2输入=SUBSTITUTE(IF($A$1=1,$A2,B2),B$1,),右拖到C2

5、在A1输入=A1+1,回车

6、按住F9不放至A1数字超过26,则B2、C2分别得到字母、数字。

如果A2包含其它字符(汉字、英文大小写等情况通用),只想提取数字:

C2=SUBSTITUTE(IF($A$1=1,$A2,C2),IF(ISERR(-MID(A2,A1,1)),MID(A2,A1,1),),)

然后回到第5步使得A1从1开始。

[此贴子已经被作者于2008-7-15 20:20:30编辑过]

TA的精华主题

TA的得分主题

发表于 2008-7-18 21:31 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

循环引用 ,用得秒!!

TA的精华主题

TA的得分主题

发表于 2009-2-17 20:09 | 显示全部楼层
来个“循环引用”的另类解法:

1、设置工具》选项》重新计算》迭代次数设置为1

2、A2是需要提取的字符串(注意,只包含数字和小写字母)

3、B1输入=MOD(A1,10),C1输入=CHAR(96+MOD(A1,26))

4、B2输入=SUBSTITUTE(IF($A$1=1,$A2,B2),B$1,),右拖到C2

5、在A1输入=A1+1,回车

6、按住F9不放至A1数字超过26,则B2、C2分别得到字母、数字。

如果A2包含其它字符(汉字、英文大小写等情况通用),只想提取数字:

C2=SUBSTITUTE(IF($A$1=1,$A2,C2),IF(ISERR(-MID(A2,A1,1)),MID(A2,A1,1),),)

然后回到第5步使得A1从1开始

TA的精华主题

TA的得分主题

发表于 2009-6-10 12:03 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 leifeishuqin 于 2009-2-17 20:09 发表
来个“循环引用”的另类解法:

1、设置工具》选项》重新计算》迭代次数设置为1

2、A2是需要提取的字符串(注意,只包含数字和小写字母)

3、B1输入=MOD(A1,10),C1输入=CHAR(96+MOD(A1,26))

4、B2输入=S ...


不知道您把别人的话重述一遍有什么意义。

TA的精华主题

TA的得分主题

发表于 2009-6-23 11:52 | 显示全部楼层
原帖由 gouweicao78 于 2008-7-15 20:15 发表
来个“循环引用”的另类解法:1、设置工具》选项》重新计算》迭代次数设置为12、A2是需要提取的字符串(注意,只包含数字和小写字母)3、B1输入=MOD(A1,10),C1输入=CHAR(96+MOD(A1,26))4、B2输入=SUBSTITUTE(IF($A$ ...



第一次接触循环引用,受教

TA的精华主题

TA的得分主题

发表于 2010-7-9 11:51 | 显示全部楼层
原帖由 gouweicao78 于 2008-7-15 20:15 发表
来个“循环引用”的另类解法:1、设置工具》选项》重新计算》迭代次数设置为12、A2是需要提取的字符串(注意,只包含数字和小写字母)3、B1输入=MOD(A1,10),C1输入=CHAR(96+MOD(A1,26))4、B2输入=SUBSTITUTE(IF($A$ ...

好象如果有中文或其他字符,版主的办法无效啊!我试过很多次了,无法单独得到数字。

TA的精华主题

TA的得分主题

发表于 2010-7-9 12:32 | 显示全部楼层
B1=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,1,""),2,""),3,""),4,""),5,""),6,""),7,""),8,"")
C1=SUBSTITUTE(SUBSTITUTE(B1,0,""),9,"")
以上是替换数字,留字符
这是最笨的办法了
SUBSTITUTE只能连续替换8次 超过公式就不成立! 所以用了辅助列
只留数字的还没有想好。
如果一个个的替换要出人命的

[ 本帖最后由 lwwcom 于 2010-7-9 12:53 编辑 ]
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-25 02:29 , Processed in 0.045666 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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