Cần giúp sửa lại hàm đếm số ô cùng màu không tự cập nhật được hoặc hàm tự tạo chỉ ra vị trí các ô cùng màu với ô điều kiện

  • Thread starter Thread starter hktanh
  • Ngày gửi Ngày gửi
Liên hệ QC

hktanh

Thành viên bị đình chỉ hoạt động
Thành viên bị đình chỉ hoạt động
Tham gia
22/8/19
Bài viết
112
Được thích
8
Giới tính
Nam
Update :")) Không biết là mong muốn 2 của mình nếu không được chắc mình sẽ dùng tạm Ctrl F rồi tìm kiếm theo định dạng vậy nhé, mong các bạn giúp mình cái tự động cập nhật màu của hàm đếm số ô cùng màu ý, mình cảm ơn nhé
Chào các bạn. Vì nhu cầu công việc cần sử dụng Conditional Formatting để bắt lỗi thì mình đã lên mạng tìm được một hàm tự tạo có khả năng đếm được số ô cùng màu. Tuy nhiên sau khi sử dụng mình thấy hàm này không tự động cập nhật được, ví dụ nếu mình lấy một ô làm điều kiện màu, vùng đếm màu của mình có 5 ô trong đó có 2 ô cùng màu với ô điều kiện thì kết quả trả về 2 là đúng, tuy nhiên khi mình thay đổi màu của một vài ô còn lại trong vùng đếm để giống với ô màu điều kiện thì kết quả của hàm đếm ô cùng màu vẫn không hề tăng thêm mà vẫn giữ nguyên, tức là không tự cập nhật được khi sửa lại màu. Các bạn giúp mình với nhé

* Mong muốn 2: Vì bảng dữ liệu của mình rất lớn, có vài chục nghìn dòng nên khi có ô nào đó được tô màu thì có thể mình vẫn không biết được nó ở đâu, vậy mình xin các bạn giúp đỡ một hàm tự tạo có khả năng trả về địa chỉ ô của các ô cùng màu, chẳng hạn nếu ô A5 , A6 , A7 có cùng màu với ô làm điều kiện thì kết quả trả về sẽ là A5 , A6 , A7 nhé, mình cảm ơn
 

File đính kèm

Lần chỉnh sửa cuối:
Các bạn giúp mình hàm đếm số ô cùng màu theo điều kiện có thể tự động cập nhật khi thay đổi màu với nhé, mình cần cái đó lắm í :sweatdrop:
 
Upvote 0
Update :")) Không biết là mong muốn 2 của mình nếu không được chắc mình sẽ dùng tạm Ctrl F rồi tìm kiếm theo định dạng vậy nhé, mong các bạn giúp mình cái tự động cập nhật màu của hàm đếm số ô cùng màu ý, mình cảm ơn nhé
Chào các bạn. Vì nhu cầu công việc cần sử dụng Conditional Formatting để bắt lỗi thì mình đã lên mạng tìm được một hàm tự tạo có khả năng đếm được số ô cùng màu. Tuy nhiên sau khi sử dụng mình thấy hàm này không tự động cập nhật được, ví dụ nếu mình lấy một ô làm điều kiện màu, vùng đếm màu của mình có 5 ô trong đó có 2 ô cùng màu với ô điều kiện thì kết quả trả về 2 là đúng, tuy nhiên khi mình thay đổi màu của một vài ô còn lại trong vùng đếm để giống với ô màu điều kiện thì kết quả của hàm đếm ô cùng màu vẫn không hề tăng thêm mà vẫn giữ nguyên, tức là không tự cập nhật được khi sửa lại màu. Các bạn giúp mình với nhé

* Mong muốn 2: Vì bảng dữ liệu của mình rất lớn, có vài chục nghìn dòng nên khi có ô nào đó được tô màu thì có thể mình vẫn không biết được nó ở đâu, vậy mình xin các bạn giúp đỡ một hàm tự tạo có khả năng trả về địa chỉ ô của các ô cùng màu, chẳng hạn nếu ô A5 , A6 , A7 có cùng màu với ô làm điều kiện thì kết quả trả về sẽ là A5 , A6 , A7 nhé, mình cảm ơn
Mã:
Function CountColor(sRng As Range, ColorRng As Range, Optional bText As Boolean = False)
  Dim idColor&, k&, strRes$, iCel As Range
  Application.Volatile
  Application.Calculation = xlAutomatic
  idColor = ColorRng(1, 1).Interior.Color
  If bText = False Then
    For Each iCel In sRng
      If idColor = iCel.Interior.Color Then
        k = k + 1
      End If
    Next iCel
    CountColor = k
  Else
    For Each iCel In sRng
      If idColor = iCel.Interior.Color Then
        strRes = strRes & ", " & iCel.Address(0, 0)
      End If
    Next iCel
    CountColor = Mid(strRes, 3, Len(strRes) - 2)
  End If
