Tidak ada cara untuk melakukan ini secara asli dengan fungsi lembar kerja Excel. Jika Anda membutuhkan fungsi ini, Anda harus menggunakan VBA.
Anda bisa menggunakan acara Worksheet_Change (). Ini akan menyala ketika konten sel diubah, tetapi tidak dengan perhitungan ulang sederhana. Ini memiliki parameter yang menunjukkan sel-sel yang telah diubah; Anda dapat menggunakan ini untuk melihat apakah Anda perlu melakukan sesuatu. Kode ini harus masuk dalam area kode untuk lembar kerja yang Anda gunakan. (Buka VBA dengan Alt + F11; di panel kiri, klik dua kali pada lembar kerja. Anda akan melihat sesuatu seperti "Microsoft Visual Basic - nama file - [ sheetname (Kode)]" di bilah judul.)
Jelas, perbarui nama sheet dan rentang seperti yang disyaratkan dalam kode di bawah ini.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim test As Range, src As Range, dest As Range
Set src = Worksheets("Sheet1").Range("A1")
Set dest = Worksheets("Sheet1").Range("A2")
Set test = Intersect(Target, src)
If Not (test Is Nothing) Then
dest.Formula = src.Formula
End If
End Sub
Kode di atas akan menyalin rumus dengan tepat - jika Anda merujuk ke sel F3 di sel A1, Anda juga akan memiliki referensi ke sel F3 di sel A2. Jika Anda tidak ingin ini terjadi, ubah baris di dalam pernyataan Jika ke dest.FormulaR1C1 = src.FormulaR1C1
. Ini akan mengubah referensi relatif apa pun dalam rumus Anda dengan tepat.
Anda bisa mengubah dest
ke rentang yang lebih besar jika Anda ingin mengatur banyak sel sekaligus berdasarkan rumus di sel A1.
Satu catatan adalah bahwa ini tidak akan secara otomatis mengembalikan rumus di sel jika Anda mengubah sel-sel - yaitu jika Anda mengubah rumus di A2, ini tidak akan secara otomatis mengembalikannya, karena kami hanya melakukan pembaruan ketika sel A1 perubahan. Jika Anda ingin melindungi dari ini, ubah jalurnya
Set test = Intersect(Target, src)
untuk
Set test = Intersect(Target, Union(src, dest))