Saya telah menemukan bahwa formula dan rentang Pemformatan Bersyarat akan secara otomatis menyesuaikan ketika Anda menyalin, menghapus, atau memindahkan data dalam spreadsheet. Meskipun ini adalah ide yang bagus, itu cenderung memecahkan banyak hal bagi saya dalam beberapa cara yang agak aneh.
Untuk menghindarinya, saya mencoba menulis aturan yang berlaku untuk seluruh spreadsheet dan mengunci tajuk kolom untuk menyorot data yang ingin saya periksa.
Contoh: =AND(A$1="Check This Column For Blanks),ISBLANK(A1))
diterapkan ke=$1:$1048576
Namun, bahkan dengan aturan yang diterapkan secara eksplisit ke seluruh lembar, itu masih secara otomatis menyesuaikan (dan memecah dengan cara yang aneh dengan melakukannya) ketika saya bekerja di lembar.
Bagaimana saya bisa menghindari ini?
Jawaban:
Ketika saya membutuhkan rentang yang tidak boleh berubah dalam keadaan apa pun , termasuk memindahkan, menyisipkan, dan menghapus sel, saya menggunakan rentang bernama dan
INDIRECT
fungsinya.Misalnya, jika saya ingin rentang selalu berlaku untuk sel
A1:A50
, saya menetapkan rentang bernama melalui Manajer Nama:Di Manajer Nama, tambahkan rentang baru (klik Baru), dan di bidang Rujuk Ke:, gunakan fungsi INDIRECT untuk menentukan rentang sel yang Anda inginkan, misalnya
=INDIRECT("A1:A50")
atau=INDIRECT("Sheet!A1:A50")
. Karena rentang secara teknis hanya argumen tekstual, jumlah penataan ulang jumlah tidak akan menyebabkan Excel memperbaruinya.Juga, ini berfungsi setidaknya di Excel 2010 dan Excel 2013. Meskipun tangkapan layar saya berasal dari 2013, saya telah menggunakan teknik yang tepat ini di 2010 di masa lalu.
Peringatan
Perlu diingat bahwa invarian ini juga dapat membuat Anda tersandung. Misalnya, jika Anda mengubah nama sheet, rentang bernama akan pecah.
Saya telah memperhatikan kinerja kecil ketika menggunakan strategi ini pada sejumlah besar sel. Model yang saya gunakan di tempat kerja menggunakan teknik ini dengan rentang bernama yang menjangkau beberapa ribu rentang sel yang berbeda, dan Excel terasa agak lamban ketika saya memperbarui sel dalam rentang tersebut. Ini mungkin imajinasi saya, atau mungkin fakta bahwa Excel membuat panggilan fungsi tambahan ke INDIRECT.
sumber
INDIRECT
fungsi itu sendiri?Saya menemukan bahwa aturan sangat mudah untuk dilanggar, tetapi ada sesuatu yang dapat Anda coba yang tampaknya tidak melanggar aturan apa pun.
Anda dapat mengubah teks di dalam sel. Jika Anda perlu menambahkan baris, tambahkan data Anda di akhir tabel dan urutkan kembali. Jika Anda perlu menghapus satu baris, hanya menghapus teks / angka, kemudian mengurutkan kembali tabel.
Ini berfungsi untuk saya ketika saya memiliki pemformatan bersyarat yang diterapkan ke kolom, dan saya biasanya mengatur pemformatan untuk seluruh kolom, misalnya. $ F: $ F. Seharusnya masih berfungsi jika Anda memformat untuk rentang parsial, pastikan bahwa ketika Anda selesai menambahkan / menghapus dan menggunakan semua data yang Anda inginkan diformat masih dalam parameter rentang asli Anda.
Ini juga frustrasi besar bagi saya.
Saya harap ini membantu.
sumber
Saya tidak SO yakin dan saya menghadapi masalah yang sama sering.
Saya akan mengatakan bahwa bidang 'Terapkan ke' di panel Pemformatan Bersyarat (CF) akan SELALU bekerja secara dinamis. Jadi, itu akan SELALU mengubah referensi apa pun ke format
=$A$1:$A$50
.Ini menyakitkan.
sumber
Saya menemukan bahwa menggunakan
INDIRECT
fungsi danROW
fungsi dalam aturan Pemformatan Bersyarat menghilangkan masalah Excel membuat aturan baru dan mengubah rentang.Misalnya, saya ingin menambahkan garis antara baris dalam spreadsheet register buku cek saya ketika bulan berubah dari satu baris ke baris berikutnya. Jadi, rumus saya dalam aturan CF adalah:
di mana Kolom C di spreadsheet saya berisi tanggal. Saya tidak perlu melakukan sesuatu yang khusus untuk rentang (tidak harus menentukan Nama Jangkauan, dll.).
Jadi, dalam contoh poster asli, alih-alih "A1" atau "A $ 1" dalam aturan CF, gunakan:
sumber
Saya sudah mengalami masalah yang sangat mirip. Saya telah membuat beberapa makro untuk menambahkan baris, dan menyalin formula, dan kemudian menyesuaikan kolom dan ukuran baris untuk memformat bagaimana lembar terlihat. Saya menemukan masalah ini terjadi dalam satu dari dua kesempatan.
1) Ketika sesuatu dari DALAM, "berlaku untuk" dipotong / disisipkan di luar kisaran ini.
2) Ketika ada sel yang digabungkan di dalam "berlaku untuk", dan setiap baris atau kolom bisa disesuaikan.
Itu muncul selama masalah sel yang digabungkan, bahwa excel harus menghapus semua, menghitung ulang aplikasi kondisionalnya, menyesuaikan semua sel (menambah atau menghapus baris atau yang tidak) dan kemudian mengembalikannya kembali. Itu tidak terlihat oleh kita, tetapi itu tampaknya bagaimana itu diterapkan.
Pemikiran yang mungkin membantu kita mencapai solusi untuk ini.
-T
sumber
Saya punya solusi sederhana untuk ini.
Cukup Pindah ke sel yang berada dalam jangkauan (yang tidak rusak dari Rentang), klik Format Painter dan kemudian tempelkan pada seluruh Kolom. Sekali lagi itu akan menunjukkan Di mana ia telah rusak, Anda hanya perlu melakukan Format Painter ke Sel yang telah melanggar rentang. Sekarang, ini juga mungkin tampak agak panjang, Anda bisa membangun makro sederhana untuk ini.
sumber
Dalam rumus Pemformatan Bersyarat, gunakan
R1C1
notasi denganINDIRECT
fungsi:Contoh 1:
If same row column A = 1
...Contoh 2:
If same row column A = 2 AND next row column A = 3
...sumber
Jika use case adalah untuk menghasilkan spreadsheet laporan, maka ini harus bekerja dengan baik:
Anda dapat memintas bantuan Excel yang berlebihan dengan beberapa langkah pengaturan satu kali, jika Anda juga bersedia untuk melakukan penyegaran ulang secara sederhana dari data akhir setelah melakukan semua entri data.
Dengan asumsi data Anda disusun secara normal (dalam baris):
Input
. Jangan menerapkan pemformatan bersyarat apa pun padanya. Merasa bebas untuk mengubah nilai sesuai dengan isi hati Anda (mis. Hapus / masukkan / salin / tempel)Output
.). Salin secara manual atas pemformatan global Anda seperti lebar kolom dan pemformatan tajuk (bukan isi tajuk, hanya pemformatan).$A$1
formula berikut dengan lokasi awal baris tajuk Anda, lalu salin di semua kolom dan baris yang ingin Anda output:=IF(LEN(OFFSET(Input!$A$1,ROW()-1,COLUMN()-1))>0,OFFSET(Input!$A$1,ROW()-1,COLUMN()-1),"")
(IF(LEN(...)>0,...,"")
pernyataan itu diperlukan karena Excel juga sangat membantu menentukan tipe data untuk Anda dan menggunakan0
sel kosong jika tidak, dan yang-1
istilah berasal dari diimbangi vs semantik ordinal)Output
sheet.Ini menyalin
Input
lembar data Anda keOutput
lembar tanpa referensi sel apa pun yang Excel akan jagal secara otomatis sehingga Anda dapat dengan yakin menentukan pemformatan bersyarat Anda padaOutput
lembar.Anda hanya perlu memperpanjang rentang formula yang diterapkan di
Output
lembar sebagai ukuranInput
perubahan data Anda .Saya sarankan Anda menghindari penggabungan sel apa pun.
PS Pertanyaan ini telah ditanyakan berkali-kali (itu juga berlaku di Google Sheets, yang merupakan klon dari Excel) sehingga Anda mungkin menemukan solusi yang lebih baik untuk use case Anda melihat melalui mereka:
sumber
Jika Anda menempel tanpa format (
Paste > Paste Special > Unicode Text
atau serupa) format khusus tidak akan disalin, dan dengan demikian "Berlaku untuk" -range tidak boleh berubah.Anda dapat menghapus baris / kolom, tetapi jika Anda memasukkannya, "Terapkan Ke" -range akan dibagi.
Anda memperluas area dengan memilih baris / kolom terakhir dan "copy-drag" pada kotak kecil di kiri bawah "kursor". Dengan cara ini "Terapkan ke" -range harus tetap utuh. (Perhatikan bahwa ini tidak akan memperpanjang rumus apa pun pada baris atau kolom seperti yang dimasukkan sisipan.)
Namun, itu adalah rasa sakit total untuk mengingat untuk menempel tanpa format, dll. Saya biasanya tidak.
Terkadang saya juga mendefinisikan nama untuk area yang ingin saya format. Ini tidak akan digunakan dalam aturan, tetapi Anda bisa membersihkan aturan dengan menghapus semua aturan kecuali satu dan menggunakan nama area di bagian "Berlaku untuk".
Saya sudah menguji pada Mac menggunakan Excel 16.3 (Saya pikir Office 2016 ... hmm).
sumber