Saat menyalin sel dengan jeda baris di Excel dan menempelkannya ke Notepad, teks ditempelkan ke satu baris. Mengapa demikian?
microsoft-excel
notepad
linebreaks
Kyle Dixon
sumber
sumber
Jawaban:
Ini karena sifat cara kerja spreadsheet. Bayangkan Anda memiliki spreadsheet yang penuh dengan data. Jika Anda harus menyalin seluruh baris data, lalu tempel ke Notepad, semua data itu harus dalam satu baris. Ini karena jika Anda menyalin baris data lain dan menempelkannya, baris data berikutnya harus berada pada satu baris. Jika ada jeda baris di baris pertama yang Anda salin, data tidak akan lagi berada dalam dua baris linier. Jika Anda menyalin data dari Notepad dan kembali ke spreadsheet, itu tidak akan menempel dengan benar.
sumber
Alt+Enter
), hanya 0xA yang dimasukkan, bukan 0xD 0xA penuh, yang berartiLF
, bukannyaCR/LF
. Excel menginterpretasikan ini dan menunjukkan jeda baris, sedangkan notepad biasa tidak, karena ia mengharapkanCR/LF
. Itu perbedaan dalam format yang terdeteksi lebih dari bug, tapi tetap saja, itulah alasan yang benar.Ini benar ketika Anda menggunakan Notepad, yang merupakan editor teks dasar Microsoft yang sudah diinstal sebelumnya di Windows.
Namun, Anda dapat menggunakan editor teks yang lebih canggih seperti PSPad atau Notepad ++ (keduanya luar biasa, dan gratis), dan Anda mendapatkan jeda baris Anda ditransfer.
Excel :
Sel ditandai, lalu salin-tempel ke Notepad ++ :
Konten yang sama disisipkan ke Notepad (editor default Windows):
Perhatikan bahwa dalam kedua kasus, tanda kutip ditambahkan secara otomatis!
Editor yang lebih baik memberi Anda juga opsi untuk menampilkan karakter kontrol seperti LineFeed (LF) dan CarriageReturn (CR). Di Notepad ++ ini terlihat seperti:
Sebagai kesimpulan: pilih alat Anda tergantung pada kebutuhan Anda. Jika Anda membutuhkan batas sel yang dipertahankan dalam editor, tetapi konten sel mungkin sedikit diubah, gunakan Notepad. Jika Anda perlu konten sel tidak tersentuh termasuk jeda baris, dan 1: 1-reproduktifitas batas sel tidak penting, gunakan editor lain.
Pemrosesan massal data tersebut
Jika Anda membutuhkan batas sel dan konten sel dipertahankan 1: 1 secara bersamaan, Anda mungkin mengalami masalah.
Mungkin ada solusi yang lebih cerdas, tetapi yang saya lakukan dalam kasus seperti itu adalah menulis sebuah program kecil dalam bahasa apa pun (VBA, Python, atau apa pun yang paling Anda sukai) yang membaca konten dan menambahkan string placeholder untuk jeda baris (sesuatu yang sederhana seperti "### Linebreak ###", yang nantinya dapat digantikan oleh karakter kontrol CR dan LF. Tentu saja, ini adalah pekerjaan fiddly dan masuk akal hanya jika Anda harus memproses data dalam jumlah besar.
Anda mungkin mengalami masalah juga dengan tanda kutip yang ditambahkan. Sekilas ini mungkin berguna untuk mempertahankan batas sel bahkan ketika garis putus dimasukkan. Namun, sel Anda mungkin memiliki tanda kutip bagian dari konten asli, dan kemudian Anda mendapatkan masalah baru. Ada berbagai solusi untuk ini, tetapi perlu perhatian Anda.
sumber
CR
LF
ada sebenarnya karena ia melihatLF
dan menganggap itu seharusnya penuhCR
LF
dan mengubahnya.Keltari 's jawabannya memberikan penalaran logis, sementara jawaban ini berfokus pada perbedaan teknis.
Ada tiga bentuk jeda baris yang digunakan dalam komputasi:
LF
)CR
)CRLF
)Ini adalah pegangan dari cara penulis jenis bekerja.
Excel menggunakan kombinasi dari pemisah baris ini untuk mewakili sel dengan beberapa baris:
Tab
karakter.CRLF
karakter.LF
karakter.Ini menjadi jelas ketika Anda menyimpan buku kerja Anda sebagai
.txt
file dan membukanya dengan editor teks yang mendukung menunjukkan karakter ini.Notepad hanya memproses
CRLF
sebagai baris baru dan mengabaikanLF
atauCR
dengan sendirinya. Mereka masih ada dalam dokumen, tetapi tidak terlihat dengan cara apa pun.Catatan: Anda tidak akan melihat ini ketika menempel bolak-balik, karena Notepad ++ secara otomatis menyesuaikan ujung garis untuk Anda, sedangkan Notepad biasa tidak.
sumber
LF
ini sebenarnya masih hadir ketika disisipkan di notepad, notepad hanya tidak menampilkannya tampak. (Ini membuat secara efektif sama dengan ruang nol lebar.) Oleh karena itu mengapa menyalin data yang disisipkan kembali dari notepad ke Excel termasuk jeda baris ini (meskipun Excel tidak secara otomatis mengubah ukuran baris ke mereka).CRLF
.="A"&CHAR(13)&CHAR(10)&"B"
. Jeda baris yang dihasilkan oleh rumus tidak terlihat di excel, tetapi berfungsi dengan baik jika disalin dan kemudian disisipkan melalui "nilai tempel". Nilai yang disisipkan dari pengetikan"A<CRLF>B"
notepad secara manual dan penyalinan juga akan mempertahankan CRLF.LF
EOL dapat dibaca dengan cepat. yaitu CariLF
karakter, pilih,Ctrl
+C
,Ctrl
+Home
,Ctrl
+F
,Ctrl
+V
,Enter
,Esc
,Enter
. Kemudian berulang kaliF3
,Enter
sampai akhir. [Sunting: <kbd> tidak berfungsi dalam komentar?]Excel menggunakan LF untuk menunjukkan baris baru di dalam sel. Notepad tidak menganggap ini sebagai baris baru karena Windows pada umumnya menggunakan CRLF untuk baris baru.
Notepad ++ lebih cerdas dari Notepad yang relatif sederhana dan dengan demikian mengartikan LF sebagai baris baru juga.
sumber
"
dan Notepad ++ akan menormalkan semua akhir baris agar sesuai. Lihat di sini . Jika Anda menyimpan sebagai gantinya.txt
dan membuka di Notepad ++, sel multilineLF
hanya akan memiliki . Lihat di sini .