Tengo una columna como esta "2;#Vendor"
, solo quiero mostrar "Vendor"
.
¿Cómo puedo hacer esto?
fuente
Tengo una columna como esta "2;#Vendor"
, solo quiero mostrar "Vendor"
.
¿Cómo puedo hacer esto?
Puede dividir esta columna en dos, utilizando la función "Texto a columnas" de la pestaña Datos en el menú de la cinta. Solo tendría que seleccionar #
como separador.
O, si su ejemplo ya significaba dos columnas separadas y #
era un marcador de posición para un número, como este:
2 | 12Vendor
3 | 145Vendor
Entonces podría sacar al proveedor, utilizando una fórmula VBA, que tendría que analizar la entrada.
Excepto, por supuesto, si el Proveedor o el número anterior al Proveedor siguen algunas reglas específicas, que podría aprovechar, como un tamaño fijo. Si siempre tiene un formato como 001Vendor , puede usar esta fórmula:
=RIGHT(A1,LENGTH(A1)-3)
Editar:
Aquí hay una buena solución, que podría usar como una función de hoja de trabajo:
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
Está utilizando expresiones regulares, que podría usar en muchas otras ocasiones, simplemente haciendo dinámico el patrón.
Aquí hay documentación sobre esto: http://msdn.microsoft.com/en-us/library/ms974570.aspx
Y para ser justos, acabo de adaptar un ejemplo, que encontré aquí:
celda a1: 2; #Vendor
celda b1: + Buscar ("Proveedor", a1,1)
c1 = + MID (A1, B1, LEN (A1))
=========== O ================
2; #Vendor
B1 = + MID (A1, Buscar ("Proveedor", a1,1), LEN (A1))