Excel 2007: Pemformatan bersyarat sehingga setiap baris menunjukkan nilai rendah kuning, nilai tinggi merah

14

Saya memiliki spreadsheet dengan sekitar 300 baris. Setiap baris memiliki sekitar 15 kolom, dan setiap sel berisi nilai numerik. Setiap baris terkait dengan suatu produk.

Saya ingin mendapatkan Excel, untuk setiap produk, untuk menyorot sel dengan angka tertinggi dalam warna merah dan angka terendah dalam warna kuning, dengan gradien untuk angka di antaranya. Inilah yang terjadi jika saya memilih baris (khususnya, 15 sel di baris yang berisi data saya) dan kemudian klik Pemformatan Bersyarat> Skala Warna> Skala Warna Merah-Kuning.

Namun, saya memiliki 300 baris dan akan memakan waktu terlalu lama untuk memilih setiap baris satu per satu dan mengatur Pemformatan Bersyarat. Di sisi lain, jika saya memilih seluruh rentang dan menerapkan Pemformatan Bersyarat, Excel menghitung warna berdasarkan seluruh rentang, padahal sebenarnya saya ingin mereka dihitung berdasarkan baris-demi-baris. Misalnya, ambil data sampel ini:

1 2 3
4 5 6
7 8 9

Output yang saya inginkan, menggunakan Y untuk kuning, O untuk oranye, R untuk merah, adalah:

Y O R
Y O R
Y O R

Namun, jika saya memilih seluruh rentang dan menerapkan Pemformatan Bersyarat, saya mendapatkan:

Y Y Y
O O O
R R R

Apakah ada cara untuk mencapai ini tanpa melakukannya satu per satu?

Michael Pavey
sumber
@wizlog: Benar. Nilai tertinggi dalam satu baris harus merah, nilai terendah di baris itu harus berwarna kuning, dan nilai lainnya harus berada di antara keduanya (semakin dekat ke nilai tertinggi, semakin merah).
Michael Pavey
Saya suka pertanyaan ini ... Saya akan melihat apakah saya dapat menemukan jawaban ... Mungkin akan diperlukan beberapa jam sebelum saya dapat membantu lagi, saya berharap anggota SuperUser lain menemukan jawaban tepat waktu melalui ..
wizlog
Saya suka pertanyaan ini juga. Tapi saya tidak melihat cara lain untuk mendekati ini selain menggunakan makro. Saya harap seseorang membuktikan saya salah.
Ellesa

Jawaban:

15

Berikut ini makro yang membuat format bersyarat untuk setiap baris dalam pilihan Anda. Ini dilakukan dengan menyalin format baris pertama ke SETIAP baris dalam seleksi (satu per satu, tidak semuanya). Ganti B1: P1 dengan referensi ke baris pertama di tabel data Anda.

Sub NewCF()
    Range("B1:P1").Copy
    For Each r In Selection.Rows
        r.PasteSpecial (xlPasteFormats)
    Next r
    Application.CutCopyMode = False
End Sub

Untuk menggunakan, sorot baris yang tidak diformat dalam dataset Anda (dalam kasus saya, B2: P300 ) dan kemudian jalankan makro. Dalam contoh di bawah ini, perhatikan bahwa angka maks dalam dua baris pertama masing-masing adalah 5 dan 15 ; kedua sel berwarna merah gelap .

Saya yakin ada solusi yang lebih cepat dari ini.

masukkan deskripsi gambar di sini

Ellesa
sumber
1
Terima kasih, ini bekerja dengan baik. Ini juga contoh yang bagus tentang nilai meminta bantuan ketika tidak yakin ... Saya telah gentar dengan gagasan menggunakan makro, karena saya berasumsi saya perlu belajar cara mengatur pemformatan bersyarat dari awal. Mendapatkan makro hanya untuk menyalin format yang ada jauh lebih licik :)
Michael Pavey
@MichaelPavey Senang saya bisa membantu! Dan selamat datang di Superuser! :)
Ellesa
1
+ 1. Jika ada yang tertarik, saya mengambil konsep ini lebih jauh di blog saya: yoursumbuddy.com/conditional-formatting-per-row-color-scales
Doug Glancy
Sangat konyol bahwa hal semacam ini tidak dibangun ke dalam Excel sebagai fitur. Apakah tidak biasa ingin membandingkan baris dengan cara ini?
Alex
5

