Isi di Excel, tetapi berdasarkan beberapa nilai


6

Saya memiliki spreadsheet (tidak dibuat oleh saya) yang memiliki entri kosong di satu kolom di mana mereka benar-benar harus memiliki data. Saya ingin mengambil setiap sel kosong dan mengisinya dengan terdekat nilai di atasnya. Saya mencari intervensi manual sesedikit mungkin, karena saya harus melakukannya berulang kali.

Saya pikir beberapa versi Excel sebelumnya, atau mungkin spreadsheet lain dari masa lalu, akan melakukan ini secara default - yaitu, jika Anda memilih kolom dengan foo dan bar, dan memilih setara dengan "mengisi", Anda akan apa yang ada di kolom MAU. Apa yang sebenarnya saya dapatkan di Excel adalah kolom GET.

HAVE:            WANT:           GET:
foo     1        foo     1       foo     1
        2        foo     2       foo     2
bar     1        bar     1       foo     1
        2        bar     2       foo     2
        3        bar     3       foo     3

Saya khawatir ini mungkin perlu makro untuk dilakukan dengan benar. Saya dulu jagoan dengan makro Excel, dan tiba-tiba semuanya ada di VB.

Posisi fallback saya adalah membuang semuanya ke CSV dan menulis skrip Python, tetapi jika ada cara untuk melakukannya di Excel, itu akan jauh lebih disukai. Bahkan jika itu melibatkan beberapa langkah manual yang berbeda, itu tidak masalah; tidak hanya satu langkah per kelompok garis. Artinya, proses "salin kolom, lakukan X untuk itu, potong dan tempel kembali" akan berhasil, tetapi "lakukan X untuk setiap kejadian foo atau bar" tidak akan. File terlalu besar untuk itu.

Pikiran apa pun dihargai!

Jawaban:


7

Tuan Excel memiliki jawaban untuk versi Excel pra-Pita. Di bawah ini adalah petunjuk untuk Excel 2007. Dengan foo / bar di kolom A dan data Anda di kolom B:

  1. Pilih semua data di kolom A, dari atas ke bawah.
  2. Klik Beranda- & gt; Temukan & amp; Pilih- & gt; Ke Khusus
  3. Klik "Kosong" dan tekan "Oke". ( Pada titik ini, semua kosong di kolom harus dipilih, dan sel A2 harus menjadi sel aktif. )
  4. Tekan "=", lalu tekan untuk memilih sel A1.
  5. tekan Ctrl Memasukkan untuk menyalin formula ke semua sel yang dipilih.

Opsional Langkah 7 : Jika Anda hanya perlu nilai, salin seluruh kolom dan "Rekatkan Khusus" hanya nilai di atas.


Ini tidak bekerja persis seperti yang disajikan, tetapi halaman yang direferensikan membuat saya di sana. Terima kasih! Maaf karena tidak merespons terlalu lama - stackoverflow mengirimi saya email tetapi tampaknya superuser tidak.
Jenn D.

Saya kebetulan perlu melakukan ini lagi, dan memutuskan untuk mencoba lagi. Saya tidak mengalami kesulitan. Apakah Anda tahu langkah mana yang menyebabkan masalah bagi Anda?
technomalogical

Ini sangat berguna. Satu hal yang saya perhatikan, sel referensi (mis. = A1 dalam kasus ini), harus berupa format "Umum". Tidak berfungsi jika itu "Teks". Membuatku gila untuk sementara waktu. Ya, saya tahu ini dari seratus tahun yang lalu ... masih emas.
Minnow

2

Untuk melakukannya secara manual:

Tambahkan kolom (B) antara kolom foo-bar (katakanlah A) dan kolom angka (sekarang C).

Formula dalam B1 adalah sesuatu seperti =A1, dalam B2 (dan disalin hingga akhir data) =if(A2="",B1,A2). Kolom B sekarang memiliki foo-bar hampir seperti yang Anda inginkan, tetapi itu adalah hasil dari rumus daripada teks.

Salin kolom B dan paste special ke dalam kolom A sebagai nilai.

Anda sekarang dapat menghapus kolom B.

Jika Anda mendapatkan idenya, mungkin lebih cepat melakukannya daripada menuliskan deskripsi, tetapi apakah Anda lebih memilih skrip Python atau tidak akan tergantung pada jumlah spreadsheet ...

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.