End Function
Công thức
=CountColor(G5:G11,I5)
=CountColor(G5:G11,I5,1)
 
Upvote 0
Mã:
Function CountColor(sRng As Range, ColorRng As Range, Optional bText As Boolean = False)
  Dim idColor&, k&, strRes$, iCel As Range
  Application.Volatile
  Application.Calculation = xlAutomatic
  idColor = ColorRng(1, 1).Interior.Color
  If bText = False Then
    For Each iCel In sRng
      If idColor = iCel.Interior.Color Then
        k = k + 1
      End If
    Next iCel
    CountColor = k
  Else
    For Each iCel In sRng
      If idColor = iCel.Interior.Color Then
        strRes = strRes & ", " & iCel.Address(0, 0)
      End If
    Next iCel
    CountColor = Mid(strRes, 3, Len(strRes) - 2)
  End If
End Function
Công thức
=CountColor(G5:G11,I5)
=CountColor(G5:G11,I5,1)
Bạn ơi bạn giúp mình vấn đề này với, đó là hàm này không tính toán được các ô được tô màu bởi Conditional Formatting, bạn giúp mình đếm được các ô được tô màu kể cả ô được tô bởi conditional formatting nhé, hoặc nếu hay nhất là để một tham số nữa là 0 -> không tính conditional formatting hoặc 1 -> có tính conditional formatting nhé, mình cảm ơn
 

File đính kèm

Upvote 0
Bạn ơi bạn giúp mình vấn đề này với, đó là hàm này không tính toán được các ô được tô màu bởi Conditional Formatting, bạn giúp mình đếm được các ô được tô màu kể cả ô được tô bởi conditional formatting nhé, hoặc nếu hay nhất là để một tham số nữa là 0 -> không tính conditional formatting hoặc 1 -> có tính conditional formatting nhé, mình cảm ơn
Lấy thông số của format điều kiện không biết, phải xét cụ thể từng trường hợp điều kiện format trong ví dụ, ví dụ khác phải xét khác
Mã:
Function CountColor(sRng As Range, ColorRng As Range, Optional bText As Boolean = False, Optional bHasCD As Boolean = False)
  Dim idColor&, k&, strRes$, iCel As Range, bColor As Boolean
  Application.Volatile
  Application.Calculation = xlAutomatic
  idColor = ColorRng(1, 1).Interior.Color
  For Each iCel In sRng
    bColor = False
    If bHasCD Then
      If iCel.FormatConditions.Count Then
        If idColor = iCel.FormatConditions(1).Interior.Color Then
          If Len(iCel) Then bColor = True
        End If
      End If
    End If
    If bColor = False Then
      If idColor = iCel.Interior.Color Then bColor = True
    End If
    If bColor = True Then
      If bText = False Then
        k = k + 1
      Else
        strRes = strRes & ", " & iCel.Address(0, 0)
      End If
    End If
  Next iCel
  If bText = False Then
    CountColor = k
  Else
    CountColor = Mid(strRes, 3, Len(strRes) - 2)
  End If
End Function
=CountColor(I8:I19,I8)
=CountColor(I8:I19,I8,1)
=CountColor(I8:I19,I8,,1)
=CountColor(I8:I19,I8,1,1)
 
Upvote 0
Bạn ơi bạn giúp mình vấn đề này với, đó là hàm này không tính toán được các ô được tô màu bởi Conditional Formatting, bạn giúp mình đếm được các ô được tô màu kể cả ô được tô bởi conditional formatting nhé, hoặc nếu hay nhất là để một tham số nữa là 0 -> không tính conditional formatting hoặc 1 -> có tính conditional formatting nhé, mình cảm ơn

Đã là Conditional Formatting thì tức là có "điều kiện" cụ thể ====> lấy luôn điều kiện đó mà code, không nên dựa vào màu Cond.Formatting
 
