使用Excel 提取文本中的数字

目标:提取A列单元格中的年份放入目标位置

使用Excel 提取文本中的数字_第1张图片

因为数据量比较大,而且有些国家和年份之间没有分隔符号,所以我的方法是先提取数字,然后插入年份过渡符号“-”。

提取数字

提取A2单元格数字function:
=SUMPRODUCT(MID(0&A2, LARGE(INDEX(ISNUMBER(–MID(A2, ROW(INDIRECT(“1:”&LEN(A2))), 1)) * ROW(INDIRECT(“1:”&LEN(A2))), 0), ROW(INDIRECT(“1:”&LEN(A2))))+1, 1) * 10^ROW(INDIRECT(“1:”&LEN(A2)))/10)

数字提取结果使用Excel 提取文本中的数字_第2张图片

对任意选中区域进行插入符号处理

使用VBA 插入符号,代码如下:
Sub AddString()
Dim Rng As Range
Dim WorkRng As Range
On Error Resume Next
xTitleId = “KutoolsforExcel”
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox(“Range”, xTitleId, WorkRng.Address, Type:=8)
For Each Rng In WorkRng
Rng.Value = VBA.Left(Rng.Value, 4) & “-” & VBA.Right(Rng.Value, 4)
Next
End Sub

运行代码,选中目标区域
使用Excel 提取文本中的数字_第3张图片

最终处理结果
使用Excel 提取文本中的数字_第4张图片

最后,Excel小白不知有没有比这个更简洁的方法了,但是我觉得解决了我的需求。之前按照网上其他人的方法发现没有办法取到这么多位数的数字,翻出去找的公式和代码。因为这是我第二个成功的宏,于是忍不住发出来纪念一下。

Reference
Extendoffice. n.d. How To Add Text In Middle Of Selected Cells In Excel https://www.extendoffice.com/documents/excel/2737-excel-add-text-in-middle-of-cell.html#a2

Svetlana Cheusheva. 2019.How to extract number from string in Excel https://www.ablebits.com/office-addins-blog/2017/11/22/excel-extract-number-from-string/

你可能感兴趣的:(Excel,初学者)