Memformat sel secara kondisional jika mengandung rumus


18

Apakah mungkin untuk memformat sel secara kondisional jika sel berisi rumus (untuk mengingatkan saya dan pengguna lain saat memperbarui sel)?


Jika Anda hanya ingin melihat sel mana yang berisi formula dengan cepat, Anda dapat mengetikkan Ctrl-`(itu adalah tanda centang-kembali, pada tombol yang sama dengan ~ pada keyboard bahasa Inggris) untuk menampilkan formula. Tekan lagi tombol untuk beralih.
yoyo

Jawaban:


9

Anda dapat menggunakan pemformatan bersyarat untuk melakukan ini dengan menggunakan XLM dan Range Name

Saya memiliki artikel yang lebih panjang tentang Penggunaan XLM dengan Nama Rentang dan Pemformatan Bersyarat untuk memformat spreadsheet secara otomatis sesuai dengan konten sel

  1. Tetapkan Nama Rentang IsFormula = GET.CELL (48, INDIRECT ("rc", FALSE))
  2. Menerapkan pengujian sel pemformatan bersyarat untuk rumus, yaitu = IsFormula dengan isian warna

Maaf, saya belum menguji jawaban Anda sampai sekarang. Trik ini sederhana dan indah. Diterima! Terima kasih. (Omong-omong, tautannya rusak.)
wilson

Diuji dan berhasil! Saya harus menemukan definisi yang benar untuk versi Italia Excel 2007. Jika Anda memiliki Excel Italia, Anda harus menggunakan = INFO.CELLA (48; INDIRETTO ("rc"; FALSO)) (harap perhatikan tanda titik koma di tempat koma, juga)
Kar.ma

Bagian yang buruk adalah Anda harus menyimpannya sebagai file makro (mis. Xlsm), dan ketika Anda membuka file pewarnaan tidak muncul sampai Anda mengaktifkan makro.
Kar.ma

Anda dulunya dapat menggunakan xlmtanpa peringatan makro, MSFT mengubah pendekatan keamanan.
brettdj

10

Membangun jawaban brettdj, karena saya menemukan artikel yang terhubung cukup sulit untuk diikuti:

  1. Buat aturan Pemformatan Bersyarat baru dan pilih Gunakan rumus untuk menentukan sel mana yang akan diformat
  2. Masukkan formula berikut: =ISFORMULA(INDIRECT("rc",FALSE))
  3. Jika Anda ingin aturan diterapkan ke seluruh lembar kerja, $1:$1048576sebagai rentang untuk diterapkan. Jika tidak, Anda dapat memasukkan rentang apa pun.

Rumus INDIRECT("rc",FALSE)mengembalikan referensi sel saat ini. Jika saya pernah menggunakan ini dalam selembar, saya membuat Nama Didefinisikan bernama seperti ThisCelldan menggunakannya dalam rumus, kalau-kalau saya pernah kembali bertahun-tahun kemudian dan berpikir "untuk apa ini?".


Ini adalah jawaban yang benar untuk Excel 2013 dan kemudian, lihat support.office.com/en-us/article/…
anishpatel

1
Alih-alih menggunakan INDIRECT("rc",FALSE), gunakan referensi relatif dengan sel kiri atas dalam pemformatan bersyarat "Berlaku untuk" Anda. Misalnya, jika rentang "Berlaku untuk" Anda =$A$3:$F$300, gunakan =ISFORMULA(A3). Ini berfungsi karena pemformatan bersyarat mendukung referensi relatif, lihat ini
Micah Lindström

4

Anda dapat mencoba ini:

VBA

Buat fungsi khusus dengan kode berikut:

Function IsFormula(ByVal Ref As Range) As Variant
    If Ref.Cells.Count > 1 Then
        IsFormula = CVErr(xlErrNA)
    Else
        IsFormula = Ref.HasFormula
    End If
End Function

Contoh:

Untuk memeriksa apakah ada sel di kolom A yang memiliki rumus:

  1. Sorot kolom A
  2. Pergi ke Pemformatan Bersyarat > Aturan Baru > Gunakan rumus untuk menentukan sel mana yang akan diformat
  3. Gunakan ff. rumus:=IsFormula(A1)

Non-VBA

  1. Tekan F5atau Ctrl+G
  2. Klik Spesial .
  3. Pilih Rumus dan klik OK . Ini menyoroti semua sel di lembar kerja yang berisi rumus.
  4. Siapkan format yang ingin Anda gunakan.
    Atau
    Buka Gaya Sel (di bawah tab Beranda) dan pilih gaya yang ingin Anda kaitkan dengan sel yang mengandung rumus. Untuk mengubah tampilan dan nuansa, klik kanan pada gaya yang Anda pilih dan klik Ubah . Semua sel yang diberikan gaya ini akan secara otomatis diperbarui.

Meskipun saya pribadi tidak suka menggunakan VBA, solusi VBA lebih baik dalam hal ini karena pemformatan sel dapat diubah secara dinamis ketika formula dimasukkan ke dalam sel (atau sebaliknya). Terima kasih.
wilson

4

Ada cara yang sangat sederhana untuk melakukan ini, diuji di Excel 2016.

Sorot rentang tempat Anda ingin menerapkan ini, katakanlah dari A3:W20. Pergilah ke pemformatan bersyarat dan pilih NEW RULE | USE A FORMULA TO DETERMINE WHICH CELLS TO FORMAT.

Masukkan =isformula(A3)dan pilih format yang ingin Anda terapkan.

A3jelas merupakan referensi ke sel pertama dalam rentang Anda tetapi pemformatan ini kemudian berlaku untuk semua. Hasilnya adalah dalam rentang Anda, sel apa pun yang merupakan rumus diformat bersyarat.



1

Situs bantuan yang lebih baru merekomendasikan Fungsi Buatan Pengguna:

Function IsFormula(cell) as boolean 
  IsFormula = cell.HasFormula
End Function

Kemudian gunakan fungsi itu sebagai kondisi Anda

Dan faktanya, Excel 2013 dan yang lebih baru memiliki IsFormulafungsi standar.


-1

Anda juga dapat menggunakan pemformatan bersyarat:

  1. Pilih rentang sel yang ingin Anda terapkan pemformatan bersyarat Anda
  2. Di Beranda -> Pemformatan Bersyarat -> Aturan baru: Gunakan rumus untuk mendeteksi sel mana yang akan diformat
  3. Dalam nilai Format saat rumus ini benar dimasukkan: =HasNoFormula
  4. Pilih format yang Anda inginkan

Diuji menggunakan Excel 2010.


Jawaban Anda tidak lengkap. Saya tidak berpikir Anda telah menguji.
wilson

2
-1, ini tidak melakukan apa-apa. Apa yang seharusnya dilakukan oleh HasNoFormula?
toryan
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.