マイクロソフトエクセル – カンマで区切られたリストに列を変換する

microsoft-excel

こんな感じでA列の不特定多数の行を取る簡単なエクセルシートを作成する作業があります

1234
123461
123151
11321

そして、ユーザーが簡単にコピーして別のプログラムに貼り付けることができるように、別のセルにカンマで区切られたリストにしてください

1234,123461,123151,11321

一番簡単な方法は何でしょうか?

  141  muncherelli  2011-02-02


ベストアンサー

あなたのデータがA1から始まると仮定して、私は次のようにB列に書きます

B1:

=A1

B2:

=B1&","&A2

そして、B2列を下に丸ごと貼り付けます。B列の最後のセルは、A列のカンマ区切りのリストになっているはずです

151  Sux2Lose  2011-02-02


  • エクセルの列をコピーします
  • Open Word
  • “特殊な貼り付け “をテキストのみに
  • Word内のデータ(,で区切られたテキストに変換したいもの)を選択し、CtrlH(検索&置換)を押します
  • 検索」ボックスに^pと入力してください
  • 置換先」ボックスに,と入力してください
  • すべてを置き換える」を選択

87  Michael Joseph  2012-06-05


Office 365 Excelをお持ちの場合は、TEXTJOIN()を使用することができます

=TEXTJOIN(",",TRUE,A:A)

enter image description here

47  Scott Craner  2017-01-25


私は実際にVBAですべての作業を行うモジュールを作成しました。これは私の範囲リストを取り、カンマで区切られた文字列を作成し、それを私の選択したセルに出力します

Function csvRange(myRange As Range)
Dim csvRangeOutput
Dim entry as variant
For Each entry In myRange
If Not IsEmpty(entry.Value) Then
csvRangeOutput = csvRangeOutput & entry.Value & ","
End If
Next
csvRange = Left(csvRangeOutput, Len(csvRangeOutput) - 1)
End Function

そこで、私のセルに=csvRange(A:A)と入力すると、カンマ区切りのリストが表示されます

25  muncherelli  2011-02-03


別の方法としては、Excelの列をこのインブラウザツールに貼り付けるという方法があります

convert.town/column-to-comma-separated-list

テキストの列をカンマ区切りのリストに変換します

いずれにせよ、ユーザーは別のプログラムにコピー&ペーストしているので、これは彼らにとっては簡単なことかもしれません

12  sunset  2015-04-22


このようなことができます。もしあなたが巨大なスプレッドシートの話をしていないなら、これは「OK」を実行するでしょう

  • Alt-F11、リストを作成するためのマクロを作成します(以下のコードを参照してください)
  • ショートカットやツールバーのボタンに割り当てます
  • ユーザーが数字の列をA列に貼り付け、ボタンを押すと、リストはセルB1に入ります

以下はVBAのマクロコードです

Sub generatecsv()

Dim i As Integer
Dim s As String

i = 1

Do Until Cells(i, 1).Value = ""
If (s = "") Then
s = Cells(i, 1).Value
Else
s = s & "," & Cells(i, 1).Value
End If
i = i + 1
Loop

Cells(1, 2).Value = s

End Sub

セルB1の書式を’text’に設定してください。VBAでもできると思いますが、今のところ方法がわからず、仕事に戻る必要があります。)

7  mpeterson  2011-02-02


vi や vim を使用して、各行の最後にカンマを置くだけです

%s/$/,/

このコマンドを説明するために

  • %は、すべての行に対してアクション(すなわち、検索と置換)を行うことを意味します
  • sは置換を示します
  • /は引数を区切ります(つまり、s/find/replace/options)
  • $は行末を表します
  • ,はこの場合の置換テキストです

7  Breathwork  2011-02-06


あなたは、行を列に変換する方法についてのHow-To Geekのガイドを使用して、単にそれを反転させることができます。その後、csvとしてデータをエクスポート (カンマ消去形式), そして、あなたの平文のカンマで区切られたリストを持っています!メモ帳からコピーして、必要に応じてエクセルに戻すことができます。また、あなたがカンマの後にスペースが必要な場合は、検索を行うことができます

2  Duall  2011-02-02


muncherelliさん、私はあなたの答えが気に入ったので、それをいじってみました。)ちょっとしたことですが、私はシートからデータを取り出して、データベースへの問い合わせに使用することがあります。私はオプションの “textQualify “パラメータを追加しました。これは、クエリで使用可能なカンマで区切られたリストを作成するのに役立ちます

Function csvRange(myRange As Range, Optional textQualify As String)
'e.g. csvRange(A:A)  or csvRange(A1:A2,"'") etc in a cell to hold the string
Dim csvRangeOutput
For Each entry In myRange
If Not IsEmpty(entry.Value) Then
csvRangeOutput = csvRangeOutput & textQualify & entry.Value & textQualify & ","
End If
Next
csvRange = Left(csvRangeOutput, Len(csvRangeOutput) - 1)
End Function

2  mitch  2011-04-08


私は generatecsv() サブを改良して、複数のリストを含むエクセルシートを扱うようにしました

list title 1

item 1
item 2

list title 2

item 1
item 2

そして、それらを複数の行、リストごとに1つのコースに結合します

あるクライアントから、主題に基づいて複数のキーワードをリスト形式で送られてきたので、それらのキーワードを簡単にウェブページに取り込む方法が必要でした。そこで、ルーチンを修正して以下のようにしました

    Sub generatecsv()

Dim dataRow As Integer
Dim listRow As Integer
Dim data As String

dataRow = 1: Rem the row that it is being read from column A otherwise known as 1 in vb script
listRow = 1: Rem the row in column B that is getting written

Do Until Cells(dataRow, 1).Value = "" And Cells(dataRow + 1, 1).Value = ""
If (data = "") Then
data = Cells(dataRow, 1).Value
Else
If Cells(dataRow, 1).Value <> "" Then
data = data & "," & Cells(dataRow, 1).Value
Else
Cells(listRow, 2).Value = data
data = ""
listRow = listRow + 1
End If
End If
dataRow = dataRow + 1
Loop

Cells(listRow, 2).Value = data

End Sub

1  roger lamb  2011-09-28


Sux2Loseの答えは私の好ましい方法ですが、それはあなたが数千行以上を扱っている場合は動作しませんし、あなたのコンピュータがあまり利用可能なメモリを持っていない場合は、さらに少ない行のために壊れる可能性があります

この場合の最良の方法は、列をコピーして新しいワークブックを作成し、新しいワークブックのA1にスペシャルを貼り付け、Transposeで列が行になるようにすることです。そしてワークブックを.csvとして保存します。これでcsvは基本的にはテキストエディタで開くことができる平文のカンマ区切りのリストになります

注:csvとして保存する前に、列を行に変換することを忘れないでください。そうしないと、Excelは値の間にカンマを入れることができません

1  samthebrand  2014-10-06


私はこうしました

不要な列とデータをすべて削除し、.csvファイルとして保存した後、Visual Studioのコードエディタを使用して余分なカンマと改行を置き換えました。ホラ

0  Arun Prasad E S  2019-11-29


最も簡単な方法の一つは、このようなカンマ区切りのタスクにzamazin.coのウェブアプリを使用することです。列データを入力して変換ボタンを押すだけでカンマ区切りのリストを作成できます。他にもいくつかの設定を使用して、目的の出力を改善することができます

http://zamazin.co/comma-separator-tool

enter image description here

-1  Hakan  2016-11-02


結果を表示したいセルに=CONCATENATE(A1;",";A2;",";A3;",";A4;",";A5)を使用します

-2  Johnny  2011-02-02


タイトルとURLをコピーしました