ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 老铁们,怎么在B列和C列分别提取字母和数字,在线等。。。。。

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-7-19 17:15 | 显示全部楼层 |阅读模式
本帖最后由 Sad_と_happy 于 2017-7-19 17:56 编辑

老铁们,怎么在B列和C列分别提取字母和数字,在线等。。。。。

1

1
0002.png

TA的精华主题

TA的得分主题

发表于 2017-7-19 21:34 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
=LEFT($A1,MIN(IFERROR(FIND(ROW($1:$10)-1,$A1),9999))-1)

=MID(A1,MIN(IFERROR(FIND(ROW($1:$10)-1,$A1),9999)),99)
QQ拼音截图20170719213335.png

工作簿1.zip

6.74 KB, 下载次数: 16

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2017-7-19 17:25 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2017-7-19 17:27 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
取颜色,=MID(A5,3,LEN(A5)-2)
取编号:=LEFT(A5,2)
mid 函数 (区域/文本,第几个字符开始,字符长度)

TA的精华主题

TA的得分主题

发表于 2017-7-19 18:46 | 显示全部楼层
D2:D9=LOOKUP(,0/ISERR(-RIGHT(LEFT(B2,ROW($1:$9)))),LEFT(B2,ROW($1:$9)))

E2:E9=SUBSTITUTE(B2,D2,)

(先)H2:H9{=MID(B2,MIN(IF(ISNUMBER(-MID(B2,ROW($1:$9),1)),ROW($1:$9))),9)

(後)G2:G9=SUBSTITUTE(B2,H2,)
3390.png

TA的精华主题

TA的得分主题

发表于 2017-7-19 22:24 来自手机 | 显示全部楼层
jiangxiaoyun 发表于 2017-7-19 17:25
字母公式   left(a1,2)
数字公式   mid(a1,3,99)&""

额。。。题主后面几行字母有三个的呢。。left不行呢。

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-7-20 09:08 | 显示全部楼层
gykg-excel 发表于 2017-7-19 21:34
=LEFT($A1,MIN(IFERROR(FIND(ROW($1:$10)-1,$A1),9999))-1)

=MID(A1,MIN(IFERROR(FIND(ROW($1:$10)-1,$A ...

谢谢老铁解答......

TA的精华主题

TA的得分主题

发表于 2017-7-20 16:04 | 显示全部楼层
如果是2013版本及以上,可以手动输入BK,回车ctrl+e快速填充即可

TA的精华主题

TA的得分主题

发表于 2017-7-21 12:45 | 显示全部楼层
本帖最后由 VBA95599 于 2017-7-21 13:32 编辑

很多高手提供了技巧性很强的公式,这里提供一个一般的解决方法:
比如BK0001、BK01、B111K001、2B2K2中国2b2k2,从中间提取字母,或者只提取小写字母,如何办?

可以用code函数:
数字:字符范围0~9
code(0)=48
code(1)=49
code(2)=50
............
code(9)=57
大写字母:A~Z
code(A)=65
code(B)=66
............
code(Z)=90
小写字母:a~z
code(a)=97
code(b)=98
............
code(z)=122

从“2B2K2中国2b2k2”里面提取大写字母,思路是,

读入第一行A2,做一个循环,从第一位读到最后一位,判断每一位字符是否大写字母(code介于65-90),如果是,则保存到变量中,继续读,是的话添加到变量后面,最后组成要提取的大写字母串,写入B1
第一行做完了,继续循环第二行A3

附上VBA代码:
Sub 矩形1_Click()

Dim myChars()
Dim x As String
Dim y As String
Dim z As String
Dim i As Long
Dim j As Long
Dim b As Long
b = ActiveSheet.UsedRange.Rows.Count
For i = 2 To b
    x = Sheets(1).Cells(i, 1)
    y = ""
    z = ""
For j = 1 To Len(x)
   y = Mid(x, j, 1)
   If Asc(y) <= 90 And Asc(y) >= 65 Then z = z & y
Next j
    Sheets(1).Cells(i, 2) = z
Next i

End Sub
2.gif

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2017-7-21 17:17 | 显示全部楼层
VBA95599 发表于 2017-7-21 12:45
很多高手提供了技巧性很强的公式,这里提供一个一般的解决方法:
比如BK0001、BK01、B111K001、2B2K2中国2 ...

学习了,很好
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-3-29 14:41 , Processed in 0.058827 second(s), 13 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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