2010-11-10 33 views
26

Tôi muốn tô bóng toàn bộ các hàng trong Excel dựa trên giá trị của một ô. Ví dụ nói rằng tôi có các hàng dưới đây:Excel - Che toàn bộ hàng dựa trên thay đổi giá trị

**File No** 
1122 
1122 
1144 
1155 
1155 
1155 
1166 

Tôi muốn hai hàng đầu tiên (trong đó giá trị của tập tin # là 1122) được tô màu 1, hàng tiếp theo (trong đó giá trị của tập tin # là 1144) để được tô bóng màu 2, 3 hàng tiếp theo (trong đó giá trị của tệp # là 1155) được tô màu 1, hàng tiếp theo (trong đó giá trị của tệp là 1166) được tô bóng color 2

Trả lời

4

Nếu bạn đang sử dụng MS Excel 2007, bạn có thể sử dụng conditional formatting trên tab Home như được hiển thị trong ảnh chụp màn hình bên dưới. Bạn có thể sử dụng tùy chọn mặc định color scales như tôi đã làm ở đây hoặc bạn có thể tiếp tục và tạo một new rule dựa trên tập dữ liệu của bạn. Conditional Formatting

4

Sử dụng Conditional Formatting.

Ở dạng đơn giản nhất, bạn đang nói "cho ô này, nếu giá trị là X, thì hãy áp dụng định dạng foo". Tuy nhiên, nếu bạn sử dụng phương thức "công thức", bạn có thể chọn toàn bộ hàng, nhập công thức và định dạng được liên kết, sau đó sử dụng sao chép và dán (chỉ định dạng) cho phần còn lại của bảng.

Bạn bị giới hạn chỉ 3 quy tắc trong Excel 2003 hoặc cũ hơn, do đó bạn có thể muốn xác định mẫu cho màu sắc thay vì sử dụng giá trị thô. Một cái gì đó như thế này nên làm việc mặc dù:

alt text

+0

Mặc dù điều này trả lời chính xác câu hỏi như đã diễn đạt, tôi nghi ngờ người hỏi ban đầu đang cố gắng đạt được các sọc màu xen kẽ dựa trên thay đổi dữ liệu, đôi khi được gọi là sọc vằn. Đối với điều đó, tôi nghĩ rằng câu trả lời của Mike Bain là tốt hơn. –

+0

Không, anh ta đã không hỏi điều đó. Theo nghĩa đen, ông đã yêu cầu một màu của các hàng được dựa trên một giá trị trong ô. Tôi đề nghị bạn đọc lại câu hỏi. –

45

Những gì bạn có thể làm là tạo một cột mới hơn ở phía bên phải của bảng tính mà bạn sẽ sử dụng để tính toán một giá trị mà bạn có thể căn cứ bóng của bạn trên.

Hãy nói rằng cột mới của bạn là cột D, và các giá trị mà bạn muốn xem xét là trong cột A bắt đầu từ dòng 2.

Trong ô D2 đặt: = MOD (IF (ROW() = 2, 0, NẾU (A2 = A1, D1, D1 + 1)), 2)

Điền vào đó theo yêu cầu của bạn, (sau đó ẩn cột nếu bạn muốn).

Bây giờ, hãy đánh dấu toàn bộ tập dữ liệu của bạn - lựa chọn ô này sẽ là ô được tô bóng trong bước tiếp theo.

Từ Home tab, bấm vào Conditional Formatting, sau đó New Rule.

Chọn Sử dụng công thức để xác định ô nào sẽ định dạng.

Trong "giá trị Format nơi công thức này là đúng" đặt = $ D2 = 1

Nhấp vào Format nút , nhấp vào Điền tab, sau đó chọn màu mà bạn muốn bóng râm với.

Ví dụ ở đây:

+0

Tôi nghĩ rằng đây là câu trả lời cần được đánh dấu là chính xác như OP cho biết họ muốn các hàng có thể phân biệt được mặc dù ví dụ của chúng trông giống như cột – JsonStatham

+2

Điều này thật tuyệt vời. Trên Excel cho Mac Phiên bản 15.27, tôi phải chọn Kiểu = Cổ điển sau khi chọn Quy tắc Mới .... – battey

1

Tôi đã tìm thấy một giải pháp đơn giản để dải theo nội dung tại Pearson Software Consulting: Hãy nói rằng tiêu đề là từ A1 đến B1, bảng dữ liệu là từ A2 đến B5, ô điều khiển nằm trong cột A

  1. Tạo cột mới, C
  2. Lúc đầu dòng đầu tiên cho màu pha sữa = true trong tế bào C2
  3. Trong hàng thứ hai làm cho công thức = IF (A3 = A2, C2, NOT (C2))
  4. Điền cột xuống đến dòng cuối cùng
  5. chọn phạm vi dữ liệu
  6. chọn định dạng có điều kiện, chọn Sử dụng một công thức ... và đặt = $ C2 như công thức
0

tôi phải làm một cái gì đó tương tự cho người dùng của tôi , với một biến thể nhỏ mà họ muốn để có một số đang chạy nhóm các mục tương tự. Tôi nghĩ tôi sẽ chia sẻ ở đây.

  • Hãy một cột mới Một
  • Giả sử hàng đầu tiên của dữ liệu trong dòng 2 (dòng 1 là tiêu đề), đặt 1 trong A2
  • Giả sử tập tin của bạn Không là trong cột B, trong lần thứ hai hàng (trong trường hợp này A3), hãy thực hiện công thức =IF(B3=B2,A2,A2+1)
  • Điền/sao chép ô A3 xuống cột đến hàng cuối cùng (cẩn thận không sao chép A2 một cách tình cờ). phạm vi dữ liệu
  • Trong Home băng chọn Conditional Formatting ->New Rule
  • Chọn Sử dụng một công thức để xác định các tế bào để định dạng
  • trong ô công thức, đặt =MOD($A1, 2)=1 như công thức
  • Bấm Định dạng, chọn Điền vào tab
  • Chọn Màu nền bạn muốn, sau đó nhấp OK
  • Bấm OK

enter image description here

4

Cái này đã khiến tôi cho các lứa tuổi. Không thích ý tưởng tạo hàng/cột phụ (không có liên quan) chỉ để tính toán định dạng. Cuối cùng đã đưa ra các nguyên tắc sau:

=INDIRECT("A"&ROW())<>INDIRECT("A"&(ROW()-1)) 

Điều này tạo ra các tài liệu tham khảo A2<>A1 cho dòng 2, A3<>A2 cho hàng 3, vv Điều chỉnh chữ "A" là cột bạn muốn so sánh

+1

Điều này dường như chỉ làm nổi bật thay đổi về giá trị và không phải màu thay thế giữa các nhóm. –

0

bạn có thể sử dụng công thức này để thực hiện công việc -> lấy CellValue cho hàng cụ thể bằng cách gõ: = gián tiếp ("$ A & di động()) tùy thuộc vào cột bạn phải kiểm tra, bạn phải thay đổi $ A

Ví dụ -> bạn có thể sử dụng một hàm VBA tùy chỉnh trong Bối cảnh:

Public Function IstDatum (Zelle) Boolean IstDatum = False Nếu IsDate (Zelle) Sau đó IstDatum = True End Function

Tôi cần nó để kiểm tra cho một ngày nhập cảnh trong cột A:

= IstDatum (INDIREKT ("$ A" & ZEILE()))

have a look at the picture:

1

Trong MS Excel, đầu tiên lưu bảng tính của bạn như một Macro Enabled tập tin sau đó đi đến Tab developper và bấm vào Visual Basic. Sao chép và dán mã này trong đối tượng Excel "ThisWorkbook". Thay thế 2 giá trị của G = và C = bằng số cột chứa các giá trị đang được tham chiếu.

Trong trường hợp của bạn, nếu số lượng cột có tên "File Không" là cột đầu tiên (cụ thể là cột 1), thay thế G=6 bởi G=1C=6 bởi C-1. Cuối cùng bấm vào Macro, chọn và chạy nó. Thì đấy! Làm việc như một say mê.

Sub color() 
    Dim g As Long 
    Dim c As Integer 
    Dim colorIt As Boolean 

    g = 6 
    c = 6 
    colorIt = True 

    Do While Cells(g, c) <> "" 
     test_value = Cells(g, c) 
     Do While Cells(g, c) = test_value 
      If colorIt Then 
       Cells(g, c).EntireRow.Select 
       Selection.Interior.ColorIndex = 15 
      Else 
       Cells(g, c).EntireRow.Select 
       Selection.Interior.ColorIndex = x1None 
      End If 
      g = g + 1 
     Loop 
     colorIt = Not (colorIt) 
    Loop 
End Sub 
1

Giống như ít nhất 1 người đóng góp khác ở đây, tôi cũng chưa bao giờ thích phải thêm cột "trợ giúp" bổ sung, có thể tạo ra một số phức tạp trong các tình huống khác nhau. Cuối cùng tôi đã tìm được một giải pháp. Có một vài công thức khác nhau mà bạn có thể sử dụng tùy thuộc vào nhu cầu và những gì có trong cột, cho dù có giá trị trống hay không ... Đối với hầu hết nhu cầu của tôi, tôi đã sử dụng công thức đơn giản sau đây cho công thức CF:

= MOD (cố định (SUMPRODUCT (1/COUNTIF (CurrentRange, CurrentRange))), 2) = 0

tôi tạo ra một Name Range gọi là "CurrentRange" sử dụng công thức sau đây [tấm] là tấm trên đó kết quả dữ liệu của bạn, [DC] là cột có các giá trị mà bạn muốn nhóm dữ liệu của mình và [FR] là hàng đầu tiên có dữ liệu:

= [Sheet]! $ [DC] $ [ FR]: INDIRECT ("$ [DC] $" & ROW())

Tham khảo trang tính và tham chiếu cột sẽ dựa trên cột có giá trị bạn đang đánh giá. LƯU Ý: Bạn phải sử dụng một phạm vi được đặt tên trong công thức vì sẽ ném một lỗi nếu bạn cố gắng sử dụng tham chiếu phạm vi trực tiếp trong công thức quy tắc CF.

Về cơ bản, công thức hoạt động bằng cách đánh giá cho mỗi hàng tổng số của tất cả các giá trị duy nhất cho hàng đó và ở trên lên đầu phạm vi của bạn. Giá trị đó cho mỗi hàng về cơ bản cung cấp một ID duy nhất tăng dần cho mỗi giá trị duy nhất mới. Sau đó, nó sử dụng giá trị đó trong vị trí của hàm Row() trong công thức hàm CF MOD chuẩn cho các màu hàng xen kẽ đơn giản (tức là = Mod (Hàng(), 2) = 0).

Xem ví dụ sau đây chia nhỏ công thức để hiển thị các thành phần kết quả trong cột để hiển thị những gì nó đang làm đằng sau hậu trường.

Example Data

Trong ví dụ này, CurrentRange tên phạm vi được định nghĩa là:

= Sheet1 $ A $ 2: INDIRECT ("$ A $" & ROW())

ID độc đáo cột chứa phần sau của công thức của công thức CF:

= Cố định (SUMPRODUCT (1/COUNTIF (CurrentRange, CurrentRange)))

Bạn có thể thấy rằng, theo hàng 3, số lượng giá trị duy nhất từ ​​hàng đó trở lên trong cột "Màu" là 2 và nó vẫn là 2 trong mỗi hàng tiếp theo cho đến hàng 6 khi công thức cuối cùng gặp một giá trị duy nhất thứ 3 .

Cột Ban nhạc sử dụng phần còn lại của công thức tham chiếu đến kết quả trong cột B = MOD (B2,2) để cho biết cách nó đưa bạn đến 1 và 0 có thể được sử dụng cho CF.

Cuối cùng, vấn đề là bạn không cần thêm cột. Toàn bộ công thức có thể được sử dụng trong quy tắc CF + một dải ô được đặt tên. Đối với tôi, điều đó có nghĩa là tôi có thể dán công thức cơ bản vào một mẫu mà tôi sử dụng để thả dữ liệu vào và không phải lo lắng về việc làm rối thêm cột khi dữ liệu bị bỏ. Nó chỉ hoạt động theo mặc định. Ngoài ra, nếu bạn cần tính toán khoảng trống hoặc các phức tạp khác hoặc tập hợp dữ liệu lớn, bạn có thể sử dụng các công thức phức tạp khác bằng cách sử dụng các hàm tần suất và đối sánh.

Hy vọng điều này sẽ giúp người khác tránh được sự thất vọng mà tôi đã có trong nhiều năm!

0

Tôi ghét sử dụng các công thức trong ô này và phải điền vào một cột mới, và cuối cùng tôi đã học đủ để tạo bởi macro VBA riêng để thực hiện hiệu ứng này.

này có thể không phải tất cả những gì một cách logic khác với câu trả lời khác, nhưng tôi nghĩ rằng các mã trông một địa ngục của một tốt hơn rất nhiều:

Dim Switch As Boolean 
For Each Cell In Range("B2:B" & ActiveSheet.UsedRange.Rows.Count) 
    If Not Cell.Value = Cell.Offset(-1, 0).Value Then Switch = Not (Switch) 
    If Switch Then Range("A" & Cell.Row & ":" & Chr(ActiveSheet.UsedRange.Columns.Count + 64) & Cell.Row).Interior.Pattern = xlNone 
    If Not Switch Then Range("A" & Cell.Row & ":" & Chr(ActiveSheet.UsedRange.Columns.Count + 64) & Cell.Row).Interior.Color = 14869218 
Next 

Mã của tôi ở đây đang diễn ra theo cột B, nó giả định một dòng tiêu đề do đó, nó bắt đầu lúc 2, và tôi sử dụng phương pháp Chr (x + 64) để lấy các chữ cái cột (sẽ không hoạt động qua cột Z; tôi chưa tìm được phương pháp đủ đơn giản để vượt qua điều này). Đầu tiên, biến boolean sẽ thay thế bất cứ khi nào giá trị thay đổi thành giá trị mới (sử dụng Offset để kiểm tra ô bên trên), và cho mỗi dòng được chọn cho True hoặc False và tô màu cho phù hợp.

Các vấn đề liên quan