Cara termudah untuk mencapai ini adalah dengan menyalin / menempel secara bertahap. Pertama, format 1 baris seperti yang Anda inginkan. Kemudian salin dan lewati pemformatan hanya untuk HANYA baris kedua. Sekarang salin KEDUA baris 1 dan 2 dan tempel format ke baris 3 dan 4. Bilas dan ulangi, Salin 4, melewati 4, salin 8, tempel 8, salin 16, tempel 16. Setelah Anda mendapatkan jumlah yang layak seperti 16, rekatkan beberapa kali untuk mencapai 64 atau 128. Kemudian Anda dapat menyalin ini dan menempelkan pemformatannya, dan Anda secara eksponensial mencakup lebih banyak wilayah daripada sebelumnya.

Itu tidak elegan, dan dalam pengalaman saya, sumber daya yang diperlukan untuk memformat baris makan mulai mendapatkan maksimum sekitar 2500 baris ... tapi itu menyelesaikan pekerjaan.

Saya hanya berharap ada logika yang tidak membuat format bersyarat yang terpisah untuk setiap baris, memonopoli sumber daya ...

Poultron
sumber
Saya pikir OP mengatakan "Namun, saya memiliki 300 baris dan akan terlalu lama untuk memilih setiap baris secara individual dan mengatur Pemformatan Bersyarat." dalam pertanyaan
Prasanna
@Poultron, terima kasih! Untuk menambah ini: Menggunakan Ctrl / Cmd + Shift + Atas / kanan Anda dapat dengan mudah memilih semua baris dan kolom sebelumnya, sehingga Anda tidak perlu menghitung baris sebelumnya. Kemudian ketika Anda siap untuk menempel, cukup posisikan kursor di sel pertama di bawah baris yang sudah diformat dan Format Tempel Spesial saja, itu akan meluas hingga mencakup sebanyak baris yang telah disalin. Ctrl / Cmd + Shift + V juga akan mengingat paste khusus terakhir yang ingin Anda gunakan, sehingga seluruh proses berjalan cukup cepat. Hanya menggunakannya pada dua spreadsheet dengan masing-masing 600 baris.
Oskar Austegard
Saya melakukan ini di atas meja dengan ~ 100 baris dan itu bekerja dengan indah. Hanya butuh 7 iterasi Format Painter.
mskfisher
0

Baru saja menemukan ini dan contoh lain tentang cara melakukan ini melalui VBA dan itu membuat saya berpikir dan saya menemukan cara yang relatif cepat dan tidak menyakitkan untuk melakukan hal yang sama tanpa harus tahu atau menyalin skrip apa pun.

Terapkan Pemformatan Bersyarat yang diinginkan ke baris apa pun yang Anda inginkan dan kemudian sorot seluruh baris. Berikutnya Klik kanan di mana saja di sepanjang perbatasan (mouse harus menjadi ikon Pindahkan) dan seret ke bawah ke baris berikutnya. Dalam menu konteks yang muncul pilih "Salin Di Sini Sebagai Format Saja". Sekarang Anda harus menerapkan Format Bersyarat Anda ke kedua baris secara terpisah. Kemudian terus lakukan ini secara rekursif kecuali sekarang Anda dapat memilih dan menyalin 2 baris atau lebih sekaligus.

Ini bukan kesepakatan satu pukulan seperti kode di atas tetapi secara eksponensial lebih cepat daripada melakukan satu baris pada suatu waktu. Semoga ini membantu.

Chris S
sumber
0

Anda juga dapat menerapkan pemformatan kondisi ke satu baris. Sorot baris lagi dan klik dua kali pada "Format Painter" untuk menguncinya. Gunakan tombol panah ke bawah untuk menerapkan kondisi ke baris lain.

Untuk perusahaan saya biasanya memblokir makro di excel jadi ini bekerja untuk saya. semoga membantu Anda juga.

Genx
sumber