Excel 2007: Định dạng có điều kiện sao cho mỗi hàng hiển thị giá trị thấp màu vàng, giá trị cao màu đỏ


14

Tôi có một bảng tính với khoảng 300 hàng. Mỗi hàng có khoảng 15 cột và mỗi ô chứa một giá trị số. Mỗi hàng tương ứng với một sản phẩm.

Tôi muốn lấy Excel, cho mỗi sản phẩm, để làm nổi bật các ô có số cao nhất màu đỏ và số thấp nhất màu vàng, với độ dốc cho các số ở giữa. Đây là những gì xảy ra nếu tôi chọn một hàng (cụ thể là 15 ô trong hàng chứa dữ liệu của tôi) và sau đó nhấp vào Định dạng có điều kiện> Thang màu> Thang màu đỏ-Vàng.

Tuy nhiên, tôi có 300 hàng và sẽ mất quá nhiều thời gian để chọn từng hàng riêng lẻ và đặt Định dạng có điều kiện. Mặt khác, nếu tôi chọn toàn bộ phạm vi và áp dụng Định dạng có điều kiện, Excel sẽ tính toán các màu dựa trên toàn bộ phạm vi, trong khi thực tế tôi muốn chúng được tính toán theo từng hàng. Ví dụ: lấy dữ liệu mẫu này:

1 2 3
4 5 6
7 8 9

Đầu ra tôi muốn, sử dụng Y cho màu vàng, O cho màu cam, R cho màu đỏ, là:

Y O R
Y O R
Y O R

Tuy nhiên, nếu tôi chọn toàn bộ phạm vi và áp dụng Định dạng có điều kiện, tôi nhận được:

Y Y Y
O O O
R R R

Có cách nào để thực hiện điều này mà không làm một hàng tại một thời điểm không?


@wizlog: Đúng vậy. Giá trị cao nhất trong một hàng phải là màu đỏ, giá trị thấp nhất trong hàng đó phải là màu vàng và các giá trị khác phải ở đâu đó ở giữa (càng gần giá trị cao nhất, càng đỏ).
Michael Pavey

Tôi thích câu hỏi này ... Tôi sẽ xem liệu tôi có thể tìm thấy câu trả lời không ... Sẽ mất vài giờ trước khi tôi có thể giúp lại, tôi hy vọng các thành viên SuperUser khác sẽ tìm thấy bạn một câu trả lời kịp thời ..
wizlog

Tôi cũng thích câu hỏi này Nhưng tôi không thấy cách nào khác để tiếp cận điều này ngoài việc sử dụng macro. Tôi hy vọng ai đó chứng minh tôi sai mặc dù.
Ellesa

Câu trả lời:


15

Đây là một macro tạo định dạng có điều kiện cho mỗi hàng trong lựa chọn của bạn. Nó thực hiện điều này bằng cách sao chép định dạng của hàng đầu tiên sang MACHI hàng trong vùng chọn (từng cái một, không hoàn toàn). Thay thế B1: P1 bằng tham chiếu đến hàng đầu tiên trong bảng dữ liệu của bạn.

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

Để sử dụng, hãy chọn các hàng không có định dạng trong tập dữ liệu của bạn (trong trường hợp của tôi, B2: P300 ) và sau đó chạy macro. Trong ví dụ dưới đây, lưu ý rằng các số tối đa trong hai hàng đầu tiên lần lượt là 515 ; cả hai tế bào đều có màu đỏ sẫm .

Tôi chắc chắn có một giải pháp nhanh hơn thế này, mặc dù.

nhập mô tả hình ảnh ở đây


1
Cảm ơn, điều này làm việc rất đẹp. Đó cũng là một ví dụ tuyệt vời về giá trị của việc yêu cầu trợ giúp khi không chắc chắn ... Tôi đã bị choáng ngợp bởi ý tưởng sử dụng macro, vì tôi cho rằng tôi sẽ cần học cách thiết lập định dạng có điều kiện từ đầu. Lấy macro chỉ để sao chép định dạng hiện có thì xảo quyệt hơn nhiều :)
Michael Pavey

@MichaelPavey Vui mừng tôi có thể giúp! Và chào mừng đến với Superuser! :)
Ellesa

1
+ 1. Nếu tôi quan tâm đến bất cứ ai mất khái niệm này hơn nữa trên blog của tôi: yoursumbuddy.com/conditional-formatting-per-row-color-scales
Doug Glancy

Thật nực cười khi loại điều này không được tích hợp vào Excel như một tính năng. Có phải là không phổ biến khi muốn so sánh các hàng theo cách này?
Alex

5

Cách dễ nhất để thực hiện điều này là sao chép / dán tăng dần. Đầu tiên, định dạng 1 hàng theo cách bạn muốn. Sau đó sao chép và qua định dạng chỉ CHỈ một hàng thứ hai. Bây giờ sao chép CẢ HAI hàng 1 và 2 và dán định dạng vào hàng 3 và 4. Rửa sạch và lặp lại, Sao chép 4, qua 4, sao chép 8, dán 8, sao chép 16, dán 16. Khi bạn đã có một số tiền kha khá như 16, dán nó một vài lần để có tới 64 hoặc 128. Sau đó, bạn có thể sao chép chúng và dán định dạng của chúng, và bạn sẽ bao quát nhiều lãnh thổ hơn trước.

Nó không thanh lịch, và theo kinh nghiệm của tôi, các tài nguyên cần có để định dạng có điều kiện bắt đầu ăn tối đa khoảng 2500 hàng ... nhưng nó đã hoàn thành công việc.

Tôi chỉ muốn có logic mà không tạo ra một định dạng có điều kiện riêng cho mỗi hàng, tài nguyên ăn cắp ...


Tôi nghĩ OP đã nói "Tuy nhiên, tôi có 300 hàng và sẽ mất quá nhiều thời gian để chọn từng hàng riêng lẻ và đặt Định dạng có điều kiện". trong câu hỏi
Prasanna

@Poultron, cảm ơn! Để thêm vào điều này: Sử dụng Ctrl / Cmd + Shift + Up / right, bạn có thể dễ dàng chọn tất cả các hàng và cột trước đó, vì vậy bạn không cần phải đếm các hàng trước đó. Sau đó, khi bạn đã sẵn sàng để dán, chỉ cần đặt con trỏ vào ô đầu tiên bên dưới các hàng đã được định dạng và chỉ Định dạng dán đặc biệt, nó sẽ mở rộng để bao phủ nhiều hàng như đã được sao chép. Ctrl / Cmd + Shift + V cũng sẽ ghi nhớ lần dán đặc biệt cuối cùng mà bạn muốn sử dụng, vì vậy toàn bộ quá trình diễn ra khá nhanh chóng. Chỉ cần sử dụng nó trên hai bảng tính với 600 hàng mỗi.
Oskar Austegard

Tôi đã làm điều này trên một cái bàn với ~ 100 hàng và nó hoạt động rất đẹp. Chỉ mất 7 lần lặp của Format họa sĩ.
mskfisher

0

Chỉ cần tìm thấy điều này và các ví dụ khác về cách thực hiện điều này thông qua VBA và nó khiến tôi suy nghĩ và tôi đã tìm ra một cách tương đối nhanh chóng và không đau đớn để làm điều tương tự mà không cần phải biết hoặc sao chép bất kỳ tập lệnh nào.

Áp dụng Định dạng có điều kiện mong muốn cho bất kỳ hàng nào bạn muốn và sau đó tô sáng toàn bộ hàng. Tiếp theo Nhấp chuột phải vào bất cứ nơi nào dọc theo đường viền (chuột phải là biểu tượng Di chuyển) và kéo xuống hàng tiếp theo. Trong menu ngữ cảnh bật lên, chọn "Sao chép ở đây chỉ là định dạng". Bây giờ bạn nên áp dụng Định dạng có điều kiện cho cả hai hàng riêng biệt. Sau đó tiếp tục làm điều này một cách đệ quy ngoại trừ bây giờ bạn có thể chọn và sao chép 2 hàng trở lên cùng một lúc.

Nó không phải là một thỏa thuận bắn như mã trên nhưng nó nhanh hơn theo cấp số nhân so với thực hiện một dòng tại một thời điểm. Hi vọng điêu nay co ich.


0

Bạn cũng có thể áp dụng định dạng điều kiện cho một hàng. Đánh dấu hàng một lần nữa và nhấp đúp chuột vào "Format Họa sĩ" để khóa nó. Sử dụng phím mũi tên xuống để áp dụng điều kiện xuống các hàng khác.

Đối với công ty của tôi thường chặn macro trong excel vì vậy điều này làm việc cho tôi. Mong nó cũng giúp được cho bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.