Upvote 0
Lấy thông số của format điều kiện không biết, phải xét cụ thể từng trường hợp điều kiện format trong ví dụ, ví dụ khác phải xét khác
Mã:
Function CountColor(sRng As Range, ColorRng As Range, Optional bText As Boolean = False, Optional bHasCD As Boolean = False)
  Dim idColor&, k&, strRes$, iCel As Range, bColor As Boolean
  Application.Volatile
  Application.Calculation = xlAutomatic
  idColor = ColorRng(1, 1).Interior.Color
  For Each iCel In sRng
    bColor = False
    If bHasCD Then
      If iCel.FormatConditions.Count Then
        If idColor = iCel.FormatConditions(1).Interior.Color Then
          If Len(iCel) Then bColor = True
        End If
      End If
    End If
    If bColor = False Then
      If idColor = iCel.Interior.Color Then bColor = True
    End If
    If bColor = True Then
      If bText = False Then
        k = k + 1
      Else
        strRes = strRes & ", " & iCel.Address(0, 0)
      End If
    End If
  Next iCel
  If bText = False Then
    CountColor = k
  Else
    CountColor = Mid(strRes, 3, Len(strRes) - 2)
  End If
End Function
=CountColor(I8:I19,I8)
=CountColor(I8:I19,I8,1)
=CountColor(I8:I19,I8,,1)
=CountColor(I8:I19,I8,1,1)
ok bạn nhé, dù không được như mong muốn của mình nhưng hàm này mình thấy cũng hay đấy chứ mình cũng không biết làm thế nào để đếm được nếu cái condition đó đúng thì mới đếm, sai không đếm :sweatdrop:
Bài đã được tự động gộp:

Đã là Conditional Formatting thì tức là có "điều kiện" cụ thể ====> lấy luôn điều kiện đó mà code, không nên dựa vào màu Cond.Formatting
à ra là vậy à bạn :")) nói chung là không đếm được condition formatting :hi1:
 
Upvote 0
à ra là vậy à bạn :")) nói chung là không đếm được condition formatting :hi1:

Đếm được tất dựa vào dò tìm điều kiện công thức của conditional formatting
CELL.FormatConditions(1).Formula1

Nhưng làm như thế làm ngược, đã có điều kiện rồi lại đi tìm điều kiện màu nữa ... (không ai làm thế)
 
Upvote 0
Đếm được tất dựa vào dò tìm điều kiện công thức của conditional formatting
CELL.FormatConditions(1).Formula1

Nhưng làm như thế làm ngược, đã có điều kiện rồi lại đi tìm điều kiện màu nữa ... (không ai làm thế)
không phải như bạn nghĩ đâu nhé, ví dụ mình muốn tô màu những ô lỗi trong phạm vi khoảng 1 triệu ô chẳng hạn, thì nếu như có lỗi xuất hiện, lỗi đó sẽ được tô màu là hiển nhiên, còn cụ thể có bao nhiêu cái lỗi như vậy, lỗi ở đâu thì mình phải tiếp tục tìm
 
Upvote 0
không phải như bạn nghĩ đâu nhé, ví dụ mình muốn tô màu những ô lỗi trong phạm vi khoảng 1 triệu ô chẳng hạn, thì nếu như có lỗi xuất hiện, lỗi đó sẽ được tô màu là hiển nhiên, còn cụ thể có bao nhiêu cái lỗi như vậy, lỗi ở đâu thì mình phải tiếp tục tìm
Thì lấy điều kiện Lỗi đó ra đếm là xong
 
Upvote 0
Thì lấy điều kiện Lỗi đó ra đếm là xong
thực ra là mình kiểm soát xem có ô nào không chứa công thức không ý, chứ còn nếu đếm lỗi thì lại dễ quá :bye1: . Cái bảng đó của mình có khoảng trên 1 triệu ô chứa công thức và mình muốn kiểm soát việc là có lỡ ấn nhầm vào đâu đó làm mất công thức không, mặc dù mình đã protect sheet đó lại nhưng vẫn phải unprotect thường xuyên để sửa
 
Upvote 0
Cẩn thận nhé. Chỉ những người không biết cách tính điểm Ri-Ặc-Sân Xì-Co như tôi mới nên đùa với thớt.
Cứ ngồi đó mà đùa nhé. Rồi khi về nhớ xin đi nhờ anh đang cưỡi Mada tiền tỷ nhé. Anh đó cũng là người chỉ đi hỏi và gom code thôi. Nhưng năng nhặt chặt bị, vài hôm tậu Mada tiền tỷ đi lượn để cho bác ngồi đó xem rồi đùa nhé.
 
Upvote 0
Web KT

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

Back
Top Bottom