em muốn tô màu các giá trị gần nhất và lớn hơn giá trị cuối cùng nhờ mọi người giúp đỡ em. (2 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Ngày mai trời lại sáng

Thành viên thường trực
Tham gia
4/7/21
Bài viết
340
Được thích
139
em muốn tô màu các giá trị gần nhất và lớn hơn giá trị cuối cùng nhờ mọi người giúp đỡ em.
 

File đính kèm

Cần tô tay tất cả các ô thỏa điều kiện
Dòng 6: D6>F6 tại sao tô F6 ?
Bác ơi,vì F6 gần G6 và F6> G6 cứ gần G6 nhất mà lớn hơn sẽ tô,nếu ô gần nhất mà có khoảng trống sẽ tìm đến ô kế tiếp nếu ô này lớn hơn thì tô.. nhỏ hơn hoặc bằng thì thôi không tìm nữa.
 
Lần chỉnh sửa cuối:
em muốn tô màu các giá trị gần nhất và lớn hơn giá trị cuối cùng nhờ mọi người giúp đỡ em.
1) Tô theo hàng? (tô theo Item)
2) Cứ mỗi ngày đánh số 1 lần? Và như thế có kết quả mới, thì kết quả cũ tức ô đã tô trước đó mất màu?
3) Ô ngày mới VD bằng 10, các ô trước lần lượt là 9, 10, 11, 12 thì ô nào được chọn để tô màu?
Bạn trả lời lần lượt cho tôi may ra giúp bạn được.
 
1) Tô theo hàng? (tô theo Item)
2) Cứ mỗi ngày đánh số 1 lần? Và như thế có kết quả mới, thì kết quả cũ tức ô đã tô trước đó mất màu?
3) Ô ngày mới VD bằng 10, các ô trước lần lượt là 9, 10, 11, 12 thì ô nào được chọn để tô màu?
Bạn trả lời lần lượt cho tôi may ra giúp bạn được.
Ô sếp, lại là sếp.. cảm ơn sếp, vâng tô theo hàng theo từng item riêng lẻ (không item nào liên quan với item nào).
Cứ mỗi ngày đánh kết quả 1 lần chỉ 1 lần rồi thôi, không quay lại.
khi có kết quả mới thì phải kiểm tra kết quả mới này với kết quả cũ liền kề (gần nhất) sau kết quả mới nhất xem kết quả này có lớn hơn kết quả mới không nếu kết quả cũ lớn hơn kết quả mới thì tô kết quả cũ.
Ô ngày mới VD bằng 10, các ô trước lần lượt là 9, 10, 11, 12 thì ô nào được chọn để tô màu?--số 9 sẽ là được chọn nhưng số 9 không đạt tiêu chuẩn để màu vì 9 < 10
Nếu các ô trước lần lượt là 11, 10, 11, 12 thì 11 sẽ được tô màu nền vàng,
Nếu các ô trước lần lượt là ,ôTrống,ôTrống,11, 10, 11, 12 thì số 11 (màu đỏ ) sẽ được lựa chọn để kiểm tra và 11 lớn hơn thì tô màu nền vàng
Nếu các ô trước lần lượt là ,ôTrống,ôTrống,10, 10, 11, 12 thì số 10 (màu đỏ ) sẽ được lựa chọn để kiểm tra nhưng 10 không đạt nên không được tô màu
 
Ô sếp, lại là sếp.. cảm ơn sếp, vâng tô theo hàng theo từng item riêng lẻ (không item nào liên quan với item nào).
Cứ mỗi ngày đánh kết quả 1 lần chỉ 1 lần rồi thôi, không quay lại.
khi có kết quả mới thì phải kiểm tra kết quả mới này với kết quả cũ liền kề (gần nhất) sau kết quả mới nhất xem kết quả này có lớn hơn kết quả mới không nếu kết quả cũ lớn hơn kết quả mới thì tô kết quả cũ.
Ô ngày mới VD bằng 10, các ô trước lần lượt là 9, 10, 11, 12 thì ô nào được chọn để tô màu?--số 9 sẽ là được chọn nhưng số 9 không đạt tiêu chuẩn để màu vì 9 < 10
Nếu các ô trước lần lượt là 11, 10, 11, 12 thì 11 sẽ được tô màu nền vàng,
Nếu các ô trước lần lượt là ,ôTrống,ôTrống,11, 10, 11, 12 thì số 11 (màu đỏ ) sẽ được lựa chọn để kiểm tra và 11 lớn hơn thì tô màu nền vàng
Nếu các ô trước lần lượt là ,ôTrống,ôTrống,10, 10, 11, 12 thì số 10 (màu đỏ ) sẽ được lựa chọn để kiểm tra nhưng 10 không đạt nên không được tô màu
Bạn gọi tôi là Sếp thì tôi chả thích cũng chả dị ứng, bởi chỉ có những người chưa từng làm sếp mới ngại, chứ tôi nghe quen từ nhân viên của tôi rồi nên thấy nó bình thường. Nhưng tốt nhất đừng gọi như vậy nữa, gọi anh là được rồi.

Nếu không xóa màu ô cũ thì nó vàng cả hàng luôn thì sao?
 
Bạn gọi tôi là Sếp thì tôi chả thích cũng chả dị ứng, bởi chỉ có những người chưa từng làm sếp mới ngại, chứ tôi nghe quen từ nhân viên của tôi rồi nên thấy nó bình thường. Nhưng tốt nhất đừng gọi như vậy nữa, gọi anh là được rồi.

