Seperti yang saya pahami, Anda memiliki sel dengan rumus =SUMPRODUCT(B93:B96,B46:B49)/SUM(B46:B49)
dan Anda ingin mengisi ini dengan benar sehingga sel di kolom berikutnya tetapi baris yang sama memiliki rumus =SUMPRODUCT(C92:C95,C45:C48)/SUM(C45:C48)
. Artinya, Anda ingin kolom bertambah 1 seperti biasa, tetapi juga baris berkurang 1.
Anda dapat mencapai ini menggunakan OFFSET
fungsi. Ini memungkinkan Anda untuk membangun rentang yang jarak yang ditentukan dari rentang yang diketahui. Kita dapat menggunakan COLUMN
fungsi untuk menentukan berapa banyak offset yang kita inginkan.
Rentang yang kita inginkan adalah B93:B96
dan B46:B49
, diimbangi dengan -1 baris dan kolom +1 untuk setiap kolom melewati yang pertama. Karenanya, OFFSET(B93:B96, -1, 1)
akan mengembalikan referensi ke C92:C95
. Namun, referensi kami secara alami akan memperbarui kolom, sehingga kami dapat membiarkan kolom itu diimbangi.
Untuk rentang yang ada B93:B96
di rumus asli, di sel pertama yang kita inginkan OFFSET(B93:B96, 0, 0)
, di kedua kita inginkan OFFSET(C93:C96, -1, 0)
, di ketiga kita inginkan OFFSET(D93:D96, -2, 0)
dan seterusnya. Kita dapat menggunakan =COLUMN(A1)
untuk mendapatkan hasil yang merupakan jumlah kolom saat ini (karena referensi akan diperbarui ke B1 di kolom kedua, dll). Menggabungkan ini, kita dapat menggunakan
OFFSET(B93:B96, 1 - COLUMN(A1), 0)
yang kita dapat menyederhanakan dengan mengubah referensi:
OFFSET(B94:B97, -COLUMN(A1), 0)
Dalam sel pertama ini diterjemahkan menjadi OFFSET(B94:B97, -1, 0)
yang B93:B96
. Di sel kedua, formula akan mengisi seperti OFFSET(C94:C97, -COLUMN(B1), 0)
apa adanya C92:C95
.
Jadi dua referensi yang kita butuhkan adalah OFFSET(B94:B97, -COLUMN(A1), 0)
dan OFFSET(B47:B50, -COLUMN(A1), 0)
. Maka formula akan menjadi
=SUMPRODUCT(OFFSET(B94:B97, -COLUMN(A1), 0), OFFSET(B47:B50, -COLUMN(A1), 0)) / SUM(OFFSET(B47:B50, -COLUMN(A1), 0))
Ada satu komplikasi terakhir. Ketika saya menguji ini pada salinan Excel 2007 saya, saya menemukan bahwa di dalam SUMPRODUCT
rumus, COLUMN(A1)
mengembalikan array yang berisi nilai 1, bukan hanya nilai 1. (Anda dapat melihat ini di kotak dialog Evaluasi Formula: ketika mengevaluasi COLUMN(A1)
hasilnya {1}
bukan hanya 1
, dan SUMPRODUCT
ekspresi mendapat dua #VALUE!
argumen dan akhirnya menjadi 0.) Tergantung pada versi Anda ini mungkin tidak terjadi pada Anda. Jika ya, bungkus bagian COLUMN(A1)
dalam a SUM()
, seperti:
=SUMPRODUCT(OFFSET(B94:B97, -SUM(COLUMN(A1)), 0), OFFSET(B47:B50, -SUM(COLUMN(A1)), 0)) / SUM(OFFSET(B47:B50, -COLUMN(A1), 0))
Anda akan perhatikan bahwa saya belum membungkus final COLUMN(A1)
dalam SUM()
; itu karena yang ini mengembalikan angka seperti biasa, bukan referensi array. Saya berasumsi bahwa karena SUM
fungsi tidak menerima referensi array, Excel menyadari bahwa kami tidak ingin array keluar dari COLUMN
kasus ini.