Saya memiliki lembaran yang terlihat seperti ini:
Lembar 1
1 2 3 4 5 6 7 8 9 10 11
1 6
2 3 5
3
4 2 4 9 4
5
6 4 6 6
7 5 3 3 3 10 8 4 8
8
9 4 11 12 12 6
10
11 8 5 5 4 9 4 7 6
Apa yang ingin saya lakukan adalah menemukan perbedaan rata-rata dan arah antara nilai di setiap kolom untuk setiap baris. Misalnya, 4 baris pertama akan terlihat seperti:
Average Difference # + Movements # -Movements
1
2 2 1 0
3
4 (2+5+5)/3 2 1
Kosong mewakili nilai N / A karena informasi yang tidak memadai, dan perbedaan dihitung berturut-turut yaitu col2-col1, col3-col2, col4-col3
Jika saya hanya mengambil perbedaan dan membuat tabel duplikat dengan rumus =C2-B2
masalah lintas disalin muncul setiap kali ada ruang kosong antara dua nilai atau di awal baris. Apakah ada cara mudah untuk memperbaiki ini atau cara lain untuk melakukan ini yang mungkin saya lewatkan?
Jawaban:
Jika Anda menginginkan solusi VBA, salin ini ke modul.
Maka Anda akan membuat panggilan seperti ini:
sumber
Saya akan menggunakan pernyataan if untuk memeriksa apakah sel diisi
Jika Anda rata-rata baris sel kosong akan diabaikan dan Anda harus mendapatkan nilai yang Anda inginkan.
Untuk meja Anda di bawah ini. Perubahan rata-rata adalah
Jumlah sel yang meningkat bisa jadi
Jumlah sel akan berkurang
Ini mengasumsikan tabel hanya selebar 3 kolom, perluas data Anda.
Sumproduct terutama digunakan untuk melakukan perhitungan array. Anda juga bisa menggunakan rumus lain menggunakan ctrl + shift + enter tetapi yang ini harus melakukan trik.
sumber
Saya akan menggunakan Add-In Power Query untuk ini. Saya telah membuat prototipe yang dapat Anda lihat atau unduh - "Demo Power Query - pergerakan rata-rata dan perbedaan di baris.xlsx" di One Drive saya:
https://onedrive.live.com/redir?resid=4FA287BBC10EC562%21398
Power Query memiliki perintah UnPivot untuk mengubah baris menjadi kolom (yang mengabaikan sel kosong) dan Anda bisa menambahkan kolom Indeks untuk melacak posisi relatif sel. Di Pertanyaan 1 saya, saya menggunakan perintah-perintah itu untuk mengubah tabel Anda menjadi daftar panjang baris (satu untuk setiap sel).
Kemudian di Kueri ke-2 Saya menggabungkan daftar itu dengan dirinya sendiri untuk menghubungkan setiap nilai sel ke sel non-kosong berikutnya ke kiri. Lalu perhitungannya mis. Perbedaan, + Gerakan menjadi cukup mudah. Langkah terakhir adalah Mengelompokkan nomor baris dan mengumpulkan perhitungan
Akhirnya saya mulai lagi dari Input data dan Menggabungkan Query ke-2, untuk mendapatkan daftar lengkap baris (termasuk yang tidak berbeda).
Maka manfaat dari pendekatan Power Query adalah Anda tidak perlu kode di VBA, 99% dari itu dilakukan dengan mengklik di UI Power Query, atau dengan mengedit mudah untuk kode yang dihasilkan. Anda juga tidak perlu rumus bertumpuk yang rumit - Anda dapat membentuk kembali data hingga perhitungan menjadi mudah.
Perintah Power Query Unpivot sangat menakjubkan - perintah itu akan secara otomatis diperluas untuk memenuhi kolom baru jika ditambahkan ke tabel sumber, dan menghapus nilai kosong.
sumber