Định dạng có điều kiện một ô nếu nó chứa công thức


18

Có thể định dạng một cách có điều kiện một ô nếu ô chứa công thức (để cảnh báo bản thân tôi và những người dùng khác khi cập nhật ô)?


Nếu bạn chỉ muốn nhanh chóng xem các ô nào chứa công thức, bạn có thể nhập Ctrl-`(đó là dấu kiểm ngược, trên cùng phím với ~ trên bàn phím tiếng Anh) để hiển thị công thức. Nhấn phím lần nữa để chuyển đổi.
yoyo

Câu trả lời:


9

Bạn có thể sử dụng định dạng có điều kiện để thực hiện việc này bằng cách sử dụng Tên XLM và Phạm vi

Tôi có một bài viết dài hơn về Sử dụng XLM với Tên Phạm vi và Định dạng có điều kiện để tự động định dạng bảng tính theo nội dung ô

  1. Xác định tên phạm vi IsFormula = GET.CELL (48, INDIRECT ("rc", FALSE))
  2. Áp dụng thử nghiệm định dạng ô có điều kiện cho công thức, tức là = IsFormula với màu tô

Xin lỗi, tôi đã không kiểm tra câu trả lời của bạn cho đến bây giờ. Thủ thuật này rất đơn giản và đẹp. Đã được chấp nhận! Cảm ơn. (Nhân tiện, liên kết bị hỏng.)
wilson

Đã thử nghiệm và nó hoạt động! Tôi đã phải tìm định nghĩa chính xác cho phiên bản Excel của Ý năm 2007. Nếu bạn có Excel tiếng Ý, bạn cũng phải sử dụng = INFO.CELLA (48; INDIRETTO ("rc"; FALSO)) (vui lòng lưu ý dấu chấm phẩy thay cho dấu phẩy)
Kar.ma

Phần xấu là bạn cần lưu nó dưới dạng tệp macro (ví dụ: .xlsm) và khi bạn mở tệp, màu sẽ không hiển thị cho đến khi bạn bật macro.
Kar.ma

Bạn đã từng có thể sử dụng xlmmà không có bất kỳ cảnh báo vĩ mô nào, MSFT đã thay đổi phương pháp bảo mật.
brettdj

10

Dựa trên câu trả lời của brettdj, vì tôi thấy bài viết được liên kết khá khó theo dõi:

  1. Tạo quy tắc định dạng có điều kiện mới và chọn Sử dụng công thức để xác định ô nào cần định dạng
  2. Chèn công thức sau: =ISFORMULA(INDIRECT("rc",FALSE))
  3. Nếu bạn muốn quy tắc áp dụng cho toàn bộ bảng tính, $1:$1048576dưới dạng phạm vi áp dụng. Nếu không, bạn có thể nhập bất kỳ phạm vi.

Công thức INDIRECT("rc",FALSE)trả về tham chiếu của ô hiện tại. Nếu tôi từng sử dụng cái này trong một tờ, tôi tạo ra một Tên xác định được gọi là một cái gì đó giống như ThisCellvà sử dụng nó trong công thức, chỉ trong trường hợp tôi trở lại nhiều năm sau đó và nghĩ "cái quái này để làm gì?".


Đây là câu trả lời chính xác cho Excel 2013 trở lên, xem support.office.com/en-us/article/iêu
anishpatel

1
Thay vì sử dụng INDIRECT("rc",FALSE), hãy sử dụng tham chiếu tương đối với ô trên cùng bên trái trong phạm vi "Áp dụng cho" định dạng có điều kiện của bạn. Ví dụ: nếu phạm vi "Áp dụng cho" của bạn là =$A$3:$F$300, thì hãy sử dụng =ISFORMULA(A3). Điều này hoạt động vì định dạng có điều kiện hỗ trợ tham chiếu tương đối, hãy xem điều này
Micah Lindström

4

Bạn có thể thử những điều sau:

VBA

Tạo một chức năng tùy chỉnh với mã sau đây:

Function IsFormula(ByVal Ref As Range) As Variant
    If Ref.Cells.Count > 1 Then
        IsFormula = CVErr(xlErrNA)
    Else
        IsFormula = Ref.HasFormula
    End If
End Function

Thí dụ:

Để kiểm tra xem có bất kỳ ô nào trong cột A có bất kỳ công thức nào không:

  1. Đánh dấu cột A
  2. Chuyển đến Định dạng có điều kiện > Quy tắc mới > Sử dụng công thức để xác định các ô cần định dạng
  3. Sử dụng ff. công thức:=IsFormula(A1)

Không phải VBA

  1. Nhấn F5hoặc Ctrl+G
  2. Nhấp vào Đặc biệt .
  3. Chọn công thức và nhấn OK . Điều này làm nổi bật tất cả các ô trong bảng tính có chứa công thức.
  4. Thiết lập định dạng bạn muốn sử dụng.
    Hoặc
    Chuyển đến Kiểu ô (trong tab Trang chủ) và chọn kiểu mà bạn muốn liên kết với các ô có chứa công thức. Để thay đổi giao diện, nhấp chuột phải vào kiểu bạn đã chọn và nhấp vào Sửa đổi . Tất cả các ô cho kiểu này sẽ tự động được cập nhật.

mặc dù cá nhân tôi không thích sử dụng VBA, nhưng giải pháp VBA này tốt hơn trong trường hợp này vì định dạng ô có thể được thay đổi linh hoạt khi công thức được nhập vào một ô (hoặc ngược lại). cảm ơn.
wilson

4

Có một cách rất đơn giản để làm điều này, đã được thử nghiệm trong Excel 2016.

Làm nổi bật phạm vi của bạn mà bạn muốn áp dụng, hãy nói từ A3:W20. Đi vào định dạng có điều kiện và chọn NEW RULE | USE A FORMULA TO DETERMINE WHICH CELLS TO FORMAT.

Đặt vào =isformula(A3)và chọn định dạng bạn muốn áp dụng.

A3rõ ràng là một tham chiếu đến ô đầu tiên trong phạm vi của bạn nhưng định dạng này sau đó áp dụng cho tất cả. Kết quả là trong phạm vi của bạn, bất kỳ ô nào là công thức đều được định dạng có điều kiện.



1

Các trang trợ giúp mới hơn đề xuất Chức năng do người dùng xác định:

Function IsFormula(cell) as boolean 
  IsFormula = cell.HasFormula
End Function

Sau đó sử dụng chức năng đó như điều kiện của bạn

Và trên thực tế, Excel 2013 trở lên có IsFormulachức năng chuẩn.


-1

Bạn cũng có thể sử dụng định dạng có điều kiện:

  1. Chọn phạm vi ô bạn muốn áp dụng định dạng có điều kiện cho
  2. Trong Trang chủ -> Định dạng có điều kiện -> Quy tắc mới: Sử dụng công thức để phát hiện ô nào cần định dạng
  3. Trong định dạng giá trị khi công thức này là đúng: =HasNoFormula
  4. Chọn định dạng bạn muốn

Đã thử nghiệm bằng Excel 2010.


Câu trả lời của bạn không đầy đủ. Tôi không nghĩ rằng bạn đã thử nghiệm.
wilson

2
-1, điều này không làm gì cả. = HasNoFormula phải làm gì?
toryan
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.