Công thức chỉ đếm các ô hiển thị bao gồm chữ và số (1 người xem)

Liên hệ QC

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

letienmai

Thành viên hoạt động
Tham gia
16/7/14
Bài viết
146
Được thích
45
Kính gửi: các anh/chị
Em có một bài toán cần đếm các ô đang hiển thị bao gồm cả định dạng text và number nhưng khi đếm thì excel nó đếm luôn ô đang chứa công thức. Em đã tìm trong diễn đàn mà không có bài tương tự nên Nhờ các anh/chị có kinh nghiệm xem hướng dẫn giúp em có cách nào để " không đếm " các ô đang chứa công thức có giá trị đang rỗng.
Trong file em có ghi cụ thể,.
Cám ơn anh/chị đã xem và giúp đỡ.
Trân trọng !
 

File đính kèm

Tham khảo 1 cách không phải là hàm:
PHP:
Sub Dem_khong_Rong()
    Dim k&
    k = WorksheetFunction.CountA(Range("B2:B8").SpecialCells(xlCellTypeConstants, 3))
    MsgBox k
End Sub
 
Kính gửi: các anh/chị
Em có một bài toán cần đếm các ô đang hiển thị bao gồm cả định dạng text và number nhưng khi đếm thì excel nó đếm luôn ô đang chứa công thức. Em đã tìm trong diễn đàn mà không có bài tương tự nên Nhờ các anh/chị có kinh nghiệm xem hướng dẫn giúp em có cách nào để " không đếm " các ô đang chứa công thức có giá trị đang rỗng.
Trong file em có ghi cụ thể,.
Cám ơn anh/chị đã xem và giúp đỡ.
Trân trọng !
Nếu có công thức thì không đếm, bất kể rỗng hay không thì dùng cái này
=SUMPRODUCT(NOT(ISFORMULA(B2:B8))*1)
 
Mình cám ơn bạn nhiều nhé, chúc bạn và gia đình nhiều sức khỏe.
Trân trọng !
Bài đã được tự động gộp:

Tham khảo 1 cách không phải là hàm:
PHP:
Sub Dem_khong_Rong()
    Dim k&
    k = WorksheetFunction.CountA(Range("B2:B8").SpecialCells(xlCellTypeConstants, 3))
    MsgBox k
End Sub
Mình cám ơn bạn nhiều nhé, đây là đoạn code mình thật sự mong muốn.
Chúc bạn và gia đình nhiều sức khỏe.
Trân trọng !
Bài đã được tự động gộp:

Nếu có công thức thì không đếm, bất kể rỗng hay không thì dùng cái này
=SUMPRODUCT(NOT(ISFORMULA(B2:B8))*1)
Mình cám ơn bạn nhiều nhé, chúc bạn và gia đình nhiều sức khỏe.
Trân trọng !
 
Tham khảo 1 cách không phải là hàm:
PHP:
Sub Dem_khong_Rong()
    Dim k&
    k = WorksheetFunction.CountA(Range("B2:B8").SpecialCells(xlCellTypeConstants, 3))
    MsgBox k
End Sub
Bạn ơi mình bị gặp lỗi khi các ô trong vùng không có dữ liệu, làm sao khi các ô không có dữ liệu thì hàm counta trả về 0 vậy bạn?
Cụ thể mình muốn ẩn các cột khi không có giá trị chữ hoặc số trong vùng bôi màu xanh, trong đó thì có công thức. Tuy nhiên nó bị báo lỗi khi không có giá trị
Mình gửi file đính kèm mong sự hướng dẫn giúp đỡ.
Cám ơn bạn.
 

File đính kèm

Lần chỉnh sửa cuối:
Bạn ơi mình bị gặp lỗi khi các ô trong vùng không có dữ liệu, làm sao khi các ô không có dữ liệu thì hàm counta trả về 0 vậy bạn?
Cụ thể mình muốn ẩn các cột khi không có giá trị chữ hoặc số trong vùng bôi màu xanh, trong đó thì có công thức. Tuy nhiên nó bị báo lỗi khi không có giá trị
Mình gửi file đính kèm mong sự hướng dẫn giúp đỡ.
Cám ơn bạn.
Mình chỉ sửa code của bạn thôi nhé. Mọi vấn đề khác nếu có sai xót thì bạn xem lại chính code của mình.
Mã:
Option Explicit
Sub ancot()
  On Error Resume Next
  Dim i As Long, lr As Long, c As Long
  Application.ScreenUpdating = False
    With Sheet1
      lr = .Range("A" & Rows.Count).Row
      For i = 12 To 28
            If vCountA(.Range(Cells(12, i), Cells(lr, i))) = 0 Then
              .Columns(i).EntireColumn.Hidden = True
            Else
             .Columns(i).EntireColumn.Hidden = False
            End If
      Next i
        If Application.WorksheetFunction.Count(.Range("AP12:AP" & lr)) = 0 Then
          .Columns(42).EntireColumn.Hidden = True
        Else
         .Columns(42).EntireColumn.Hidden = False
        End If
    End With
  Application.ScreenUpdating = True
End Sub
Sub boan()
  Sheet1.UsedRange.EntireColumn.Hidden = False
End Sub


Public Function vCountA(Rng As Range)
On Error GoTo Loi
    vCountA = Application.WorksheetFunction.CountA(Rng.SpecialCells(xlCellTypeConstants, 3))
    Exit Function
Loi:
    vCountA = 0
End Function
 
Mình chỉ sửa code của bạn thôi nhé. Mọi vấn đề khác nếu có sai xót thì bạn xem lại chính code của mình.
Mã:
Option Explicit
Sub ancot()
  On Error Resume Next
  Dim i As Long, lr As Long, c As Long
  Application.ScreenUpdating = False
    With Sheet1
      lr = .Range("A" & Rows.Count).Row
      For i = 12 To 28
            If vCountA(.Range(Cells(12, i), Cells(lr, i))) = 0 Then
              .Columns(i).EntireColumn.Hidden = True
            Else
             .Columns(i).EntireColumn.Hidden = False
            End If
      Next i
        If Application.WorksheetFunction.Count(.Range("AP12:AP" & lr)) = 0 Then
          .Columns(42).EntireColumn.Hidden = True
        Else
         .Columns(42).EntireColumn.Hidden = False
        End If
    End With
  Application.ScreenUpdating = True
End Sub
Sub boan()
  Sheet1.UsedRange.EntireColumn.Hidden = False
End Sub


Public Function vCountA(Rng As Range)
On Error GoTo Loi
    vCountA = Application.WorksheetFunction.CountA(Rng.SpecialCells(xlCellTypeConstants, 3))
    Exit Function
Loi:
    vCountA = 0
End Function
Code chạy tốt rồi, em cám ơn anh nhiều nha.
Chúc anh và gia đình nhiều sức khỏe.
 
Web KT

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

Back
Top Bottom