Tìm ký tự trong các ô

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

sonn123

Thành viên mới
Tham gia
7/10/09
Bài viết
6
Được thích
0
Em có bài toán sau, mong các bác chỉ giúp( file đính kèm)
Tìm 2 số đầu trong các ô, phân ra ba loại bắt đầu với 21, 22 và 29. Tính tổng số lần xuất hiện của chúng cho mỗi loại.Chỉ giới hạn ở 2 số đầu thôi. Mong các bác giúp em.
Cảm ơn nhiều.
 

File đính kèm

Upvote 0
em có bài toán sau, mong các bác chỉ giúp( file đính kèm)
tìm 2 số đầu trong các ô, phân ra ba loại bắt đầu với 21, 22 và 29. Tính tổng số lần xuất hiện của chúng cho mỗi loại.chỉ giới hạn ở 2 số đầu thôi. Mong các bác giúp em.
Cảm ơn nhiều.
Mã:
=countif($a$3:$a$81,"21*")
 
Upvote 0
Em có bài toán sau, mong các bác chỉ giúp( file đính kèm)
Tìm 2 số đầu trong các ô, phân ra ba loại bắt đầu với 21, 22 và 29. Tính tổng số lần xuất hiện của chúng cho mỗi loại.Chỉ giới hạn ở 2 số đầu thôi. Mong các bác giúp em.
Cảm ơn nhiều.
Bạn xem file đính kèm nhé.
 

File đính kèm

Upvote 0
Cám ơn các bác,
em muốn hỏi 1 câu nữa: nếu em muốn viết macro cho bài toán trên thì viết như thế nào ạ?
 
Upvote 0
Bạn có thể viết hàm như sau:

PHP:
Option Explicit
Function Dem(Tc As String, Rg As Range) As Long
     Dim cel As Range
             For Each cel In Rg.Cells
       If cel Like Tc & "*" Then Dem = Dem + 1
 Next
End Function

cú pháp =Dem(21,A3:A100)=29
 
Upvote 0
Viết thề này này:

PHP:
Option Explicit
Sub GPE_Dem()
 Dim Rng As Range, sRng As Range, Clls As Range
 Dim MyAdd As String, jJ As Byte, Tim As String, Dem As Integer

 Set Rng = Range([A2], [A65500].End(xlUp))
 For jJ = 1 To 3
   Tim = CStr(Choose(jJ, 21, 22, 29)):       Dem = 0
   Set sRng = Rng.Find(Tim, , xlFormulas, xlPart)
   If Not sRng Is Nothing Then
      MyAdd = sRng.Address
      Do
         If Left(sRng.Value, 2) = Tim Then
            Dem = Dem + 1:          sRng.Interior.ColorIndex = 34 + jJ * 2
         End If
         Set sRng = Rng.FindNext(sRng)
      Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
   End If
   With Cells(jJ, 3)
      .Value = Tim:                 .Offset(, 1) = Dem
      .Interior.ColorIndex = 34 + 2 * jJ
   End With
 Next jJ
End Sub
Chúc vui!
 
Upvote 0
Thêm cho bạn 1 cách dùng Inputbox, khỏi dùng vòng lặp.

Mã:
Sub Dem()
Dim Rng As Range
Dim Dem
Dim so
On Error Resume Next
    Set Rng = Application.InputBox( _
             "Vui long quet chon vung can dem ", "Chon vung", Type:=8)
    so = InputBox("Vui long nhap dieu kien dem" & vbNewLine & _
                   "VD: 21 hoac 22 hoac 29 ....")
  Dem = WorksheetFunction.CountIf(Rng, so & "*")
 
  MsgBox "Co " & Dem & " so " & so
  Sheet1.Range("B1").Value = Dem
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom