Pertanyaan Bagaimana cara menggabungkan baris dalam kolom menjadi satu sel dalam excel?


Misalnya

A1:I
A2:am
A3:a
A4:boy 

Saya ingin menggabungkan semuanya ke satu sel "Iamaboy"
Contoh ini menunjukkan 4 sel bergabung menjadi 1 sel tetapi saya memiliki banyak sel (lebih dari 100), saya tidak dapat mengetiknya satu per satu menggunakan A1 & A2 & A3 & A4 apa yang dapat saya?


74
2017-11-15 11:57


asal


Jawaban:


Saya menyajikan kepada Anda fungsi ConcatenateRange VBA saya (terima kasih Jean untuk saran penamaan!). Ini akan mengambil berbagai sel (dimensi apa pun, arah mana saja, dll.) Dan menggabungkannya menjadi satu string. Sebagai parameter ketiga opsional, Anda dapat menambahkan seperator (seperti spasi, atau koma yang di-sererasi).

Dalam hal ini, Anda akan menulis ini untuk menggunakannya:

=ConcatenateRange(A1:A4)

Function ConcatenateRange(ByVal cell_range As range, _
                    Optional ByVal separator As String) As String

Dim newString As String
Dim cell As Variant

For Each cell in cell_range
    If Len(cell) <> 0 Then
        newString = newString & (separator & cell))
    End if
Next

If Len(newString) <> 0 Then
    newString = Right$(newString, (Len(newString) - Len(separator)))
End If

ConcatenateRange = newString

End Function

82
2017-11-15 12:29



Jika Anda lebih suka melakukan ini tanpa VBA, Anda dapat mencoba yang berikut ini:

  1. Miliki data Anda di sel A1: A999 (atau semacamnya)
  2. Setel sel B1 ke "= A1"
  3. Setel B2 sel ke "= B1 & A2"
  4. Salin sel B2 hingga ke B999 (mis. Dengan menyalin B2, memilih sel B3: B99 dan menempel)

Sel B999 sekarang akan berisi string teks gabungan yang Anda cari.


141
2017-11-15 17:01



Dalam CONCATENATE Kamu dapat memakai TRANSPOSE jika Anda memperluasnya (F9) kemudian hapus sekitarnya {}kurung suka ini merekomendasikan

=CONCATENATE(TRANSPOSE(B2:B19))

Menjadi

=CONCATENATE("Oh ","combining ", "a " ...)

CONCATENATE(TRANSPOSE(B2:B19))

Anda mungkin perlu menambahkan pemisah Anda sendiri di bagian akhir, misalnya buat kolom C dan transpose kolom itu.

=B1&" "
=B2&" "
=B3&" "

33
2018-06-30 03:30



Dalam kasus sederhana Anda dapat menggunakan metode berikutnya yang tidak mengharuskan Anda untuk membuat fungsi atau menyalin kode ke beberapa sel:

  1. Dalam sel apa pun, tulis kode berikutnya

    =Transpose(A1:A9) 
    

Di mana A1: A9 adalah sel yang ingin Anda gabungkan.

  1. Tanpa meninggalkan sel tekan F9

Setelah itu, sel akan berisi string:

={A1,A2,A3,A4,A5,A6,A7,A8,A9}

Sumber: http://www.get-digital-help.com/2011/02/09/concatenate-a-cell-range-without-vba-in-excel/

Pembaruan: Satu bagian bisa ambigu. Tanpa meninggalkan sel berarti memiliki sel Anda dalam mode editor. Sebagai alternatif, Anda dapat menekan F9 ketika berada di panel editor sel (normaly itu dapat ditemukan di atas spreadsheet)


23
2017-08-05 10:59



Gunakan VBA yang sudah ada Join fungsi. Fungsi VBA tidak diekspos di Excel, jadi saya membungkus Join dalam fungsi yang ditentukan pengguna yang mengekspos fungsionalitasnya. Bentuk paling sederhana adalah:

Function JoinXL(arr As Variant, Optional delimiter As String = " ")
    'arr must be a one-dimensional array.
    JoinXL = Join(arr, delimiter)
End Function

Contoh penggunaan:

=JoinXL(TRANSPOSE(A1:A4)," ") 

dimasukkan sebagai rumus array (menggunakan Ctrl-Bergeser-Memasukkan).

enter image description here


Sekarang, JoinXL hanya menerima larik satu dimensi sebagai masukan. Di Excel, rentang menghasilkan array dua dimensi. Dalam contoh di atas, TRANSPOSE mengkonversi array 2 × 1 dua dimensi ke dalam array 4 dimensi satu dimensi (ini adalah perilaku terdokumentasi dari TRANSPOSE ketika itu diberi makan dengan array dua dimensi satu kolom).

Untuk rentang horizontal, Anda harus melakukan dobel TRANSPOSE:

=JoinXL(TRANSPOSE(TRANSPOSE(A1:D1)))

Batin TRANSPOSE mengubah 1 × 4 array dua dimensi menjadi array dua dimensi 4 × 1, yang luar TRANSPOSE kemudian diubah menjadi 4-elemen array satu dimensi yang diharapkan.

enter image description here

Penggunaan ini dari TRANSPOSE adalah cara yang terkenal untuk mengubah 2D array menjadi 1D array di Excel, tetapi terlihat mengerikan. Solusi yang lebih elegan adalah menyembunyikannya di dalam JoinXLFungsi VBA.


12
2017-10-20 10:40



Bagi yang punya Excel 2016 (dan saya kira versi berikutnya), sekarang ada secara langsung CONCAT fungsi, yang akan menggantikan MENGGABUNGKAN fungsi.

Jadi cara yang benar untuk melakukannya di Excel 2016 adalah:

=CONCAT(A1:A4)

yang akan menghasilkan:

Saya anak lelaki

Untuk pengguna versi lama Excel, jawaban lainnya relevan.


4
2018-03-03 16:54



Untuk Excel 2011 pada Mac itu berbeda. Saya melakukannya sebagai proses tiga langkah.

  1. Buat kolom nilai di kolom A.
  2. Di kolom B, di sebelah kanan sel pertama, buat aturan yang menggunakan fungsi gabungan pada nilai kolom dan ",". Sebagai contoh, asumsi A1 adalah baris pertama, rumus untuk B1 adalah =B1. Untuk baris berikutnya ke baris N, rumusnya adalah =Concatenate(",",A2). Anda berakhir dengan:
QA
, Sekuli
, Pengujian
, Applitools
, Pengujian Visual
, Uji Otomatisasi
, Selenium
  1. Di kolom C buat rumus yang menggabungkan semua nilai sebelumnya. Karena itu aditif, Anda akan mendapatkan semua di bagian akhir. Rumus untuk sel C1 adalah =B1. Untuk semua baris lainnya ke N, rumusnya adalah =Concatenate(C1,B2). Dan Anda mendapatkan:
QA, Sekuli
QA, Sekuli, Pengujian
QA, Sekuli, Pengujian, Applitools
QA, Sekuli, Pengujian, Applitools, Pengujian Visual
QA, Sekuli, Pengujian, Applitools, Pengujian Visual, Uji Otomasi
QA, Sekuli, Pengujian, Applitools, Pengujian Visual, Uji Otomasi, Selenium

Sel terakhir dari daftar akan menjadi apa yang Anda inginkan. Ini kompatibel dengan Excel di Windows atau Mac.


2
2017-12-22 18:11



Saya menggunakan CONCATENATE metode untuk mengambil nilai-nilai kolom dan membungkus tanda kutip di sekitar mereka dengan kolom di antara untuk cepat mengisi WHERE IN () klausul pernyataan SQL.

Saya selalu mengetik =CONCATENATE("'",B2,"'",",") lalu pilih itu dan tarik ke bawah, yang menciptakan =CONCATENATE("'",B3,"'",","), =CONCATENATE("'",B4,"'",","), dll. kemudian sorot seluruh kolom itu, salin ke editor teks biasa dan tempel kembali jika diperlukan, sehingga menghapus pemisahan baris. Ini bekerja, tetapi sekali lagi, hanya sebagai kesepakatan satu kali, ini bukan solusi yang baik untuk seseorang yang membutuhkan ini sepanjang waktu.


1