Nếu không xóa màu ô cũ thì nó vàng cả hàng luôn thì sao?
Ồ vậy là sếp chuẩn đét rồi thôi em không để tâm chuyện ai ngại, để tâm đau đầu lắm sếp ơi. Dù tốt mấy đi nữa sống sao được cho vừa lòng được tập đâu sếp em gọi thế nào mà sếp cảm thấy không bị thiếu tôn trọng với em thế là đủ.
Vâng thì thôi em nghe sếp anh luôn vậy, cũng khổ thật. Xưng hô bề trên cũng đau đầu phải chọn từ ngữ.
Nếu không xóa màu thì màu nó mặc định là màu cũ mà sếp như kiểu tô màu của conditionformatting ấy sếp. à Anhhhhh! (@$%@
À hay anh định dùng vba à, thế thì thì phải xóa màu rồi anh. -0-0-0-
 
Ồ vậy là sếp chuẩn đét rồi thôi em không để tâm chuyện ai ngại, để tâm đau đầu lắm sếp ơi. Dù tốt mấy đi nữa sống sao được cho vừa lòng được tập đâu sếp em gọi thế nào mà sếp cảm thấy không bị thiếu tôn trọng với em thế là đủ.
Vâng thì thôi em nghe sếp anh luôn vậy, cũng khổ thật. Xưng hô bề trên cũng đau đầu phải chọn từ ngữ.
Nếu không xóa màu thì màu nó mặc định là màu cũ mà sếp như kiểu tô màu của conditionformatting ấy sếp. à Anhhhhh! (@$%@
À hay anh định dùng vba à, thế thì thì phải xóa màu rồi anh. -0-0-0-
Lấy một hàng làm ví dụ đi, bắt đầu là ngày:
- Ngày 1 ghi là 10 tô vàng ở đâu? chính nó? hay không tô?
- Ngày 2 ghi là 11, tô ô ngày 1 hay không tô?
- Ngày 3 ghi là 9, tô ô ngày 1 hay ngày 2? Lúc này 1 trong 2 ngày kia đã có màu, nếu cả 2 ô cùng tô vàng thì sao?
.....
 
Lấy một hàng làm ví dụ đi, bắt đầu là ngày:
- Ngày 1 ghi là 10 tô vàng ở đâu? chính nó? hay không tô?
- Ngày 2 ghi là 11, tô ô ngày 1 hay không tô?
- Ngày 3 ghi là 9, tô ô ngày 1 hay ngày 2? Lúc này 1 trong 2 ngày kia đã có màu, nếu cả 2 ô cùng tô vàng thì sao?
.....
Em sẽ tạo thêm ngày 1 ô B1: ô này sẽ điền ngày nhập liệu cuối cùng vào đây ví dụ nếu nhập liệu mới đến ngày 1 thì trước đó không có gì so sánh không tô gì cả (màu trắng)
đến ngày 2 em nhập ngày 2 vào B1 nó sẽ so với ngày 1 xem có giá trị không nếu có giá trị và giá trị của ngày 1 lớn hơn ngày 2 thì tô ngày 1 cong không thì không làm gì cả (màu trắng)
đến ngày 3 em nhập ngày 3 vào B1 nó sẽ so với ngày 2 xem có giá trị không nếu có giá trị của ngày 2 lớn hơn ngày 3thì tô ngày 2 , còn nếu ngày 2 trống thì kiểm tra ngày 1 xem có không nếu xem giá trị lớn hơn ngày 3 không nếu lớn tô màu,còn không thì không làm gì cả (màu trắng)
và cứ như vậy..
Nếu là vba sếp sử dụng hàm tự tạo với 3 biến số truyền vào : Tomau(Ngày mới nhất,Dải ngày,Vùng dữ liệu)
Trong đó ngày mới nhất là ngày nhập các giá trị sau cùng, vì có nhiều ngày, ví dụ: B1
Dải ngày là tất cả các ngày tại hàng 2 từ ngày nhỏ nhất đến ngày lớn nhất trong hàng 2 , ví dụ: C2:J2
Vùng dữ liệu C3:J22
em đưa hàm này vào Condtionformating kiểm tra TRUE là tô màu
Thôi anh cứ làm theo cách của anh , biết đâu lại hay hơn cái em cần. còn bài này em thấy nếu dùng công thức là thuận tiện.
 
Em sẽ tạo thêm ngày 1 ô B1: ô này sẽ điền ngày nhập liệu cuối cùng vào đây ví dụ nếu nhập liệu mới đến ngày 1 thì trước đó không có gì so sánh không tô gì cả (màu trắng)
đến ngày 2 em nhập ngày 2 vào B1 nó sẽ so với ngày 1 xem có giá trị không nếu có giá trị và giá trị của ngày 1 lớn hơn ngày 2 thì tô ngày 1 cong không thì không làm gì cả (màu trắng)
đến ngày 3 em nhập ngày 3 vào B1 nó sẽ so với ngày 2 xem có giá trị không nếu có giá trị của ngày 2 lớn hơn ngày 3thì tô ngày 2 , còn nếu ngày 2 trống thì kiểm tra ngày 1 xem có không nếu xem giá trị lớn hơn ngày 3 không nếu lớn tô màu,còn không thì không làm gì cả (màu trắng)
và cứ như vậy..
Nếu là vba sếp sử dụng hàm tự tạo với 3 biến số truyền vào : Tomau(Ngày mới nhất,Dải ngày,Vùng dữ liệu)
Trong đó ngày mới nhất là ngày nhập các giá trị sau cùng, vì có nhiều ngày, ví dụ: B1
Dải ngày là tất cả các ngày tại hàng 2 từ ngày nhỏ nhất đến ngày lớn nhất trong hàng 2 , ví dụ: C2:J2
Vùng dữ liệu C3:J22
em đưa hàm này vào Condtionformating kiểm tra TRUE là tô màu
Thôi anh cứ làm theo cách của anh , biết đâu lại hay hơn cái em cần. còn bài này em thấy nếu dùng công thức là thuận tiện.
Tôi cho bạn công thức, xem bạn có tùy biến từ công thức được không nhé.
 

File đính kèm

Nếu không xóa màu thì màu nó mặc định là màu cũ mà sếp như kiểu tô màu của conditionformatting ấy sếp. à Anhhhhh! (@$%@
À hay anh định dùng vba à, thế thì thì phải xóa màu rồi anh. -0-0-0-
Tôi không biết cách nào để dùng CF trong trường hợp này, thôi thì dùng VBA và bấm nút vậy.

Sau khi bấm nút KIỂM TRA và nó so sánh với ô cuối cùng có số liệu trong một hàng thì kết quả như hình:

1632763626265.png

Và đây là thủ tục của nó:

Mã:
Sub ToMau()
    Dim k As Double
    Dim shtData As Worksheet
    Dim c As Long, e As Long, r As Long
    Dim rng As Range, rngData As Range, rngFind As Range, rngCompare As Range
    Set shtData = Worksheets("Sheet1")
    e = shtData.Range("B" & shtData.Rows.Count).End(xlUp).Row
    Set rngData = shtData.Range("C3:J" & e)
    rngData.Interior.Pattern = xlNone
    e = e - 2
    For r = 1 To e
        c = shtData.Range("K3")(r).End(xlToLeft).Column
        If c > 3 Then
            Set rngCompare = rngData(r, c - 2)
            Set rngFind = shtData.Range(rngData(r, 1), rngData(r, c - 3))
            k = FindClosestNumber(rngFind, rngCompare.Value)
            If k > 0 Then
                For Each rng In rngFind
                    If Val(rng.Value) = k Then
                        rng.Interior.Color = 65535
                        Exit For
                    End If
                Next
            End If
        End If
    Next
End Sub

Bạn kiểm tra đi xem đã đúng chưa nhé.

P/s: Bạn lưu ý với câu này:
Mã:
c = shtData.Range("K3")(r).End(xlToLeft).Column
Áp dụng thực tế bạn có thể thay đổi K3 là một ô khác. K3 là ô sát với ô cuối cùng của hàng đầu tiên, khi áp dụng thực tế bạn cũng nên thay thế kiểu như vậy.
 

File đính kèm

Lần chỉnh sửa cuối:
em muốn tô màu các giá trị gần nhất và lớn hơn giá trị cuối cùng nhờ mọi người giúp đỡ em.
Bạn viết lớn hơn nhưng trong tập tin đính kèm bạn lại tô mầu C19 nên tôi cho là LỚN HƠN HOẶC BẰNG. Đã phát biểu thì phải phát biểu thật chính xác.

Tôi thử phát biểu lại yêu cầu. Nếu đúng ý thì đọc tiếp, nếu ý khác thì dừng tại đây.

Yêu cầu: Trong mỗi dòng ta xét các ô trước ô cuối cùng có dữ liệu. Nếu trong các ô đang xét có ít nhất 1 ô có giá trị LỚN HƠN HOẶC BẰNG giá trị của ô cuối thì ta tô mầu ô ở cột gần cột của ô cuối cùng nhất, các ô khác không tô mầu. Trong trường hợp ngược lại không có ô nào được tô mầu.

Nói cách khác ta bắt đầu từ ô ở cột ngay trước ô cuối cùng và đi về bên trái. Nếu gặp ô có giá trị LỚN HƠN HOẶC BẰNG giá trị của ô cuối thì ta tô mầu ô đó và dừng lại.

Tôi tậu được con bò mộng, rút gọn hay không thì tùy bạn, tôi cũng chả ham.

Hãy làm chính xác các bước sau: Chọn C3 -> đặt Name vd. hichic với Refers to
Mã:
=LOOKUP(2,1/($C3:INDEX($C3:$Z3,,LOOKUP(10^15,$C3:$Z3,COLUMN($C3:$Z3))-3)>=LOOKUP(10^15,$C3:$Z3)),COLUMN($C3:$Z3))=COLUMN(C3)

-> chọn vd. C3:Z100 -> thẻ Home -> Conditional Formatting -> New Rule -> "Use a formula ..." -> nhập công thức
Mã:
=hichic

-> nhấn Format -> chọn mầu.
 
Tôi không biết cách nào để dùng CF trong trường hợp này, thôi thì dùng VBA và bấm nút vậy.

Sau khi bấm nút KIỂM TRA và nó so sánh với ô cuối cùng có số liệu trong một hàng thì kết quả như hình:

View attachment 266803

Và đây là thủ tục của nó:

Mã:
Sub ToMau()
    Dim k As Double
    Dim shtData As Worksheet
    Dim c As Long, e As Long, r As Long
    Dim rng As Range, rngData As Range, rngFind As Range, rngCompare As Range
    Set shtData = Worksheets("Sheet1")
    e = shtData.Range("B" & shtData.Rows.Count).End(xlUp).Row
    Set rngData = shtData.Range("C3:J" & e)
    rngData.Interior.Pattern = xlNone
    e = e - 2
    For r = 1 To e
        c = shtData.Range("K3")(r).End(xlToLeft).Column
        If c > 3 Then
            Set rngCompare = rngData(r, c - 2)
            Set rngFind = shtData.Range(rngData(r, 1), rngData(r, c - 3))
            k = FindClosestNumber(rngFind, rngCompare.Value)
            If k > 0 Then
                For Each rng In rngFind
                    If Val(rng.Value) = k Then
                        rng.Interior.Color = 65535
                        Exit For
                    End If
                Next
            End If
        End If
    Next
End Sub

Bạn kiểm tra đi xem đã đúng chưa nhé.

P/s: Bạn lưu ý với câu này:
Mã:
c = shtData.Range("K3")(r).End(xlToLeft).Column
Áp dụng thực tế bạn có thể thay đổi K3 là một ô khác. K3 là ô sát với ô cuối cùng của hàng đầu tiên, khi áp dụng thực tế bạn cũng nên thay thế kiểu như vậy.
Bạn viết lớn hơn nhưng trong tập tin đính kèm bạn lại tô mầu C19 nên tôi cho là LỚN HƠN HOẶC BẰNG. Đã phát biểu thì phải phát biểu thật chính xác.

Tôi thử phát biểu lại yêu cầu. Nếu đúng ý thì đọc tiếp, nếu ý khác thì dừng tại đây.

Yêu cầu: Trong mỗi dòng ta xét các ô trước ô cuối cùng có dữ liệu. Nếu trong các ô đang xét có ít nhất 1 ô có giá trị LỚN HƠN HOẶC BẰNG giá trị của ô cuối thì ta tô mầu ô ở cột gần cột của ô cuối cùng nhất, các ô khác không tô mầu. Trong trường hợp ngược lại không có ô nào được tô mầu.

Nói cách khác ta bắt đầu từ ô ở cột ngay trước ô cuối cùng và đi về bên trái. Nếu gặp ô có giá trị LỚN HƠN HOẶC BẰNG giá trị của ô cuối thì ta tô mầu ô đó và dừng lại.

Tôi tậu được con bò mộng, rút gọn hay không thì tùy bạn, tôi cũng chả ham.

Hãy làm chính xác các bước sau: Chọn C3 -> đặt Name vd. hichic với Refers to
Mã:
=LOOKUP(2,1/($C3:INDEX($C3:$Z3,,LOOKUP(10^15,$C3:$Z3,COLUMN($C3:$Z3))-3)>=LOOKUP(10^15,$C3:$Z3)),COLUMN($C3:$Z3))=COLUMN(C3)

-> chọn vd. C3:Z100 -> thẻ Home -> Conditional Formatting -> New Rule -> "Use a formula ..." -> nhập công thức
Mã:
=hichic

-> nhấn Format -> chọn mầu.
Cảm ơn chú BATMAN,cảm ơn anh NGHĨA. Cháu đọc hai bài này xong cảm giác đúng là rất hichic (@$%@
 
Bạn viết lớn hơn nhưng trong tập tin đính kèm bạn lại tô mầu C19 nên tôi cho là LỚN HƠN HOẶC BẰNG. Đã phát biểu thì phải phát biểu thật chính xác.

Tôi thử phát biểu lại yêu cầu. Nếu đúng ý thì đọc tiếp, nếu ý khác thì dừng tại đây.

Yêu cầu: Trong mỗi dòng ta xét các ô trước ô cuối cùng có dữ liệu. Nếu trong các ô đang xét có ít nhất 1 ô có giá trị LỚN HƠN HOẶC BẰNG giá trị của ô cuối thì ta tô mầu ô ở cột gần cột của ô cuối cùng nhất, các ô khác không tô mầu. Trong trường hợp ngược lại không có ô nào được tô mầu.

Nói cách khác ta bắt đầu từ ô ở cột ngay trước ô cuối cùng và đi về bên trái. Nếu gặp ô có giá trị LỚN HƠN HOẶC BẰNG giá trị của ô cuối thì ta tô mầu ô đó và dừng lại.

Tôi tậu được con bò mộng, rút gọn hay không thì tùy bạn, tôi cũng chả ham.

Hãy làm chính xác các bước sau: Chọn C3 -> đặt Name vd. hichic với Refers to
Mã:
=LOOKUP(2,1/($C3:INDEX($C3:$Z3,,LOOKUP(10^15,$C3:$Z3,COLUMN($C3:$Z3))-3)>=LOOKUP(10^15,$C3:$Z3)),COLUMN($C3:$Z3))=COLUMN(C3)

-> chọn vd. C3:Z100 -> thẻ Home -> Conditional Formatting -> New Rule -> "Use a formula ..." -> nhập công thức
Mã:
=hichic

-> nhấn Format -> chọn mầu.

Cháu không nghĩ là kỹ năng diễn đạt của cháu lại kém đến mức thậm tệ như vậy, sau một hồi loay hoay cháu mới test thử được phần công thức này của chú.
Kết quả của chú cho ra là các ô màu cam, còn kết quả cháu muốn tìm và so sánh là các con số màu xanh dương vì nó là con số gần nhất với ngày nhập sau cùng.
như vậy sẽ tìm các con số màu xanh này và tiếp đến là so sánh con số màu xanh này với con số tại cột G nếu con số màu xanh này lớn hơn thôi thì hoặc bằng nữa cũng được. thì tô màu nền còn các con số khác nhỏ hơn không xét màu mè nào thì để nguyên.

1632805425997.png
Bài đã được tự động gộp:

Tôi cho bạn công thức, xem bạn có tùy biến từ công thức được không nhé.
Ặc công thức gì mà móc miếc loằng ngoằng khủng khiếp vậy sếp?
Bài đã được tự động gộp:

Tôi không biết cách nào để dùng CF trong trường hợp này, thôi thì dùng VBA và bấm nút vậy.

Sau khi bấm nút KIỂM TRA và nó so sánh với ô cuối cùng có số liệu trong một hàng thì kết quả như hình:

View attachment 266803

Và đây là thủ tục của nó:

Mã:
Sub ToMau()
    Dim k As Double
    Dim shtData As Worksheet
    Dim c As Long, e As Long, r As Long
    Dim rng As Range, rngData As Range, rngFind As Range, rngCompare As Range
    Set shtData = Worksheets("Sheet1")
    e = shtData.Range("B" & shtData.Rows.Count).End(xlUp).Row
    Set rngData = shtData.Range("C3:J" & e)
    rngData.Interior.Pattern = xlNone
    e = e - 2
    For r = 1 To e
        c = shtData.Range("K3")(r).End(xlToLeft).Column
        If c > 3 Then
            Set rngCompare = rngData(r, c - 2)
            Set rngFind = shtData.Range(rngData(r, 1), rngData(r, c - 3))
            k = FindClosestNumber(rngFind, rngCompare.Value)
            If k > 0 Then
                For Each rng In rngFind
                    If Val(rng.Value) = k Then
                        rng.Interior.Color = 65535
                        Exit For
                    End If
                Next
            End If
        End If
    Next
End Sub

Bạn kiểm tra đi xem đã đúng chưa nhé.

P/s: Bạn lưu ý với câu này:
Mã:
c = shtData.Range("K3")(r).End(xlToLeft).Column
Áp dụng thực tế bạn có thể thay đổi K3 là một ô khác. K3 là ô sát với ô cuối cùng của hàng đầu tiên, khi áp dụng thực tế bạn cũng nên thay thế kiểu như vậy.

Bài này của Sếp cũng tương tự bài của chú BATMAN rồi, kết luận là do em diễn đạt kém vậy.

1632806269817.png
 
Lần chỉnh sửa cuối:
Công thức gì mà móc miếc loằng ngoằng khủng khiếp vậy sếp?
Công thức mảng bạn ơi. Bạn gõ công thức như thường, sau đó kết thúc bằng tổ hợp phím Ctrl+Shift+Enter tự nhiên nó sẽ ra 2 dấu ngoặc móc { }.
 
Công thức mảng bạn ơi. Bạn gõ công thức như thường, sau đó kết thúc bằng tổ hợp phím Ctrl+Shift+Enter tự nhiên nó sẽ ra 2 dấu ngoặc móc { }.
thú vị thật, em copy vào conditionformatting không Ctrl+Shift+Enter được nên em thêm 2 cái móc , nó lại xuất hiện thêm "="{=MIN(IF(C3:F3>G3,C3:F3))}""
 
Bạn ghi là:
em muốn tô màu các giá trị gần nhất và lớn hơn giá trị cuối cùng nhờ mọi người giúp đỡ em.

Nhưng cái hình tại hàng Item10 lẽ ra không có trường hợp nào lớn hơn, nhưng bạn lại chọn 11.334, tôi không biết dựa trên cơ sở nào.
 
Bạn ghi là:
em muốn tô màu các giá trị gần nhất và lớn hơn giá trị cuối cùng nhờ mọi người giúp đỡ em.

Nhưng cái hình tại hàng Item10 lẽ ra không có trường hợp nào lớn hơn, nhưng bạn lại chọn 11.334, tôi không biết dựa trên cơ sở nào.
Đúng rồi sếp chỉ là chọn để kiểm tra vì nó có giá trị và nó là gần nhất, sau đó mới xét đến điều kiện nếu lớn thì tô màu cho nó còn không thì item này không có cái nào được tô màu.
 
Đúng rồi sếp chỉ là chọn để kiểm tra vì nó có giá trị và nó là gần nhất, sau đó mới xét đến điều kiện nếu lớn thì tô màu cho nó còn không thì item này không có cái nào được tô màu.
Sai logic trầm trọng.
1) Số so sánh là 11.466 là số lớn nhất, theo điều kiện bạn đưa ra là lớn hơn và gần nhất thì không có số nào thỏa điều kiện.
2) Nếu cho rằng khi không có số nào lớn hơn thì chọn số nhỏ hơn gần nhất, thì con số bạn chọn 11.334 cũng không đúng vì số gần nhất là 11.394.
Vậy thực ra bạn cho tôi biết phải làm sao mới ra được con số 11.334 vậy?!
 
Sai logic trầm trọng.
1) Số so sánh là 11.466 là số lớn nhất, theo điều kiện bạn đưa ra là lớn hơn và gần nhất thì không có số nào thỏa điều kiện.
2) Nếu cho rằng khi không có số nào lớn hơn thì chọn số nhỏ hơn gần nhất, thì con số bạn chọn 11.334 cũng không đúng vì số gần nhất là 11.394.
Vậy thực ra bạn cho tôi biết phải làm sao mới ra được con số 11.334 vậy?!
11.334 là con số cũ và gần nhất liền kề với con số 11.466 em lấy nó để so sánh thôi còn các con số trước nữa dù lơn hơn hay bé hơn em cũng không để ý (không xét đến)
1632809261555.png
 
Kết quả của chú cho ra là các ô màu cam, còn kết quả cháu muốn tìm và so sánh là các con số màu xanh dương vì nó là con số gần nhất với ngày nhập sau cùng.
như vậy sẽ tìm các con số màu xanh này và tiếp đến là so sánh con số màu xanh này với con số tại cột G nếu con số màu xanh này lớn hơn thôi thì hoặc bằng nữa cũng được. thì tô màu nền còn các con số khác nhỏ hơn không xét màu mè nào thì để nguyên.
Trước khi ra công thức tôi đã mô tả yêu cầu. Bạn mô tả không rõ ràng nên không ai hiểu đúng.

Nếu không biết giải thích rõ ràng thì ít ra cũng phải tô mầu cho kết quả cuối cùng. Làm như bạn chả ai hiểu.

Tôi cho ví dụ. Ngày hiện hành để xét tô mầu là ngày 05.09.2021, tức cột cuối hiện hành là cột G. Ta xét dòng 9, nhưng G9 lại RỖNG. Tôi hiểu là giá trị SAU CÙNG là G9 và nó = 0. Vậy nếu tôi hiểu thì F9 = 12,663 là ngày GẦN NHẤT với G9 và LỚN HƠN G9 (F9 > G9 = 0), vì thế tô mầu F9. Còn bạn, bạn có tô mầu F9 không?

