![隐藏 Excel 中某一列文本之前的数字?](https://linux22.com/image/1335786/%E9%9A%90%E8%97%8F%20Excel%20%E4%B8%AD%E6%9F%90%E4%B8%80%E5%88%97%E6%96%87%E6%9C%AC%E4%B9%8B%E5%89%8D%E7%9A%84%E6%95%B0%E5%AD%97%EF%BC%9F.png)
我有一个这样的列"2;#Vendor"
,我只想显示"Vendor"
。
我怎样才能做到这一点?
答案1
您可以使用“文本分列”功能将此列拆分为两列数据选项卡。您只需选择#
作为分隔符即可。
或者,如果您的示例已经表示两个单独的列并且#
是一个数字的占位符,如下所示:
2 | 12Vendor
3 | 145Vendor
然后,您可以使用 VBA 公式获取供应商,该公式必须解析输入。
当然,除非小贩或之前的数字小贩遵循一些特定的规则,您可能会利用这些规则 - 比如固定大小。如果您总是使用像001供应商那么你可以使用这个公式:
=RIGHT(A1,LENGTH(A1)-3)
编辑:
这是一个很好的解决方案,您可以将其用作工作表函数:
Public Function demo(ByRef rng As Range) As String
Dim objRegEx As Object
Set objRegEx = CreateObject("VBscript.regexp")
objRegEx.IgnoreCase = True
objRegEx.Global = True
objRegEx.MultiLine = True
objRegEx.Pattern = "\d" 'Match any digit. Equivalent to [0-9].
demo = objRegEx.Replace(rng.Value, "")
'The Replace method takes 2 strings as its arguments.
'If it is able to successfully match the regular expression
'in the search-string, then it replaces that match with the
'replace-string, and the new string is returned.
'If no matches were found, then the original search-string is returned.
Set objRegEx = Nothing
End Function
它使用正则表达式,您可以在许多其他场合使用它,只需使模式动态化即可。
以下是一些关于此内容的文档:http://msdn.microsoft.com/en-us/library/ms974570.aspx
公平地说 - 我只是改编了一个例子,我在这里找到了:
答案2
单元格 a1:2;#供应商
单元格 b1: +Find("供应商",a1,1)
c1 =+MID(A1,B1,LEN(A1))
=========== 或者 =================
2;#供应商
B1 =+MID(A1,查找("供应商",a1,1),LEN(A1))