2011-02-02 16:01:08 +0000 2011-02-02 16:01:08 +0000
132
132

カンマで区切られたリストに列を変換する

私はこのようなA列の不特定多数の行を取る簡単なExcelシートを作成するタスクを持っています:

1234
123461
123151
11321

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

1234,123461,123151,11321

これを行うための最も簡単な方法は何ですか?

回答 (14)

146
146
146
2011-02-02 16:37:59 +0000

あなたのデータがA1で始まると仮定して、私は列Bに次のように置くだろう:

B1:

=A1

B2:

=B1&","&A2

あなたはその後、全体の列の下に列B2を貼り付けることができます。B列の最後のセルは、これでA列のカンマ区切りのリストになるはずです。

76
76
76
2012-06-05 05:24:51 +0000
  • Excelの列をコピー
  • Wordを開く
  • “特別な貼り付け "をテキストのみとして
  • Wordのデータを選択します(,で区切られたテキストに変換する必要があるもの)、Ctrl-H(検索&置換)を押します
  • "何を検索 "ボックスで^pを入力
  • "置換 "ボックスで,を入力
  • "すべてを置換 "を選択します
34
34
34
2017-01-25 18:05:00 +0000

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

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

23
23
23
2011-02-03 14:10:54 +0000

私は実際に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)を置くと、それは私にカンマ区切りのリストを与えます。

10
10
10
2015-04-22 20:46:58 +0000

別のアプローチとしては、Excel の列をこのブラウザ内ツールに貼り付けることです: convert.town/column-to-comma-separated-list

テキストの列をカンマで区切られたリストに変換します。

7
7
7
2011-02-06 22:53:14 +0000

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

%s/$/,/

このコマンドを説明するには:

  • % は、すべての行に対してアクション(すなわち、検索と置換)を行うことを意味します
  • s は置換を示します
  • / は引数(すなわち、s/find/replace/options)を分離します
  • $ は行の終わりを表します
  • , はこの場合、置換テキストです
7
7
7
2011-02-02 19:12:57 +0000

このようなことができます。巨大なスプレッドシートの話をしていない場合、これは'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でこれを行うことができると確信していますが、私は現時点でどのようにわからないし、仕事に戻って取得する必要があります。)

2
2
2
2011-04-08 15:54:06 +0000

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

2
2
2
2011-02-02 16:12:16 +0000

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

1
1
1
2014-10-06 22:56:30 +0000

Sux2Loseさんの回答は私の好ましい方法ですが、数千行以上の行を扱っている場合はうまくいきませんし、コンピュータがあまり利用可能なメモリを持っていない場合は、さらに少ない行数でも壊れてしまうかもしれません。そして、ワークブックをA1として保存します。これでcsvは基本的にはテキストエディタで開くことができるプレーンテキストのカンマ区切りリストになります。そうしないと Excel は値の間にカンマを入れることを認識しません。

1
1
1
2011-09-28 17:23:52 +0000

私はgeneratecsv()サブを改良して、複数のリストを含むエクセルシートを処理するために、各リストのタイトルとリストのタイトルの両方を空行で区切っています。そこで、ルーチンを修正して、以下のようにしました。

0
0
0
2019-11-29 07:33:32 +0000

私はこのようにしました

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

-1
-1
-1
2016-11-02 12:45:34 +0000

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

-2
-2
-2
2011-02-02 16:32:57 +0000

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

関連する質問

6
13
9
10
7