Và nữa, dòng 9 cho thấy là ô ở cột lastInputdate có thể RỖNG, vậy nếu tất cả các ô trong cột G đều rỗng thì bằng cách nào biết cột G là cột lastInputdate?

Tôi đề nghị chỉ số cột của cột cuối cùng ghi ở B1. Tức nếu G thì B1 = 7, nếu H thì B1 = 8 ... Vd. công thức cho B1 =Column(G1), sau đó hàng ngày sửa G thành H, I, J ...

Nếu F9 nói ở trên cần tô mầu thì (nếu không thì dừng đọc ở đây. Tôi không chơi trò thông tin nhỏ giọt)

Name hichic, Refers to
Mã:
=AND(COUNT(C3:INDEX($C3:$Z3;;$B$1-3))=1;C3>INDEX($C3:$Z3;;$B$1-2))
 
Lần chỉnh sửa cuối:
nó không lớn hơn nên nó cũng không được tô màu, nó chỉ là con số để dựa vào căn cứ vào để so sánh có tô màu cho nó hay không thôi, ở bài 6 sếp hỏi em , em cũng trả lời rồi mà. (@$%@
Hình như không phải bạn muốn tìm số lớn hơn hay bé hơn, mà bạn chỉ tìm ô liền kề có số liệu sát bên cột so sánh về bên trái thôi thì phải.

Và kết quả phải thế này mới đúng phải không?

1632826854049.png
 
Lần chỉnh sửa cuối:
Hình như không phải bạn muốn tìm số lớn hơn hay bé hơn, mà bạn chỉ tìm ô liền kề có số liệu sát bên cột so sánh về bên trái thôi thì phải.

Và kết quả phải thế này mới đúng phải không?

View attachment 266876
Item01 ==> Đúng
Item02 ==> Đúng
Item03 ==> Đúng
Item04 ==> Đúng
Item06 ==> Đúng
Item07==>Hình như Sai
Item08 ==> Đúng
Item09 ==> Đúng
Item10 ==>Sai
Item11 ==>Hông biết
Item12 ==>Sai
Item13 ==>Sai
14, 15, 17, 19 ==> Đúng
Tui nói thôi chứ không phải bạn ý nói
Nghĩa ráng đi em, chừng 3 bài nữa là đúng hết đó. Hihi
Híc
 
Item01 ==> Đúng
Item02 ==> Đúng
Item03 ==> Đúng
Item04 ==> Đúng
Item06 ==> Đúng
Item07==>Hình như Sai
Item08 ==> Đúng
Item09 ==> Đúng
Item10 ==>Sai
Item11 ==>Hông biết
Item12 ==>Sai
Item13 ==>Sai
14, 15, 17, 19 ==> Đúng
Tui nói thôi chứ không phải bạn ý nói
Nghĩa ráng đi em, chừng 3 bài nữa là đúng hết đó. Hihi
Híc
Nếu so sánh hình thì đúng 100% rồi anh ơi.

Hình của bạn đó, số đúng là chữ màu xanh dương:

1632832910478.png

Và hình của em nó tương đồng:

1632832940542.png
 
Xanh dương là màu chữ, còn thiếu cái màu nền nâu nâu cam cam hay gì đó mới đủ bộ bồ tèo ơi
Híc
Cái màu cam là theo công thức của bác batman1 để sử dụng CF và bạn ấy dùng màu xanh chữ so sánh để phân biệt anh ơi.
Mà nếu thay vì bạn ấy đặt yêu cầu rõ ràng thì rất dễ làm, cứ nói tô màu ô có dữ liệu sát bên nhất ở bên trái so với cột cần so sánh thì đâu có rối não. Ngay cái tiêu đề bạn ấy nói giá trị gần nhất lớn hơn mới hack não đó chứ!
 
Cái màu cam là theo công thức của bác batman1 để sử dụng CF và bạn ấy dùng màu xanh chữ so sánh để phân biệt anh ơi.
Mà nếu thay vì bạn ấy đặt yêu cầu rõ ràng thì rất dễ làm, cứ nói tô màu ô có dữ liệu sát bên nhất ở bên trái so với cột cần so sánh thì đâu có rối não. Ngay cái tiêu đề bạn ấy nói giá trị gần nhất lớn hơn mới hack não đó chứ!
Hình như bạn í cho ví dụ ...ngược hay sao ấy. Mình nghĩ nó thế này
1) Chạy từng hàng, kiếm cell cuối cùng có dữ liệu, trong hình Item01 là cell [G3]
2) Chạy ngược từ cột [G] về cột [C], tới cell nào có dữ liệu thì dừng lại, trong hình là cell [F3]
3) So sánh 2 thằng, nếu [F3] > [G3] ==> tô màu [F3], ngược lại không làm gì, xuống hàng chạy tiếp Item02
Khi nhập dữ liệu mới vào, thí dụ [I3] thì ta xoá màu, so sánh [I3] & [G3] ==> nếu [G3] > [I3] ==> tô màu [G3]
Ghê hông, làm như bài của mình, nói như là đúng rồi, nghi nghi vậy thôi nhé
Híc
 
