Office 2013 - Excel: Eliminar caracter | al final de una cadena

Anónimas
2017-03-30T21:21:49+00:00

Buenas tardes.

Tengo una planilla que tiene el siguiente contenido, cada uno en una celda diferente:

1|N|3.1|Atyro 3.2.21| 0000005049692|00214935520018|2|Av. Luis Alberto de Herrera 3326|24865008|

4|062016|76|1160709546.41||

5|1|DO|10160547|MARTINEZ|PEREZ|MARIA|JOSE|15081947|2|1|

6||1|DO|10160547|1|01102012|1|20|12|9|99|||N|30|0|1||

7||1|DO|10160547|1|1|127741.95|||

Cada uno de los registros tiene al final el caracter | el cual puede aparecer una vez, dos veces o incluso más. Preciso eliminar esos caracteres que están al final de la cadena, independientemente de la cantidad que sean. ¿Hay alguna forma de resolverlo con funciones?

Muchas gracias.

Microsoft 365 y Office | Excel | Para la casa | Windows

Pregunta bloqueada. Esta pregunta se migró desde la Comunidad de Soporte técnico de Microsoft. Puede votar si es útil, pero no puede agregar comentarios o respuestas ni seguir la pregunta.

0 comentarios No hay comentarios
Respuesta aceptada por el autor de la pregunta
Héctor Miguel 71,595 Puntos de reputación
2017-03-31T06:25:37+00:00

suponiendo que tu primer cadena de caracteres está en la celda [B2]...

prueba con la siguiente formula de entrada matricial, se confirma pulsando ctrl+shift+enter

=izquierda(b2,max(fila(indirecto("1:"&largo(b2)))*(extrae(b2,fila(indirecto("1:"&largo(b2))),1)<>"|")))

OJO con el separador de argumentos, mi sistema usa a la coma

saludos,

hector.

¿Le ha resultado útil esta respuesta?

1 persona ha encontrado útil esta respuesta.
0 comentarios No hay comentarios
Respuesta aceptada por el autor de la pregunta
Anónimas
2017-04-03T17:09:21+00:00

En cualquier caso lo que se quiere hacer no es correcto (ni necesario). 

Creo que (por fin) he entendido tu punto de vista.

Si se quieren devolver (nuevamente) esos datos a un rango de celdas separadas, es necesario que se conserven los grupos de separadores tal cual, para que las celdas vacías sigan permaneciendo vacías y cada campo siga apareciendo en su columna correspondiente.

Ahora entiendo tu frase «Sólo quiere borrar los | que están al final.» ![](https://learn-attachment.microsoft.com/api/attachments/c259481c-b63d-4f66-b77f-e41fd753b710?platform=QnA)  (he estado espeso).

¿Le ha resultado útil esta respuesta?

0 comentarios No hay comentarios

38 respuestas adicionales

Ordenar por: Muy útil
  1. Anónimas
    2017-04-02T20:04:39+00:00
    • En un módulo ordinario, pega este código:

    Function QuitaU(miTexto$)

    Dim i&

    miTexto = Replace(miTexto, "|||||", "|")

    miTexto = Replace(miTexto, "||||", "|")

    miTexto = Replace(miTexto, "|||", "|")

    miTexto = Replace(miTexto, "||", "|")

    For i = Len(miTexto) To 1 Step -1

    If IsNumeric(Mid(miTexto, i, 1)) Then

    QuitaU = Left(miTexto, i)

    Exit Function

    End If

    Next i

    End Function

    • Las 4 filas siguientes a Dim i&, lo que hacen es reemplazar cualquier secuencia de 2, 3, 4 o 5 barras consecutivas por una sola (en cualquier parte del texto), si no quieres que ello sea así; simplemente bórralas.
    • En la celda donde quieras el resultado escribe la llamada a la función:

       =QuitaU(celda_con_el_texto)

    Por ejemplo si el texto origen está en [A2]:   en [C2]    =QuitaU(A2)

    ¿Le ha resultado útil esta respuesta?

    0 comentarios No hay comentarios
  2. Anónimas
    2017-04-02T19:33:29+00:00

    Sí claro, sirve si resuelve lo que preciso. ¡Muchas gracias!

    ¿Le ha resultado útil esta respuesta?

    0 comentarios No hay comentarios
  3. Anónimas
    2017-04-01T09:54:56+00:00

    Tal vez, si se lo explicas, lo comprendan.

    ¿Le ha resultado útil esta respuesta?

    0 comentarios No hay comentarios