Di Excel ada beberapa cara untuk secara dinamis mewarnai sel penuh berdasarkan nilainya, tetapi apakah ada cara untuk secara dinamis mewarnai hanya sebagian sel berdasarkan nilainya?
Misalnya, katakan saya sedang membuat laporan yang terlihat seperti berikut ini:
_________________________
| | Dec | Nov |
|_______|___________|_____|
|Gross R| $75 (-25%)| $100|
|_______|___________|_____|
|Net Inc| $55 (+10%)| $50 |
|_______|___________|_____|
Dalam skenario ini saya hanya ingin mewarnai nilai persentase (-25%) dan (+ 10%), bukan nilai dolar $ 75 dan $ 55 yang juga ada dalam sel. Menambah masalah adalah pewarnaan harus dinamis (hijau untuk positif, merah untuk nilai-nilai negatif), dan sel-sel ini adalah referensi (jadi pewarnaan manual adalah off the table).
Saya telah mencoba menggunakan TEXT()
fungsi bawaan, tetapi itu tidak berhasil. Secara khusus saya mencoba di =TEXT(A1,"$##")&" "&TEXT(A2,"[Green]0%;[Red](-0%)")
mana A1
referensi sel ke jumlah dolar dan A2
referensi sel ke persentase delta.
Yang membuat frustrasi adalah bahwa pemformatan khusus [Green]0%;[Red](-0%)
berfungsi dengan baik ketika diterapkan ke seluruh sel (melalui bagian pemformatan nomor khusus), tetapi ketika diterapkan melalui TEXT()
fungsi itu berhenti berfungsi. Jadi, bagaimana cara mengubah warna sebagian nilai dalam sel?
Jawaban:
Ada dua pendekatan yang saya temukan untuk mengatasi masalah ini, dan tidak ada yang benar-benar optimal.
Pendekatan pertama adalah memecah string menjadi dua kolom terpisah, dengan cara itu saya bisa menggunakan salah satu pemformatan kustom yang dijelaskan sebelumnya untuk mengatur warnanya. Ini bukan solusi yang ideal karena saya harus berkompromi pada "tampilan dan nuansa" laporan untuk mengakomodasi kolom tambahan itu.
Pendekatan kedua adalah melalui menggunakan VBA / makro, yang meskipun saya memilih untuk menghindari dalam skenario khusus ini, akan sesuai dengan tugas. Meskipun saya tidak akan mencetak seluruh kode kerja, penting untuk ini:
ActiveCell
atau loop)Instr
fungsi untuk menemukan lokasi dalam string di mana Anda ingin mengubah warnaInstr
lagi untuk menemukan lokasi dalam string di mana Anda ingin menghentikan warnaCharacters(start, length)
fungsi ini untuk menyorot karakter persis yang ingin Anda modifikasi, dengan memasukkan nilai-nilai yang ditemukan sebelumnya.Font.Color = RGB(r,g,b)
sumber
Contoh menggunakan makro dapat ditemukan di sini:
Makro untuk mewarnai bagian teks dalam sel di Excel
sumber
Satu pendekatan yang bisa dilakukan meskipun itu bukan solusi di MS EXCEL jika Anda membagi kisi lembar excel (lebar sel) sama dengan ruang karakter maka Anda dapat menggunakannya dengan warna pilihan Anda:
sumber
Makro ini akan mewarnai setiap rentang teks yang dipilih yang berisi tanda kurung menjadi merah jika teks di dalam tanda kurung berisi karakter "-", jika tidak maka akan berwarna hijau. Semua teks di luar tanda kurung tetap tidak berubah.
sumber
Sisipkan baris di atas teks yang ingin disorot, buat garis selebar yang Anda butuhkan untuk cahaya tinggi, ubah warna teks menjadi kuning (atau warna apa pun yang Anda pilih) dan kurangi opacity garis sesuai keinginan Anda.
sumber