我有一个带电话号码的.csv,我想从一列中提取特定信息,以便将其导入到另一个程序中。
基本上,数据是通过DNC列表清除的电话号码-但是,电话号码显示如下:
9995551212、1234567890 DNC,4433225555
因此,可以安全地拨打第一个和最后一个号码,应该删除中间的一个号码。
我想创建一个用于存储干净数据的新列-它应查看每个数字,并用逗号分隔,并确定“ DNC”是否为最后三个字母。如果DNC显示,则应排除该电话号码。如果只是数字,我们应该包括该数据。
老实说,我对如何做感到茫然。
有人可以帮忙吗?
答案 0 :(得分:0)
尝试
=if(iferror(find("dnc",A1,1),0)>0,"",A1)
因此,只要找到dnc,find就会寻找dnc,然后将其留空。
编辑,阅读评论,如果数据只是一个单元格中的文本,则将提取“文本到列” ...
答案 1 :(得分:0)
将以下代码复制到标准模块(在VBE中:Insert>Add Module
)。
为方便起见,已调整(默认)第二(“ ,”)和第三(“ ,”)参数的参数,但可以更改。 / p>
Function EPN(SourceString As Variant, Optional ByVal SplitDelimiter = ",", _
Optional ByVal JoinDelimiter = ", ") As String
Dim strC As String ' Current String
Dim strT As String ' Target String
Dim vntS As Variant ' String Array
Dim i As Long ' String Array Element Counter
' Split Source String to String Array.
vntS = Split(CStr(SourceString), SplitDelimiter)
' Loop through elements of String Array.
For i = 0 To UBound(vntS)
' Write current element of String Array to Current String.
strC = Trim(vntS(i))
' Check if current string is 'recognized' as a number.
If IsNumeric(strC) Then
' Check if Target String is not empty ("").
If strT <> "" Then ' Target String is NOT empty.
' Concatenate current Target String, Join Delimiter _
' and Current String.
strT = strT & JoinDelimiter & strC
Else ' Target String IS empty (only once).
' Write Current String to Target String.
strT = strC
End If
End If
Next
' Write Target String to EPN (Extract Phone Number).
EPN = strT
End Function
使用例如=EPN(A1)
并抄下来。
=EPN("asdfasf, 9999,234324 ,234DNC5342,erter,E234,dsfa")
将得到9999, 234324
。