Los valores separados por comas (literalmente, no csv) en la misma celda en excel, se colocan en celdas individuales

2

Tengo una columna de celdas en Excel que contiene correos, algunas solo contienen un correo como deberían, pero otras tienen más de un correo electrónico por celda en este formato:

[email protected], [email protected], [email protected]

Lo que quiero lograr es conseguirlos así:

[email protected]
[email protected]
[email protected]

Supongo que (no confíes en mi palabra) podrías hacer algún tipo de declaración en el sentido de

if (cell contains ", ")
get string from ", " to ", " and paste somehow
else "b1"

Puede que estés gritando en tu pantalla ahora mismo :) (o riéndote) pero es solo cómo lo abordarían, ni idea de las funciones que se utilizarán o si es posible de esta manera.

Así que si tienes alguna idea te la agradezco !!

Por si acaso, quiero hacer un csv fuera de este archivo para que cualquier solución que lo haga ...

¡Gracias por adelantado!

Trufa

BTW ¡Espero haber explicado el problema lo suficientemente claro si no, por favor solicite aclaraciones!

EDITAR: El problema está realmente resuelto, cedí y lo hice uno por uno, el único método que nunca te falla :) ¡Apreciaría cualquier idea de todas formas para el futuro y para el conocimiento!

Trufa
fuente

Respuestas:

2

Dentro de Excel, pruebe Datos - & gt; Texto a columnas.

Luego elija "," como el delimitador. Esto colocará saltos de columna donde están las comas ahora.

Larry C
fuente
¡No puedo encontrar una manera de hacer eso! gracias de todos modos mira mi edición por favor :)
Trufa
0

¿No puede simplemente guardar como CSV y hacer una búsqueda y reemplazo para , a \n?

Hello71
fuente
Entonces, \ n es válido en un archivo csv, lo entenderá?
Trufa
@Trufa: No lo es; solía \n como un marcador de posición para un salto de línea en Notepad ++. Tendrá que averiguar qué representa un salto de línea en búsqueda y reemplazo en su editor de texto.
Hello71
¡No puedo encontrar una manera de hacer eso! gracias de todos modos mira mi edición por favor :)
Trufa
0

Exportar su archivo de Excel a un CSV.

Cópialo en una máquina Linux y edítalo en el editor Vim.

Luego escriba:

%s/,/\\n/g

Este es el desglose de ese comando:

  • : - ejecutar comando
  • % s - sustituto
  • / - separador
  • , - cadena para encontrar
  • / - separador
  • ****: un carácter de control para ignorar el siguiente carácter, pero en este caso queremos que la siguiente parte de \ n sea la cadena con la que reemplaza la coma
  • \norte - cadena para reemplazar la coma con
  • / - separador
  • sol - a nivel mundial

Esto buscará y reemplazará las comas con un salto de línea global y colocará cada celda en una nueva línea. A continuación, puede volver a importar este archivo en Excel.

Le pido disculpas si no usa Linux: esa es mi especialidad y el editor y las herramientas de manipulación de cadenas son mucho mejores que en Windows.

Chris
fuente
Notepad ++ también maneja la búsqueda y reemplazo de expresiones regulares, y se ejecuta en Windows. Lo uso regularmente para casos como este.
glallen
0

No estoy seguro de si mi respuesta encaja aquí ya que es más una respuesta de Stackoverflow, pero podría escribir una macro para hacerlo con bastante facilidad. Por ejemplo, la siguiente macro supondría que las direcciones de correo electrónico actuales están en la primera columna y las copiaría en la segunda columna:

Cells(1, 1).Select
Dim curr As String
Dim cnt As Integer
cnt = 0
For i = 1 To ActiveCell.SpecialCells(xlLastCell).Row
    curr = Cells(i, 1).Value
    If InStr(curr, "@") Then
        If InStr(curr, ",") Then
            Dim tmp() As String
            tmp = Split(curr, ",")
            For j = LBound(tmp) To UBound(tmp)
                cnt = cnt + 1
                Cells(cnt, 2).Value = tmp(j)
            Next
        Else
            cnt = cnt + 1
            Cells(cnt, 2).Value = curr
        End If
    End If
Next i

Sin embargo, no sé mucho de VBA, por lo que podrían ser mejores maneras de hacerlo.

ho1
fuente
0

Así que desea que los saltos de línea en lugar de comas, entonces necesita encontrarlos y reemplazarlos con char (10). Prueba esta fórmula.

= SUSTITUTO (A2, ",", CHAR (10))

La fórmula reemplazará las comas del texto en A2 y las reemplazará con un salto de línea.

Ej .: Si A2 contiene:

alguien @ gmail.com, alguien @ yahoo.com

entonces volverá como

[email protected]
[email protected]

nifraz
fuente