web-dev-qa-db-ja.com

Excelの同じセル内のカンマ区切り値(文字通り、csvではない)を個々のセルに配置

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つの方法:)とにかく将来のためにそして知識のためにどんなアイデアにも感謝します!

3
Trufa

Excel内で、[データ]-> [テキストから列へ]を試してください。

次に、区切り文字として「、」を選択します。これにより、コンマが現在ある場所に列区切りが配置されます。

4
Larry C

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をあまり知らないので、それを行うためのより良い方法かもしれません。

0
ho1

したがって、コンマの代わりに改行が必要な場合は、それらを見つけてchar(10)に置き換える必要があります。この式を試してください。

= SUBSTITUTE(A2、 "、"、CHAR(10))

数式は、A2のテキストのコンマを置き換え、改行で置き換えます。

例:A2に含まれるもの:

some @ gmail.com、somebody @ yahoo.com

その後、次のように返されます。

[email protected]
[email protected]

0
nifraz

CSVとして保存し、検索して,\nに置き換えることはできませんか?

0
Hello71

Excelファイルをcsvにエクスポートします。

Linuxマシンにコピーして、Vimエディターで編集します。

次に、次のように入力します。

%s/,/\\n/g

これはそのコマンドの内訳です:

  • -コマンドを実行します
  • %s-置換
  • /-セパレータ
  • -検索する文字列
  • /-セパレータ
  • ****-次の文字を無視する制御文字ですが、この場合、次の\ n部分を文字列にしてコンマを置き換えます
  • \ n-カンマを置き換える文字列
  • /-セパレータ
  • g-グローバル

これにより、コンマが検索されてグローバルに改行に置き換えられ、すべてのセルが新しい行に配置されます。その後、このファイルをExcelに再インポートできます。

Linuxを使用しない場合はお詫びします。これは私の専門分野であり、エディターと文字列操作ツールはWindowsよりもはるかに優れています。

0
Chris