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
Cần tô tay tất cả các ô thỏa điều kiệnem 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á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.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 ?
Câu này "các tiếp" nghĩa là sao bạn nhỉ?sẽ so với các tiếp
1) Tô theo hàng? (tô theo Item)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.
Ô 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).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.
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.Ô 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
Ồ 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à đủ.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?
Lấy một hàng làm ví dụ đi, bắt đầu là ngày:Ồ 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.![]()
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)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?
.....
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é.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 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.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.![]()
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
c = shtData.Range("K3")(r).End(xlToLeft).Column
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.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.
=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)
=hichic
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:
Á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.Mã:c = shtData.Range("K3")(r).End(xlToLeft).Column
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 hichicBạ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.
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 công thức gì mà móc miếc loằng ngoằng khủng khiếp vậy sế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é.
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:
Á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.Mã:c = shtData.Range("K3")(r).End(xlToLeft).Column
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 gì mà móc miếc loằng ngoằng khủng khiếp vậy sếp?
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))}""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 { }.
Đú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.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.
Sai logic trầm trọng.Đú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.
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)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?!
Vậy số 11.334 lớn hơn 11.466 hay sao?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)
View attachment 266832
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.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.
=AND(COUNT(C3:INDEX($C3:$Z3;;$B$1-3))=1;C3>INDEX($C3:$Z3;;$B$1-2))
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.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à.![]()
Item01 ==> ĐúngHì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
Nếu so sánh hình thì đúng 100% rồi anh ơi.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
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 ơiNế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:
View attachment 266880
Và hình của em nó tương đồng:
View attachment 266881
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.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
Hình như bạn í cho ví dụ ...ngược hay sao ấy. Mình nghĩ nó thế nàyCá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ứ!
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ả.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
Bạn ấy viết: ( mình chỉnh lại cho dễ nhìn & dễ hiểu thôiNế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]Ô 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
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,
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ảiTrướ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))
đến bước này thì đúng rồiNế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ì
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đụ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),
bước này thì đúng rồi sếp.nếu không gặp được ô nào hết thì không tô ô nào cả.
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ạiBạ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]
1. Thay các dấu chấm phẩy trong công thức bằng dấu phẩy.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
Tôi rối não với bạn rồi nha!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
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ú ạ.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))
Hichic.. em xin lỗi có lẽ em nên xem lại cách giải thích của mình.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!??????????
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.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ú ạ.
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: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.
Đú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.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.
Đây sếp màu em muốn là đây ạ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
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.Đú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
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 à.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.
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.
Nếu bạn muốn dùng code VBA thì bạn làm như sau: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.
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.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.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
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é.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.
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 .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é.
Rồi, tới giờ đòi bà Phương Hằng luôn rồi! Cái đó không khó đâu.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 .![]()
Đ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.Rồi, tới giờ đòi bà Phương Hằng luôn rồi! Cái đó không khó đâu.
Đó, bạn muốn xanh đỏ tím vàng gì tùy!Đ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.
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