Excel - Extraer dato despues del 2º caracter

 
Vista:

Extraer dato despues del 2º caracter

Publicado por Pablo (2 intervenciones) el 23/07/2007 06:03:58
Estimados Amigos, tengo una duda con un codigo para una macro (VB), espero que me puedan ayudar.

Tengo los siguientes datos en la columna A, luego deberian quedar en B y C tal cual se muestra en el ejemplo:

A B C
14*98*0.964 --> 14*98 0.964
16*100*3.05 --> 16*100 3.05
19*100*4 --> 19*100 4

La pregunta es: como puedo extraer los datos despues del segundo asterisco??

Muchas gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Extraer dato despues del 2º caracter

Publicado por jcs (494 intervenciones) el 23/07/2007 08:13:48
Muy buenas,
mira a ver si te sirve esto

Celda B1
=EXTRAE(A1;1;ENCONTRAR("*";A1;ENCONTRAR("*";A1;1)+1)-1)

Celda C1
=EXTRAE(A1;ENCONTRAR("*";A1;ENCONTRAR("*";A1;1)+1)+1;50)

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Extraer dato despues del 2º caracter

Publicado por Mipega (1 intervención) el 24/07/2007 21:01:44
otra alternativa es usar la opcion "texto en columnas" del menu "datos" y en la segunda pantalla de asistencia seleccionas el elemento Other y pones el "*" en el cuadro a la derecha de la palabra y finalizar..

y una tercera es con codigo con una instruccion como la siguiente dentro de un modulo

Range("A1:A3").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:="*", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1)), _
TrailingMinusNumbers:=True

tambien se puede seleccionar toda la columna a para que haga la separacion para todos los datos que se encuentren en cada celda de esa columna,para lo cual cambia la linea primera con algo como esto
Range("A:A")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Extraer dato despues del 2º caracter

Publicado por jcs (494 intervenciones) el 25/07/2007 08:40:28
Muy buena tu solución de "texto en columnas" (la otra no la he probado), no conocía su existencia.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Extraer dato despues del 2º caracter

Publicado por Pablo (2 intervenciones) el 26/07/2007 05:41:21
Muchas Gracias muchachos, por sus respuesta; lo implemente en excel y en macro (VBA), con el code de JuanC. Les dejo aqui una psoible solucion en macros para quien lo necesite:

' EXTRAE EL LARGO DE UN RANGO DE FILAS:
' ESPESOR x ANCHO x LARGO

Dim UltimaFilaA As Long ' var para 1° array
Dim c As Long ' COLUMNA
Dim f As Long ' FILA
Dim n As Long
Dim MIVAR, varcomaExAxL, varcomaL, varcomaExA As String
Dim ExAxL, ExA, Largo, pp As String

Sheets("STOCK SECO").Range("D7").Activate ' SELECCIONA HOJA Y CELDA C7
Range("D7").Select ' SELECCIONA INICIO DE CELDA
Selection.End(xlDown).Select ' HASTA LA ULTIMA FILA CON DATOS DE ESE RANGO
UltimaFilaA = ActiveCell.Row

For f = 7 To UltimaFilaA ' desde fila=7 hasta la utima celda con datos del D4
MIVAR = Cells(f, 3)
MIVAR = VBA.Replace(MIVAR, " x ", "*") ' REEMPLAZA LAS x por *
If MIVAR <> "" Then
pp = InStrRev(MIVAR, "*")
ExA = Mid(MIVAR, 1, pp - 1)
Largo = Mid(MIVAR, pp + 1)
Cells(f, 9) = varcomaExA ' escribe Espesor * Ancho
Cells(f, 10) = varcomaL ' escribe Laargo
End If
Next f

Funciona muy bien, gracias nuevamente muchachos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar