Saya perhatikan bahwa "EXEC MySproc," & "arg, " & "arg2"
pada dasarnya sama dengan =CONCATENATE("EXEC MySproc,", "arg,", "arg2")
termasuk kemampuan untuk menggunakan evaluasi, fungsi dan lain-lain. Apa usecase untuk menggunakan =CONCATENATE()
vs &
?
microsoft-excel
Taylor Ackley
sumber
sumber
CONCATENATE()
dan&
sedang dilaksanakan secara internal berbeda di Excel?Jawaban:
Ini untuk orang yang suka mengetik lebih banyak. Mungkin audiens yang sama yang melakukan hal-hal seperti
=Sum((A1*A2)-A3)
bukan=(A1*A2)-A3
. (Ya, orang-orang ini ada, dan saya tidak tahu mengapa mereka melakukan itu)Ini juga memberikan peluang bagus untuk membuat Fungsi Didefinisikan Pengguna Anda yang pertama dengan VBA untuk membuat sesuatu yang lebih berguna daripada Concatenate ().
Excel 2016 (dengan langganan Office 365) memiliki fungsi baru yang disebut TextJoin () , yang mengambil pembatas dan rentang sebagai argumen dan jauh lebih cepat daripada mengetik ampersand dan pembatas sebagai string teks. Sekarang, itu berguna.
sumber
=Sum(A1,A2)
(sebagai alternatif=A1+B1
)?=A1+A2
tetapi karena alasan tertentu, mereka menulis=Sum(A1+A1)
. Atau di=Sum(A1-A2)
mana mereka bisa kita=A1-A2
. Atau di=Sum(A1*A2)
mana mereka bisa menggunakannya=A1*A2
. Beberapa orang memasukkan semua jenis rumus ke fungsi Sum () dan saya mencoba memahami alasannya.Mungkin karena mereka menggunakan tombol Sisipkan Fungsi.
Saya kadang-kadang melakukan ini ketika saya makan dengan tangan kiri dan saya hanya melakukan beberapa formula level rendah, atau ketika saya menggunakan perangkat sentuh dan tidak dapat diganggu untuk beralih antara simbol, huruf, dan angka di layar sentuh .
sumber
.
untuk perl, pipa-pipa||
untuk SQL, tidak ada karakter untuk cmd dan bash,+
untuk Java. Apakah saya benar-benar perlu&
hanya untuk Excel?.
,||
dan+
kemudian Anda dapat mengingatnya&
. Lebih mudah daripadaconcatenate
, esp. jika seseorang tidak fasih berbahasa Inggris. Ini juga digunakan dalam VBAVERKETTEN
dalam bahasa Jerman Excel)Ini hanya memiliki alasan historis dan kompatibilitas. Versi Excel sebelumnya tidak mendukung satu format, dan alat spreadsheet lainnya (seperti Google Documents, Apple Numbers, atau Open Office) tidak mendukung yang lain.
Pilih mana yang Anda suka.
Perhatikan bahwa tergantung pada format penyimpanan Anda, Excel membutuhkan lebih banyak ruang untuk menyimpan
CONCATENATE()
daripada&
.sumber
&
itu penggantiCONCATENATE
sampai sekarang. Saya jarang menggunakan excel, tetapi ketika saya melakukannya biasanya untuk sesuatu yang perlu digabungkanMenurut pendapat saya, penggunaan concatenate dan ampersand secara selektif , dapat menghasilkan formula yang lebih jelas.
Rangkaian ini rincian alamat, menggunakan campuran dari
CONCATENATE
dan&
tampaknya jelas bagi saya:Than eksklusif penggunaan
&
:Dan penggunaan eksklusif
CONCATENATE
Kemudian lagi, saya berpendapat bahwa UDF seperti
BuildAddress
akan menjadi solusi yang lebih baik (dan akan lebih baik ditempatkan untuk menangani kehalusan pemformatan alamat dalam domain internasionalisasi - walaupun saya belum mengimplementasikannya) ...Tapi mungkin contoh lain, yang termasuk penggunaan
&
dalam string literal, lebih baik menunjukkan kesulitan membaca formula yang memaksa dirinya untuk secara eksklusif menggunakan operator:Mungkin lebih baik ditulis sebagai:
Tetapi kinerjanya yang penting, dan tergantung pada jumlah argumen yang digabungkan, dan panjang setiap argumen,
CONCATENATE
fungsi tersebut akan tampak mengungguli operator gabungan dengan faktor antara 4 dan 6. Harus diakui, contoh ini ekstrem, dengan 255 argumen digabungkan, 10.000 kali. Saya tidak merekomendasikan menggunakan panjang argumen string lebih besar dari 32, atau Anda mungkin kehabisan memori / crash Excel.Inilah mekanisme penetapan waktu yang kasar:
Dan hasilnya, sesuai dengan panjang argumen:
Tapi kemudian, kita bahkan belum membicarakan gajah di ruangan itu. Anda sedang membangun perintah SQL menggunakan gabungan. Jangan lakukan itu. Anda sedang menjalankan prosedur tersimpan yang menerima parameter. Kecuali Anda telah membersihkan input Anda (dan saya kira Anda belum), membangun string SQL menggunakan concatenation meminta serangan SQL-injection. Anda mungkin juga mengekspos UDF yang disebut
JohnnyDropTables
...sumber
Ini adalah perbedaan domain semantik. Concatenate adalah nama fungsi spreadsheet. Ampersand adalah operator gabungan yang dipinjam dari Visual Basic. Orang yang tidak pernah terbuka menggunakan VBA akan menemukan fungsi yang jauh lebih mudah digunakan daripada VBA Syntax. Itu alasan yang sama mengapa ada tombol pintas, ikon, dan opsi menu untuk disimpan, yang membuat perangkat lunak lebih mudah digunakan.
sumber
Saya menggunakan keduanya.
Untuk daftar panjang yang mungkin perlu saya ulas secara visual, koma membutuhkan lebih sedikit ruang mata dibandingkan dengan ampersand.
Lebih mudah untuk membaca daftar sel yang dipisahkan oleh koma daripada dipisahkan oleh ampersand, terutama karena tampilan ampersand (setelah 15 jam sehari) terlalu banyak seperti $.
Ini memberikan peran yang berarti bagi CONCATENATE.
Tapi - setuju - tidak ada manfaat kecepatan, atau perbedaan fungsional.
sumber
Satu use case khusus adalah yang=CONCATENATE(A1:A10)
jauh lebih pendek daripada=A1&A2&A3&A4&A4&A6&A7&A8&A9&A10
. Itu juga jauh lebih jelas benar (sebenarnya&
versi contoh memiliki kesalahan yang disengaja).Saya mencoba ini dulu, tetapi saya menggunakan kantor Excel, yang dalam bahasa Jerman.
TEXTKETTE
berperilaku seperti yang saya jelaskan, tetapi dokumentasi menunjukkan itu adalah fungsi yang agak baru, dan menggantikanVERKETTEN
(yang akan menjadi setara dengan JermanCONCATENATE
).sumber
CONCATENATE
formulirnya lebih jelas benar. Jika Anda ingin menggabungkan semua elemen rentang, memberikan rentang tersebut jauh lebih rentan kesalahan, daripada memberikan masing-masing elemen satu per satu.&
formulir memiliki kesalahan yang disengaja.=CONCATENATE(A1:A10)
tidak berfungsi di Excel. Jika Anda memiliki fungsi seperti itu, itu adalah UDF khusus, bukan Excel asli. Tapi itu tidak bisa menjadi UDF dengan nama yang sama dengan fungsi asli.SUM
dan operator suka+
, tapi itu tidak berlaku untukCONCATENATE
fungsi Excel .=CONCATENATE(A1:A2)
adalah tidak pernah hasil yang sama seperti=A1&A2
=CONCATENATE(A1:A10)
memberikan hasilA1
, jadi jelas bukan hanya lebih pendek tetapi berbedaSaya tidak melihat jawaban yang benar di sini, tetapi memiliki beberapa wawasan. (untuk siapa saja yang mungkin di masa depan mencari jawaban ini)
"Concatenate" adalah fungsi lawas yang lebih lama, yang melakukan hal yang sama dengan "&", "&" ditambahkan kemudian untuk konsistensi dalam bahasa pemrograman. Namun, "Concatenate" telah digantikan oleh "Concat" untuk mendukung rentang, sehingga Anda dapat menggabungkan A1: A10 tanpa memerlukan skrip khusus. "&" Masih tidak mengizinkan rentang dan hanya mengambil sel pertama dengan cara yang sama "Fungsi gabungan". Jadi jika menggabungkan rentang, "Concat" memberikan bahwa fungsi ekstra berubah dari 2 gaya sebelumnya yang hanya dikodekan secara berbeda. Membuat "Concatenate" dan "&" pada dasarnya preferensi ketika menggunakan string gabungan non-range diperlukan pada bagaimana Anda ingin mengetiknya.
https://support.office.com/en-ie/article/concat-function-9b1a9a3f-94ff-41af-9736-694cbd6b4ca2
sumber
Microsoft RTFM mengatakan gunakan
&
.BTW, Anda akan mendapatkan jawaban berbeda saat menggunakan operator SUM.
sumber
=
alternatif - memasukkan fungsi suka@CONCATENATE(A1,A2)
dan perhitungan suka+A5+A6
atau-A5+A6
.