Excelにメールを含むセルの列があり、必要に応じて1つのメールしか含まないものもあれば、この形式のセルごとに複数のメールがあるものもあります。
[email protected], [email protected], [email protected]
私が達成したいのは、次のようにすることです。
[email protected]
[email protected]
[email protected]
私は推測しています(私の言葉を受け入れないでください)あなたは
if (cell contains ", ")
get string from ", " to ", " and paste somehow
else "b1"
あなたは今あなたの画面で叫んでいるかもしれません:)(または笑っている)しかしそれはそれに近づく方法であり、使用される機能の見当がつかないか、それがこのように可能であるかどうかさえわかりません。
何かアイデアがあればありがたいです!!
念のため、このファイルからcsvを実行したいので、これを実行するための回避策はすべて実行されます...
前もって感謝します!
トルファ
ところで、私は問題を十分に明確に説明したと思いますが、そうでない場合は説明を求めてください!
編集:問題は実際に解決されました、私はそれを一つずつ与えてやりました、あなたを決して失敗させない1つの方法:)とにかく将来のためにそして知識のためにどんなアイデアにも感謝します!
Excel内で、[データ]-> [テキストから列へ]を試してください。
次に、区切り文字として「、」を選択します。これにより、コンマが現在ある場所に列区切りが配置されます。
Stackoverflowの回答であるため、私の回答がここに収まるかどうかはわかりませんが、マクロを記述してかなり簡単に行うことができます。たとえば、次のマクロは、現在の電子メールアドレスが最初の列にあると想定し、それらを2番目の列にコピーします。
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)に置き換える必要があります。この式を試してください。
= SUBSTITUTE(A2、 "、"、CHAR(10))
数式は、A2のテキストのコンマを置き換え、改行で置き換えます。
例:A2に含まれるもの:
some @ gmail.com、somebody @ yahoo.com
その後、次のように返されます。
CSVとして保存し、検索して,
を\n
に置き換えることはできませんか?
Excelファイルをcsvにエクスポートします。
Linuxマシンにコピーして、Vimエディターで編集します。
次に、次のように入力します。
%s/,/\\n/g
これはそのコマンドの内訳です:
これにより、コンマが検索されてグローバルに改行に置き換えられ、すべてのセルが新しい行に配置されます。その後、このファイルをExcelに再インポートできます。
Linuxを使用しない場合はお詫びします。これは私の専門分野であり、エディターと文字列操作ツールはWindowsよりもはるかに優れています。