Nếu được chèn thêm 1 dòng trống tại dòng 1 thì bài này đơn giản, chỉ cần sử dụng công thức sau cho E3 và fill xuống là được:Bài toán của em là làm sao chỉ những dòng bôi vàng thì cột E mới được tự động điền bằng cột C x cột D. Xin sự trợ giúp của mọi người.
![]()
=IF(OR(A1="TT",A2="TT"),C3*D3,"")




Nếu được chèn thêm 1 dòng trống tại dòng 1 thì bài này đơn giản, chỉ cần sử dụng công thức sau cho E3 và fill xuống là được:
Mã:=IF(OR(A1="TT",A2="TT"),C3*D3,"")
Ủa, trong bài #2 tôi nói rõ rồi mà: Chèn thêm 1 dòng trống tại hàng 1 rồi sử dụng công thức (...) cho E3 và fill xuống. Có gì khó hiểu ở câu này nhỉ? Còn với cách dùng Advanced Filter thì tôi cũng chưa nghĩ ra.Anh có thể nói rõ hơn được không? Em cũng đang đoán bài này có thể dùng Advanced Filter gì đó nhưng chi tiết các bước thì chưa nghĩ ra.




Ủa, trong bài #2 tôi nói rõ rồi mà: Chèn thêm 1 dòng trống tại hàng 1 rồi sử dụng công thức (...) cho E3 và fill xuống. Có gì khó hiểu ở câu này nhỉ? Còn với cách dùng Advanced Filter thì tôi cũng chưa nghĩ ra.
Cái này là do lỗi của em đưa đầu bài chưa nói rõ hết ý, bởi file thật cần xử lý của em thì các ô tại cột E thuộc các dòng khác dòng bôi vàng đã có công thức rồi (không phải là để trống), mục đích của em là nếu các ô cột E không thuộc các dòng bôi vàng thì phải giữ nguyên hiện trạng (khi fill công thức qua nó bị biến thành trắng). Rất mong anh chỉ dùm cách làm
Bài toán của em là làm sao chỉ những dòng bôi vàng thì cột E mới được tự động điền bằng cột C x cột D. Xin sự trợ giúp của mọi người.
![]()
E2=IF(COUNTIF(A$1:A1,"tt"),IF(ROW()-LOOKUP(2,1/(A$1:A1="tt"),ROW(A$1:A1))<3,C2*D2,""),"")




Vậy thì dùng AutoFilter theo màu đi (nếu bạn dùng Excel từ 2007 trở đi)
Filter theo màu vàng xong rồi gõ công thức
Thưa thày, em bôi màu do em tự bôi thủ công 2 dòng mẫu gửi lên diễn đàn để dễ hình dung thôi, vấn đề khó nhất nằm ở vấn đề làm thế nào để bôi màu ah?.
Phải ĐỌC KỸ YÊU CẦU của người ta chứ bạn!Mã:E2=IF(COUNTIF(A$1:A1,"tt"),IF(ROW()-LOOKUP(2,1/(A$1:A1="tt"),ROW(A$1:A1))<3,C2*D2,""),"")
Conditional Formatting để tô màu bằng công thức như bài #2 của nghiaphuc.Thưa thày, em bôi màu do em tự bôi thủ công 2 dòng mẫu gửi lên diễn đàn để dễ hình dung thôi, vấn đề khó nhất nằm ở vấn đề làm thế nào để bôi màu ah?.




Vậy thì dùng cách khác: Bạn cứ áp dụng cách ở bài 2 nhưng thay vì gõ công thức vào cột E, bạn hãy gõ công thức vào cột F nhé (tạm xem là cột phụ)
Tiếp theo ta AutoFilter cột F theo điều kiện None Blanks. Giờ thì cột E bạn muốn làm gì chả được
----------------------
Phải ĐỌC KỸ YÊU CẦU của người ta chứ bạn!
Nếu có thể được em xin mạn phép nhờ mọi người giúp em 1 giải pháp về VBA (để em vừa có thêm giải pháp, vừa ôn lại ah).
Sub Test()
Dim rng As Range
On Error Resume Next
Set rng = Sheet1.Range(Sheet1.[D2], Sheet1.[D60000].End(xlUp)).Offset(, 1).SpecialCells(4)
If Not rng Is Nothing Then rng.Value = "=RC[-2]*RC[-1]"
End Sub
Cái này là do lỗi của em đưa đầu bài chưa nói rõ hết ý, bởi file thật cần xử lý của em thì các ô tại cột E thuộc các dòng khác dòng bôi vàng đã có công thức rồi (không phải là để trống), mục đích của em là nếu các ô cột E không thuộc các dòng bôi vàng thì phải giữ nguyên hiện trạng (khi fill công thức qua nó bị biến thành trắng). Rất mong anh chỉ dùm cách làm
Public Sub GPE()
Dim rng As Range, Cll As Range
Set rng = Range([A2], [A65536].End(xlUp))
For Each Cll In rng
If UCase(Cll) = "TT" Then
Cll.Offset(1, 4).Resize(2) = "=RC[-2]*RC[-1]"
Cll.Offset(1).Resize(2, 5).Interior.ColorIndex = 6 '"Không muốn tô màu thì xoá dòng này"'
End If
Next Cll
Set rng = Nothing
End Sub




Code ngắn gọn thôi:
Chưa biết dữ liệu thật thế nào nên làm đại (có thể sai)Mã:Sub Test() Dim rng As Range On Error Resume Next Set rng = Sheet1.Range(Sheet1.[D2], Sheet1.[D60000].End(xlUp)).Offset(, 1).SpecialCells(4) If Not rng Is Nothing Then rng.Value = "=RC[-2]*RC[-1]" End Sub
Ý em là chỉ công việc nào có mã công việc (ở cột A) là TT thì 2 dòng tiếp theo [2 dòng được minh họa bằng bôi màu vàng] mới bị tác động bởi Code thôi.
Em xin minh họa như sau ở ví dụ trên, sau khi chạy Code thì nó chỉ tính lại các ô E6, E7, E16, E17. Các ô E3, E4, E5...trước như thế nào nay vẫn vậy không bị Code tác động đến.
Sub diencongthuc()
Set c = ActiveSheet.Cells.Find("TT", lookat:=xlWhole)
If Not c Is Nothing Then
fa = c.Address
Do
For i = 1 To 2
c.Offset(i, 4).Formula = "=" & c.Offset(i, 2).Address & "*" & c.Offset(i, 3).Address
c.Offset(i).EntireRow.Interior.ColorIndex = 6
Next
Set c = ActiveSheet.Cells.FindNext(c)
Loop While c.Address <> fa
End If
End Sub