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!
sumber
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 ...
sumber