В Excel попробуйте Data -> Text to Columns.
Затем выберите «,» в качестве разделителя. Это поместит разрывы столбцов там, где запятые сейчас.
У меня есть столбец ячеек в Excel, который содержит письма, некоторые содержат только одно письмо, как они должны, но другие, имеют более одного письма на ячейку в этом формате:
one@example.com, two@example.com, three@example.com
Чего я хочу добиться, так это получить их так:
one@example.com two@example.com three@example.com
Я предполагаю (не верьте мне на слово), вы могли бы сделать что-то вроде if в соответствии с
if (cell contains ", ") get string from ", " to ", " and paste somehow else "b1"
Возможно, вы кричите прямо сейчас на своем экране :) (или смеетесь), но это просто, как бы вы подошли к нему, не имея представления о функциях, которые будут использоваться, или если это вообще возможно.
Так что если у вас есть идеи, я ценю это!
На всякий случай, я хочу сделать CSV-файл из этого файла, поэтому любой обходной путь, который бы это сделал, ...
Заранее спасибо!
Trufa
Кстати, я надеюсь, что объяснил проблему достаточно ясно, если нет, пожалуйста, попросите разъяснений!
РЕДАКТИРОВАТЬ: Проблема на самом деле решена, я сдался и сделал это один за другим, один метод, который никогда не подведет вас :) Я буду признателен за любые идеи в любом случае на будущее и ради знаний!
В Excel попробуйте Data -> Text to Columns.
Затем выберите «,» в качестве разделителя. Это поместит разрывы столбцов там, где запятые сейчас.
Разве вы не можете просто сохранить как CSV и сделать поиск и заменить на ,
на \n
?
Export your Excel file to a csv.
Copy it across to a Linux machine and edit it in Vim editor.
Then type:
%s/,/\\n/g
This is the breakdown of that command:
This will find and replace the commas with a line break globally and put every cell onto a new line. You can then reimport this file into Excel.
Apologies if you dont use Linux - that is my speciality and the editor and string manipulation tools are much better than on Windows.
Я не уверен, подходит ли мой ответ здесь, так как это скорее ответ Stackoverflow, но вы могли бы написать макрос, чтобы сделать это довольно легко. Например, следующий макрос предположит, что текущие адреса электронной почты находятся в первом столбце, и скопирует их во второй столбец:
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
Я не знаю VBA, хотя, так что, возможно, есть лучшие способы сделать это.
Таким образом, вы хотите разрывать строки вместо запятых, тогда вам нужно найти и заменить их на char (10). Попробуйте эту формулу.
= ПОДСТАВИТЬ (А2, "", СИМ (10))
Формула заменит запятые из текста в A2 и заменит их на разрыв строки.
Например: если A2 содержит:
кто-то @ gmail.com, кто-то @ yahoo.com
тогда он вернется как:
somebody@gmail.com
somebody@yahoo.com