Hình như bạn í cho ví dụ ...ngược hay sao ấy. Mình nghĩ nó thế này
1) Chạy từng hàng, kiếm cell cuối cùng có dữ liệu, trong hình Item01 là cell [G3]
2) Chạy ngược từ cột [G] về cột [C], tới cell nào có dữ liệu thì dừng lại, trong hình là cell [F3]
3) So sánh 2 thằng, nếu [F3] > [G3] ==> tô màu [F3], ngược lại không làm gì, xuống hàng chạy tiếp Item02
Khi nhập dữ liệu mới vào, thí dụ [I3] thì ta xoá màu, so sánh [I3] & [G3] ==> nếu [G3] > [I3] ==> tô màu [G3]
Ghê hông, làm như bài của mình, nói như là đúng rồi, nghi nghi vậy thôi nhé
Híc
Nếu em nghĩ là đúng thì chỉ cần xác định cột cuối cùng làm vị trí để quay về bên trái, đụng ô nào đầu tiên có số liệu thì tô màu (không phân biệt lớn hơn hay nhỏ hơn ô cuối cùng), nếu không gặp được ô nào hết thì không tô ô nào cả.
 
Nếu em nghĩ là đúng thì chỉ cần xác định cột cuối cùng làm vị trí để quay về bên trái, đụng ô nào đầu tiên có số liệu thì tô màu (không phân biệt lớn hơn hay nhỏ hơn ô cuối cùng), nếu không gặp được ô nào hết thì không tô ô nào cả.
Bạn ấy viết: ( mình chỉnh lại cho dễ nhìn & dễ hiểu thôi
[B]Ô ngày mới VD bằng 10, [/B] các ô trước lần lượt là 9, 10, 11, 12 thì ô nào được chọn để tô màu?--số 9 sẽ là được chọn nhưng số 9 không đạt tiêu chuẩn để màu vì 9 < 10
chỗ này đáng nhẽ bạn ấy viết các ô trước lần lượt là 12, 11, 10, 9. ( thí dụ 4 cột [C, D, E, F] Lúc này thằng mới nhập là 10 (có thể cột [H, I .....] và thằng cuối (cũ) có dữ liệu là cột [F] = 9, so sánh: 9< 10 ==> không đạt chuẩn ==> không làm gì
Nếu các ô trước lần lượt là 11, 10, 11, 12 thì 11 sẽ được tô màu nền vàng,
Nếu viết ngược lại 12, 11, 10, 11, lúc này sẽ lấy thằng 11 [F] so sánh: 11 > 10 ==> thoả ==> tô màu thằng [F]
 
Trước khi ra công thức tôi đã mô tả yêu cầu. Bạn mô tả không rõ ràng nên không ai hiểu đúng.

Nếu không biết giải thích rõ ràng thì ít ra cũng phải tô mầu cho kết quả cuối cùng. Làm như bạn chả ai hiểu.

Tôi cho ví dụ. Ngày hiện hành để xét tô mầu là ngày 05.09.2021, tức cột cuối hiện hành là cột G. Ta xét dòng 9, nhưng G9 lại RỖNG. Tôi hiểu là giá trị SAU CÙNG là G9 và nó = 0. Vậy nếu tôi hiểu thì F9 = 12,663 là ngày GẦN NHẤT với G9 và LỚN HƠN G9 (F9 > G9 = 0), vì thế tô mầu F9. Còn bạn, bạn có tô mầu F9 không?

Và nữa, dòng 9 cho thấy là ô ở cột lastInputdate có thể RỖNG, vậy nếu tất cả các ô trong cột G đều rỗng thì bằng cách nào biết cột G là cột lastInputdate?

Tôi đề nghị chỉ số cột của cột cuối cùng ghi ở B1. Tức nếu G thì B1 = 7, nếu H thì B1 = 8 ... Vd. công thức cho B1 =Column(G1), sau đó hàng ngày sửa G thành H, I, J ...

Nếu F9 nói ở trên cần tô mầu thì (nếu không thì dừng đọc ở đây. Tôi không chơi trò thông tin nhỏ giọt)

Name hichic, Refers to
Mã:
=AND(COUNT(C3:INDEX($C3:$Z3;;$B$1-3))=1;C3>INDEX($C3:$Z3;;$B$1-2))
Hình như hôm nay cháu hơi xui, máy tính của cháu lại bị trục trặc kỹ thuật rồi thì phải @!::'.

1632837077164.png
Bài đã được tự động gộp:

Nếu em nghĩ là đúng thì chỉ cần xác định cột cuối cùng làm vị trí để quay về bên trái, đụng ô nào đầu tiên có số liệu thì
đến bước này thì đúng rồi
đụng ô nào đầu tiên có số liệu thì tô màu (không phân biệt lớn hơn hay nhỏ hơn ô cuối cùng),
sai rồi sếp ơi trời ơi, đến đây kiểm tra xem lớn hay bé hơn ô cuối cùng đã nếu lớn hơn thì mới tô màu

nếu không gặp được ô nào hết thì không tô ô nào cả.
bước này thì đúng rồi sếp.
Bài đã được tự động gộp:

Bạn ấy viết: ( mình chỉnh lại cho dễ nhìn & dễ hiểu thôi
[B]Ô ngày mới VD bằng 10, [/B] các ô trước lần lượt là 9, 10, 11, 12 thì ô nào được chọn để tô màu?--số 9 sẽ là được chọn nhưng số 9 không đạt tiêu chuẩn để màu vì 9 < 10
chỗ này đáng nhẽ bạn ấy viết các ô trước lần lượt là 12, 11, 10, 9. ( thí dụ 4 cột [C, D, E, F] Lúc này thằng mới nhập là 10 (có thể cột [H, I .....] và thằng cuối (cũ) có dữ liệu là cột [F] = 9, so sánh: 9< 10 ==> không đạt chuẩn ==> không làm gì
Nếu các ô trước lần lượt là 11, 10, 11, 12 thì 11 sẽ được tô màu nền vàng,
Nếu viết ngược lại 12, 11, 10, 11, lúc này sẽ lấy thằng 11 [F] so sánh: 11 > 10 ==> thoả ==> tô màu thằng [F]
Trời ơi chính là nó đó bácTôm ơi, chuẩn luôn vậy là em mô tả ngược rồi, tai hại :eek:
 
Lần chỉnh sửa cuối:
Hình như hôm nay cháu hơi xui, máy tính của cháu lại bị trục trặc kỹ thuật rồi thì phải @!::'.

View attachment 266887
1. Thay các dấu chấm phẩy trong công thức bằng dấu phẩy.
Tùy theo thiết lập trong CP của từng máy mà dấu ngăn cách các tham số trong công thức là dấu chấm phẩy (máy tôi) hay dấu phẩy (máy bạn).
Hàng ngày bạn dùng dấu phẩy, bây giờ bạn nhìn thấy dấu chấm phẩy mà bạn không thấy có gì đó hơi "khác khác"? Chịu khó suy nghĩ chút đi.

2. Tôi nhắc lại: trước khi thêm name hichic và trước khi chỉnh sửa nó về sau đều phải chọn C3. Tức chọn C3 -> thêm hoặc sửa name hichic.
 
sai rồi sếp ơi trời ơi, đến đây kiểm tra xem lớn hay bé hơn ô cuối cùng đã nếu lớn hơn thì mới tô màu
Tôi rối não với bạn rồi nha!
1632838000828.png

Trong khi bạn nói như thế nhưng khi bạn so sánh với CF của bác batman1 thì bạn ghi thế này:

1632838079335.png

Lẽ ra nếu nói số lớn hơn ô cuối cùng phải là ô có màu với số 11.554 mới đúng, nhưng bạn lại chọn 11.471, con số nhỏ hơn cột cuối!??????????
 
Trước khi ra công thức tôi đã mô tả yêu cầu. Bạn mô tả không rõ ràng nên không ai hiểu đúng.

Nếu không biết giải thích rõ ràng thì ít ra cũng phải tô mầu cho kết quả cuối cùng. Làm như bạn chả ai hiểu.

Tôi cho ví dụ. Ngày hiện hành để xét tô mầu là ngày 05.09.2021, tức cột cuối hiện hành là cột G. Ta xét dòng 9, nhưng G9 lại RỖNG. Tôi hiểu là giá trị SAU CÙNG là G9 và nó = 0. Vậy nếu tôi hiểu thì F9 = 12,663 là ngày GẦN NHẤT với G9 và LỚN HƠN G9 (F9 > G9 = 0), vì thế tô mầu F9. Còn bạn, bạn có tô mầu F9 không?

Và nữa, dòng 9 cho thấy là ô ở cột lastInputdate có thể RỖNG, vậy nếu tất cả các ô trong cột G đều rỗng thì bằng cách nào biết cột G là cột lastInputdate?

Tôi đề nghị chỉ số cột của cột cuối cùng ghi ở B1. Tức nếu G thì B1 = 7, nếu H thì B1 = 8 ... Vd. công thức cho B1 =Column(G1), sau đó hàng ngày sửa G thành H, I, J ...

Nếu F9 nói ở trên cần tô mầu thì (nếu không thì dừng đọc ở đây. Tôi không chơi trò thông tin nhỏ giọt)

Name hichic, Refers to
Mã:
=AND(COUNT(C3:INDEX($C3:$Z3;;$B$1-3))=1;C3>INDEX($C3:$Z3;;$B$1-2))
Sau một hồi hì hục với google thần chưởng cháu đã xử lý được vấn đề, thay dấu ";" bằng "," là được. Vậy là công thức thức trước của chú dấu "," chắc chú phải dùng nhiều máy tính lắm.. cháu thấy kết quả giống giống ý cháu muốn rồi phù lại hên rồi hên rồi chú ạ.
Bài đã được tự động gộp:

Tôi rối não với bạn rồi nha!
View attachment 266888

Trong khi bạn nói như thế nhưng khi bạn so sánh với CF của bác batman1 thì bạn ghi thế này:

View attachment 266889

Lẽ ra nếu nói số lớn hơn ô cuối cùng phải là ô có màu với số 11.554 mới đúng, nhưng bạn lại chọn 11.471, con số nhỏ hơn cột cuối!??????????
Hichic.. em xin lỗi có lẽ em nên xem lại cách giải thích của mình.
Em chỉ muốn tô màu nền với giá trị lớn hơn cột G, và giá trị này phải là các giá trị ô màu chữ xanh dương.
Em tô màu chữ xanh để đánh dấu là ô gần nhất với cột G nên em đánh dấu nó..thực sự xin lỗi và cảm ơn sếp đã cố gắng giúp em.
 
Lần chỉnh sửa cuối:
Sau một hồi hì hục với google thần chưởng cháu đã xử lý được vấn đề, thay dấu ";" bằng "," là được. Vậy là công thức thức trước của chú dấu "," chắc chú phải dùng nhiều máy tính lắm.. cháu thấy kết quả giống giống ý cháu muốn rồi phù lại hên rồi hên rồi chú ạ.
Tôi chỉ có 1 máy với dấu chấm phẩy. Mỗi lần gửi lên GPE là tôi phải mất công thay bằng dấu phẩy. Tất nhiên làm mãi thì có những lúc quên. Đi đêm mãi có ngày gặp ma.

Để cho bạn dễ kiểm tra thì tôi mô tả chính xác.

Với mỗi dòng ta xuất phát từ ô ở cột ngay trước cột cuối, tức nếu cột G là cột cuối thì xuất phát từ cột F, và dịch về bên trái. Nếu gặp ô đầu tiên khác RỖNG thì dừng lại. Nếu có ô dừng và giá trị của ô dừng > ô ở cột cuối thì tô mầu ô dừng, còn nếu không có ô dừng hoặc giá trị của ô dừng <= ô cuối thì không tô mầu.

Nếu yêu cầu đúng thế thì kiểm tra công thức. Nếu yêu cầu khác thì ngừng đọc tại đây. Và tôi cũng dừng ở đây. Tôi không tham gia nữa.
 
Hichic.. em xin lỗi có lẽ em nên xem lại cách giải thích của mình.
Em chỉ muốn tô màu nền với giá trị lớn hơn cột G, và giá trị này phải là các giá trị ô màu chữ xanh dương.
Em tô màu chữ xanh để đánh dấu là ô gần nhất với cột G nên em đánh dấu nó..thực sự xin lỗi và cảm ơn sếp đã cố gắng giúp em.
Nói tóm lại, bạn cần tô màu những ô nào trong bảng dưới đây thì bạn tô cho tôi xem kết quả sẽ ra thế nào cho dễ hình dung, khỏi giải thích nhiều:

1632839077854.png
 
Tôi chỉ có 1 máy với dấu chấm phẩy. Mỗi lần gửi lên GPE là tôi phải mất công thay bằng dấu phẩy. Tất nhiên làm mãi thì có những lúc quên. Đi đêm mãi có ngày gặp ma.

Để cho bạn dễ kiểm tra thì tôi mô tả chính xác.

Với mỗi dòng ta xuất phát từ ô ở cột ngay trước cột cuối, tức nếu cột G là cột cuối thì xuất phát từ cột F, và dịch về bên trái. Nếu gặp ô đầu tiên khác RỖNG thì dừng lại. Nếu có ô dừng và giá trị của ô dừng > ô ở cột cuối thì tô mầu ô dừng, còn nếu không có ô dừng hoặc giá trị của ô dừng <= ô cuối thì không tô mầu.

Nếu yêu cầu đúng thế thì kiểm tra công thức. Nếu yêu cầu khác thì ngừng đọc tại đây. Và tôi cũng dừng ở đây. Tôi không tham gia nữa.
Đúng rồi chú, cháu thử công thức của chú thấy đúng ý cháu rồi, cảm ơn chú nhiều.
Nói tóm lại, bạn cần tô màu những ô nào trong bảng dưới đây thì bạn tô cho tôi xem kết quả sẽ ra thế nào cho dễ hình dung, khỏi giải thích nhiều:

View attachment 266892
Đây sếp màu em muốn là đây ạ :;;;:::
1632839307837.png
 
Đúng rồi chú, cháu thử công thức của chú thấy đúng ý cháu rồi, cảm ơn chú nhiều.

Đây sếp màu em muốn là đây ạ :;;;:::
View attachment 266893
Như vậy thì được hiểu là, nếu ô liền kề (bỏ qua ô rỗng) lớn hơn ô cuối cùng của cột chỉ định thì tô màu, không thì hàng đó không tô. Ngắn gọn dễ hiểu dễ làm.
 
Như vậy thì được hiểu là, nếu ô liền kề (bỏ qua ô rỗng) lớn hơn ô cuối cùng của cột chỉ định thì tô màu, không thì hàng đó không tô. Ngắn gọn dễ hiểu dễ làm.
Vâng đúng rồi sếp, tiêu đề của em cũng ngắn gọn như thế ôi thôi bỏ đi. Tóm lại phát biểu của sếp như này em thấy chuẩn rồi.
 
Như vậy thì được hiểu là, nếu ô liền kề (bỏ qua ô rỗng) lớn hơn ô cuối cùng của cột chỉ định thì tô màu, không thì hàng đó không tô. Ngắn gọn dễ hiểu dễ làm.
Cuối cùng cũng đoán được à. :D

Tôi đọc bài #15 và đoán đúng.
Kết quả của chú cho ra là các ô màu cam, còn kết quả cháu muốn tìm và so sánh là các con số màu xanh dương vì nó là con số
gần nhất với ngày nhập sau cùng.
như vậy sẽ tìm các con số màu xanh này và tiếp đến là so sánh con số màu xanh này với con số tại cột G nếu con số màu xanh này
lớn hơn (thôi thì hoặc bằng nữa cũng được.) thì tô màu nền còn các con số khác nhỏ hơn không xét màu mè nào thì để nguyên.
 
Vâng đúng rồi sếp, tiêu đề của em cũng ngắn gọn như thế ôi thôi bỏ đi. Tóm lại phát biểu của sếp như này em thấy chuẩn rồi.
Nếu bạn muốn dùng code VBA thì bạn làm như sau:

1632841161718.png

Bạn cần fill màu đỏ cột cần so sánh, sau đó bấm nút KIỂM TRA, dĩ nhiên nếu bạn chưa fill đỏ code sẽ nhắc bạn tô đỏ và sau khi chạy code nó sẽ xóa màu giúp bạn. Dưới đây là code:

Mã:
Sub KiemTra()
    Dim shtData As Worksheet
    Dim rngFind As Range, rngNgayThang As Range
    Dim c As Long, e As Long, r As Long, col As Long
    Set shtData = Worksheets("Sheet1")
    e = shtData.Range("B" & shtData.Rows.Count).End(xlUp).Row
    Set rngNgayThang = shtData.Range("C2:J2")
    ''Tim cot có ô fill màu do:
    For Each rngFind In rngNgayThang
        If rngFind.Interior.Color = 255 Then
            col = rngFind.Column
            Exit For
        End If
    Next
    
    If col = 0 Then
        rngNgayThang.Interior.Color = 255
        MsgBox "Ban phai tô màu do tai 01 ô trên hàng ngày tháng câ`n so sánh!"
        rngNgayThang.Interior.Pattern = xlNone
        Exit Sub
    End If
    
    ''Xóa fill màu:
    rngNgayThang.Interior.Pattern = xlNone
    shtData.Range("C3:J" & e).Interior.Pattern = xlNone
    
    For r = 3 To e
        For c = col - 1 To 3 Step -1
            If shtData.Cells(r, c).Value > 0 Then
                If shtData.Cells(r, c).Value > shtData.Cells(r, col).Value Then
                    shtData.Cells(r, c).Interior.Color = 65535
                End If
                Exit For
            End If
        Next
    Next
End Sub
 

File đính kèm

Nếu bạn muốn dùng code VBA thì bạn làm như sau:

View attachment 266895

Bạn cần fill màu đỏ cột cần so sánh, sau đó bấm nút KIỂM TRA, dĩ nhiên nếu bạn chưa fill đỏ code sẽ nhắc bạn tô đỏ và sau khi chạy code nó sẽ xóa màu giúp bạn. Dưới đây là code:

Mã:
Sub KiemTra()
    Dim shtData As Worksheet
    Dim rngFind As Range, rngNgayThang As Range
    Dim c As Long, e As Long, r As Long, col As Long
    Set shtData = Worksheets("Sheet1")
    e = shtData.Range("B" & shtData.Rows.Count).End(xlUp).Row
    Set rngNgayThang = shtData.Range("C2:J2")
    ''Tim cot có ô fill màu do:
    For Each rngFind In rngNgayThang
        If rngFind.Interior.Color = 255 Then
            col = rngFind.Column
            Exit For
        End If
    Next
   
    If col = 0 Then
        rngNgayThang.Interior.Color = 255
        MsgBox "Ban phai tô màu do tai 01 ô trên hàng ngày tháng câ`n so sánh!"
        rngNgayThang.Interior.Pattern = xlNone
        Exit Sub
    End If
   
    ''Xóa fill màu:
    rngNgayThang.Interior.Pattern = xlNone
    shtData.Range("C3:J" & e).Interior.Pattern = xlNone
   
    For r = 3 To e
        For c = col - 1 To 3 Step -1
            If shtData.Cells(r, c).Value > 0 Then
                If shtData.Cells(r, c).Value > shtData.Cells(r, col).Value Then
                    shtData.Cells(r, c).Interior.Color = 65535
                End If
                Exit For
            End If
        Next
    Next
End Sub
Cảm ơn sếp rất nhiều,em đã bấm nút và so sánh khớp đáp án mẫu.. như đã nói bài này em muốn dùng công thức hơn nhưng code thì em đang học hỏi tham khảo có thêm phương pháp thì tốt em rồi, sếp còn đau đầu nữa không vậy, khổ thân sếp đau đầu em cũng phát sốt theo.
Bài đã được tự động gộp:

Nếu bạn muốn dùng code VBA thì bạn làm như sau:

View attachment 266895

Bạn cần fill màu đỏ cột cần so sánh, sau đó bấm nút KIỂM TRA, dĩ nhiên nếu bạn chưa fill đỏ code sẽ nhắc bạn tô đỏ và sau khi chạy code nó sẽ xóa màu giúp bạn. Dưới đây là code:

Mã:
Sub KiemTra()
    Dim shtData As Worksheet
    Dim rngFind As Range, rngNgayThang As Range
    Dim c As Long, e As Long, r As Long, col As Long
    Set shtData = Worksheets("Sheet1")
    e = shtData.Range("B" & shtData.Rows.Count).End(xlUp).Row
    Set rngNgayThang = shtData.Range("C2:J2")
    ''Tim cot có ô fill màu do:
    For Each rngFind In rngNgayThang
        If rngFind.Interior.Color = 255 Then
            col = rngFind.Column
            Exit For
        End If
    Next
   
    If col = 0 Then
        rngNgayThang.Interior.Color = 255
        MsgBox "Ban phai tô màu do tai 01 ô trên hàng ngày tháng câ`n so sánh!"
        rngNgayThang.Interior.Pattern = xlNone
        Exit Sub
    End If
   
    ''Xóa fill màu:
    rngNgayThang.Interior.Pattern = xlNone
    shtData.Range("C3:J" & e).Interior.Pattern = xlNone
   
    For r = 3 To e
        For c = col - 1 To 3 Step -1
            If shtData.Cells(r, c).Value > 0 Then
                If shtData.Cells(r, c).Value > shtData.Cells(r, col).Value Then
                    shtData.Cells(r, c).Interior.Color = 65535
                End If
                Exit For
            End If
        Next
    Next
End Sub
hay quá sếp bấm lần 2 mới thấy hay, tô màu tiêu đề cái cột có dữ liệu cuối cùng hay đấy sếp.
 
Cảm ơn sếp rất nhiều,em đã bấm nút và so sánh khớp đáp án mẫu.. như đã nói bài này em muốn dùng công thức hơn nhưng code thì em đang học hỏi tham khảo có thêm phương pháp thì tốt em rồi, sếp còn đau đầu nữa không vậy, khổ thân sếp đau đầu em cũng phát sốt theo.
Nếu dùng được công thức thì dùng, nhưng bạn cũng thử các ngày sau của nó xem có đúng không hay chỉ so sánh với ngày 5/9 nhé.
 
Nếu dùng được công thức thì dùng, nhưng bạn cũng thử các ngày sau của nó xem có đứng không hay chỉ so sánh với ngày 5/9 nhé.
Em thử rồi từ nãy giờ bấm sướng quá cứ bấm mãi nó có lùi hoặc tiến theo tiêu đề cột mình tô, nhưng sếp chỉnh thêm chút nữa tô màu nào vào tiêu đề cũng phải tô cứ bắt tô một màu cũng hơi gượng . ===\.
 
Em thử rồi từ nãy giờ bấm sướng quá cứ bấm mãi nó có lùi hoặc tiến theo tiêu đề cột mình tô, nhưng sếp chỉnh thêm chút nữa tô màu nào vào tiêu đề cũng phải tô cứ bắt tô một màu cũng hơi gượng . ===\.
Rồi, tới giờ đòi bà Phương Hằng luôn rồi! Cái đó không khó đâu.
 
Đau đầu vời thằng em này thật sếp nhỉ, em cụp máy đây cảm ơn sếp.
Đó, bạn muốn xanh đỏ tím vàng gì tùy!

1632843396515.png


Mã:
Sub KiemTra()
    Dim shtData As Worksheet
    Dim rngFind As Range, rngNgayThang As Range
    Dim c As Long, e As Long, r As Long, col As Long
    Set shtData = Worksheets("Sheet1")
    e = shtData.Range("B" & shtData.Rows.Count).End(xlUp).Row
    Set rngNgayThang = shtData.Range("C2:J2")
    ''Tim cot có ô fill màu bat ky:
    For Each rngFind In rngNgayThang
        If Not rngFind.Interior.Pattern = xlNone Then
            col = rngFind.Column
            Exit For
        End If
    Next
    
    If col = 0 Then
        rngNgayThang.Interior.Color = 255
        MsgBox "Ban phai tô màu gì dó tai 01 ô trên hàng ngày tháng câ`n so sánh!"
        rngNgayThang.Interior.Pattern = xlNone
        Exit Sub
    End If
    
    ''Xóa fill màu:
    rngNgayThang.Interior.Pattern = xlNone
    shtData.Range("C3:J" & e).Interior.Pattern = xlNone
    
    For r = 3 To e
        For c = col - 1 To 3 Step -1
            If shtData.Cells(r, c).Value > 0 Then
                If shtData.Cells(r, c).Value > shtData.Cells(r, col).Value Then
                    shtData.Cells(r, c).Interior.Color = 65535
                End If
                Exit For
            End If
        Next
    Next
End Sub
 

Bài viết mới nhất

Back
Top Bottom