huuthang_bd
Chuyên gia GPE 

			
		Sếp bạn không làm được chưa chắc GPE không làm được.dữ liệu của mình phức tạp lắm.Sếp cũng ko làm j được nên....
Không có gì là không thể!
Sếp bạn không làm được chưa chắc GPE không làm được.dữ liệu của mình phức tạp lắm.Sếp cũng ko làm j được nên....
Xem file đính kèm nha.Mình muốn lọc những dữ liệu chỉ trùng giữa 2 cột 1 và 2.Ko tính những dữ liệu trùng nhau trong 1 cột.Mình đã thử lọc bỏ những dữ liệu trùng nhau trong cột 1 và 2,rồi lọc những dữ liệu trùng giữa 2 cột mà sao ko đc.
CÁc bạn chỉ giúp mình với!!!
Mình kém excel lắm.CÁc bạn chỉ giúp mình từng bc với.
Cám ơn lắm lắm!!!
Vậy thì bạn xem lại đi chứ sao nữa. Rõ ràng trên file bạn upload tôi làm được đây thôi. Nếu không được thì nén file gốc lại upload lên tôi làm cho.Hờ hờ,chả hiểu sao mình đánh code y hệt bạn mà nó lại ko ra
Option Explicit
Sub TimTrung()
  Dim Rng As Range, Clls As Range, sRng As Range
  Columns("A:A").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1
  Set Rng = Range([B1], [B1].End(xlDown))
  For Each Clls In Range([a1], [a1].End(xlDown))
    If Clls.Offset(1) <> Clls Then
      Set sRng = Rng.Find(Clls.Value, , xlFormulas, xlWhole)
      If Not sRng Is Nothing Then _
        [e65500].End(xlUp).Offset(1).Value = Clls.Value
    End If
  Next Clls
End Sub
	
, có chuyện thắc mắc muốn hỏi 
, pác nào rành Excel thì giúp mình nhé . Thanks a lot ^^! 





lọc giùm mình dữ liệu 2 cột C và D , xem có cột nào trùng thì viết ra 1 cột riêng giùm mình![]()
Chưa thật sự hiểu hết ý bạn;Hic ... thì dữ liệu 2 cột C và D đó , nhìn vào , cái nào trùng thì giúp em lọc ra 1 cột khác , đó gọi là "Tiếng Việt" đó bạn .
Mình viết Tiếng Việt chứ . . .
Bạn xem file này có phải ý của bạn muốn làm không nhé rồi tính tiếpMình mới vào 4rum lần đầu, có chuyện thắc mắc muốn hỏi
, pác nào rành Excel thì giúp mình nhé . Thanks a lot ^^!
Mình up file Excel lên , các pác lọc giùm mình dữ liệu 2 cột C và D , xem có cột nào trùng thì viết ra 1 cột riêng giùm mình![]()
Sub unique()
   Dim i As Long, K As Long
   Dim Vung1 As Range, Vung2 As Range, vung as range
   Set Vung1 = Sheets(1).Range("A2:A" & [A1000].End(xlUp).Row)
   Set Vung2 = Sheets(1).Range("B2:B" & [A1000].End(xlUp).Row)
   Vung = Union(Vung1, Vung2)
   
   For Each Cells In Vung
        If Cells <> "" Then
            K = K + 1
            
            If i = Application.WorksheetFunction.Match(Cells, Vung, 0) Then
                    i = i + 1
            End If
        
            If K = i Then Sheets(2).Range("B:" & K) = Cells: Exit For
            End If
        End If
   Next
  
End Sub
	Option Explicit
Sub Macro1()
 Dim eR As Long, lR As Long
 Dim Sh As Worksheet
 
   Application.ScreenUpdating = False:       Sheets("Data").Select
    Columns("A:B").Select:                   Selection.Insert Shift:=xlToRight
    eR = [C65500].End(xlUp).Row
 
    Range("B1:B" & eR - 1).Value = Range([c2], Cells(eR, "C")).Value
    lR = [d65500].End(xlUp).Row
    Range(Cells(eR, "B"), Cells(eR + lR - 2, "B")).Value = Range([d2], Cells(lR, "D")).Value
 
    Range("B1:B" & eR + lR).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=[a1], Unique:=True
    eR = [a65500].End(xlUp).Row
    Set Sh = Sheets("KetQua"):            Sh.Range(Sh.[a2], Sh.[a2].End(xlDown)).Clear
 
    Sh.Range(Sh.[a2], Sh.Cells(eR, "A")).Value = Range([a1], [a1].End(xlDown)).Value
    Columns("A:B").Delete
End Sub
	Bạn ChanhTQ ơi!Bạn tải file đính kèm của mình về rồi bạn gắn macro này test thử dùm mình với, nếu đúng như kết quả thì bạn up cho mình ha. Tại vì mình chạy macro này nó bị báo lỗi. cám ơn sự nhiệt tình của bạn rất nhiều.PHP:Option Explicit Sub Macro1() Dim eR As Long, lR As Long Dim Sh As Worksheet Application.ScreenUpdating = False: Sheets("Data").Select Columns("A:B").Select: Selection.Insert Shift:=xlToRight eR = [C65500].End(xlUp).Row Range("B1:B" & eR - 1).Value = Range([c2], Cells(eR, "C")).Value lR = [d65500].End(xlUp).Row Range(Cells(eR, "B"), Cells(eR + lR - 2, "B")).Value = Range([d2], Cells(lR, "D")).Value Range("B1:B" & eR + lR).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=[a1], Unique:=True eR = [a65500].End(xlUp).Row Set Sh = Sheets("KetQua"): Sh.Range(Sh.[a2], Sh.[a2].End(xlDown)).Clear Sh.Range(Sh.[a2], Sh.Cells(eR, "A")).Value = Range([a1], [a1].End(xlDown)).Value Columns("A:B").Delete End Sub
Đó là lỗi gì vậy, đừng bí mật nữa có được không?Bạn tải file đính kèm của mình , nếu macro cho đúng như kết quả thì bạn up cho mình ha. Tại vì mình chạy macro này nó bị báo lỗi.
 
 
 
 
Sai nhiều lắm bạn ơi!Thưa các AnhPHP:Sub unique() Dim i As Long, K As Long Dim Vung1 As Range, Vung2 As Range, vung as range Set Vung1 = Sheets(1).Range("A2:A" & [A1000].End(xlUp).Row) Set Vung2 = Sheets(1).Range("B2:B" & [A1000].End(xlUp).Row) Vung = Union(Vung1, Vung2) For Each Cells In Vung If Cells <> "" Then K = K + 1 If i = Application.WorksheetFunction.Match(Cells, Vung, 0) Then i = i + 1 End If If K = i Then Sheets(2).Range("B:" & K) = Cells: Exit For End If End If Next End Sub
Em thử nghịch một đoạn code nhưng không chạy được, vào tool/macro phần Run cứ bị mờ nên chẳng biết code trên sai hay đúng?
Chỉ dạy thêm cho em với
Cám ơn
Bạn thử dùng code của anh ndu96081631 thử xem sao nhéHiện mình có một bảng gồm nhiều danh mục khác nhau nằm ở nhiều sheet,những danh mục đó gồm nhiều dữ liệu trùng và không trùng mình muốn lấy một danh mục chung sang một sheet khác để tạo danh mục chung vào ko trùng.
Xin hãy hướng dẫn mình dùm hàm gì?
Sub Test()
  Sheet3.Range("A1:C1000").Clear
  With Sheet1.Range("A28").CurrentRegion.Offset(1)
    .Copy
    With Sheet2.Range("A1").CurrentRegion
      .Offset(.Rows.Count)(1, 1).PasteSpecial
      With Sheet2.Range("A1").CurrentRegion
        .AdvancedFilter 2, , Sheet3.Range("A1"), True
      End With
      With .Offset(.Rows.Count)
        Range(.Cells, .End(xlDown)).Clear
      End With
    End With
  End With
End Sub
	
Vì cột C không có 10 mà bác,các giá trị trùng là có cả ở cột B và C (cả giá trị và số lượng) hai cột A và D chỉ lấy theo C và D tương ứng thôi,cám ơn bác đã quan tâmBà con làng xóm xem đây: Trang tính đầu bài như vầy:
(Cớ sao dòng cuối không được đem sang trang 'Trùng'?)A|B|C|D|
1A|1|2|2b|=> Trùng
2A|2|4|4b|
3A|3|4|4b|
4A|4|6|6b|
5A|5|6|6b|
6A|6|7|7b|=> Trùng
7A|7|8|8b|=> Trùng
8A|8|10|10b| >> không đem
||||
Vì cột C không có 10 mà bác,các giá trị trùng là có cả ở cột B và C (cả giá trị và số lượng) hai cột A và D chỉ lấy theo C và D tương ứng thôi,cám ơn bác đã quan tâm
Còn lệch thì chưa hiểu thế nào hichic=AND(có xuất hiện ở 2 cột, có số lượng trên mỗi cột bằng nhau)
CẦN SO SÁNH GIỮA CỘT C VÀ CỘT D NẾU CÓ GIÁ TRỊ BẰNG NHAU (SỐ LƯỢNG CŨNG BẰNG NHAU) CHÌ CHUYỂN SANG SHEET TRÙNG NHAU
Xem cái lệch này có được không nhéTHANKS BÁC viendo nhiều nhiều nhé,bác giúp em được cái lệch nữa thì hay quá (em dốt văn thật)
Bạn dùng Advance filter rồi chọn lấy dữ liệu duy nhất, recorde lại macro đó mà dùng thôiHi mấy bác, mấy bác giúp em có hàm nào lọc ra dữ liệu mà ko bị trùng ko? Máy bác xem file đính kèm của em.


xem thử có đúng không?Bác domfootwear có cách nào khác ngoài Advance filter không. Có hàm nào làm được điều đó ko? Dùng hàm nhé bác.
Mình cũng biết là dùng Advance rồi chọn copy to another location và chọn unique ... Ở mục copy to chọn ô để parst dữ liệu đã copy ( ko trùng).
Vậy bạn tham khảo file đính kèm nhé.Bác domfootwear có cách nào khác ngoài Advance filter không. Có hàm nào làm được điều đó ko? Dùng hàm nhé bác.
Mình cũng biết là dùng Advance rồi chọn copy to another location và chọn unique ... Ở mục copy to chọn ô để parst dữ liệu đã copy ( ko trùng).
Hi mấy bác, mấy bác giúp em có hàm nào lọc ra dữ liệu mà ko bị trùng ko? Máy bác xem file đính kèm của em.






Chào cả nhà!
Trong file đính kèm tại sheet DATA, căn cứ vào cột bộ phận, cột chức danh, tôi dùng code lọc danh mục duy nhất sang sheet "Tổng hợp nguồn nhân lực" để tính toán tổng hợp số liệu, các chỉ tiêu (theo như bảng biểu trong sheet "Tổng hợp nguồn nhân lực".
Phát sinh vấn đề sai lỗi, mình tìm mãi chẳng ra, như thế này:
- Cột Bộ phận tại sheet DATA, nếu lọc ra danh mục duy nhất thì phải là 38 bộ phận. Không hiểu tại sao, code này chỉ lọc ra được 33 bộ phận (thiếu mất 5 bộ phận), nhưng khi ta gõ thêm những ký tự bất kỳ vào những dòng trống dưới cùng của cột bộ phận tại sheet DATA thì lúc này nó lại lọc đủ ra 38 bộ phận.
 - Tương tự trường hợp trên: Cột Chức danh tại sheet DATA, nếu lọc ra danh mục duy nhất thì phải là 19 chức danh. Không hiểu tại sao, code này chỉ lọc ra được 14 bộ phận (thiếu mất 5 chức danh)...
 
Nhờ các bác nghiên cứu, xem xét (file gửi kèm)!
Cảm ơn các bác nhiều!
Sub TaoBoPhan()
    Dim BoPhan As Range
    S01.Select
    On Error Resume Next
    S01.ShowAllData
    Range("HH3:HH1000").Clear
    eR = Range("D10000").End(xlUp).Row
    Set BoPhan = S01.Range("D3:D" & eR)
    With S01
        With BoPhan
            .AdvancedFilter Action:=xlFilterCopy, CopyToRange:=S01.Range( _
                "HH3"), Unique:=True
        End With
        .Names("Extract").Delete
        eR1 = .Range("HH1000").End(xlUp).Row
        S17.Range("A7:B55").ClearContents
        S17.Range("B7:B" & eR1 + 4).Value = .Range("HH3:HH" & eR1).Value
        S17.Range("A7:A" & eR1 + 4).FormulaR1C1 = "=ROW()-6"
        S17.Range("A7:A" & eR1 + 4).Value = S17.Range("A7:A" & eR1 + 4).Value
        .Range("HH3:HH" & eR1).Clear
    End With
    Set BoPhan = Nothing
End Sub
	

Bạn trừ mất 5 dòng thì hỏi làm sao ra 38 được? Sửa lại như sau :
PHP:Sub TaoBoPhan() Dim BoPhan As Range S01.Select On Error Resume Next S01.ShowAllData Range("HH3:HH1000").Clear eR = Range("D10000").End(xlUp).Row Set BoPhan = S01.Range("D3:D" & eR) With S01 With BoPhan .AdvancedFilter Action:=xlFilterCopy, CopyToRange:=S01.Range( _ "HH3"), Unique:=True End With .Names("Extract").Delete eR1 = .Range("HH1000").End(xlUp).Row S17.Range("A7:B55").ClearContents S17.Range("B7:B" & eR1 + 4).Value = .Range("HH3:HH" & eR1).Value S17.Range("A7:A" & eR1 + 4).FormulaR1C1 = "=ROW()-6" S17.Range("A7:A" & eR1 + 4).Value = S17.Range("A7:A" & eR1 + 4).Value .Range("HH3:HH" & eR1).Clear End With Set BoPhan = Nothing End Sub
Nói cho rõ thêm : Cột HH của S01 bạn tính từ hàng thứ 3, cột A và B của S17 bạn tính bắt đầu từ hàng thứ 7, vì thế phải lấy eR1+4 là vì thế
Thân


Cảnh báo:
- Bạn Tony Jaa dùng Advanced Filter như thế chưa đúng đâu nha
- Dử liệu cần lọc tại sheet Data, tính từ cell D3 trở xuống ---> Như vậy bạn đã bỏ mất tiêu đề
- Cũng may là trong cột này chỉ có duy nhất 1 Record mang tên "Ban Tổng giám đốc"... nếu không bạn sẽ nhận được 2 Record trùng nhau sau khi lọc ---> Vì Advanced Filter luôn luôn tính cell đầu tiên là TIÊU ĐỀ
Bạn cẩn thận nha ---> Không phải lần nào cũng may mắn như lần này đâu
Thì bạn chuyển sang lấy từ D2 thử là được. Bạn không nên đặt tên sheet tiếng Việt có dấuVậy phải sửa chỗ nào cho đúng tuyệt đối, bác chỉ cho em luôn đi?
Cảm ơn bác!
Đúng như bạn yeudoi nói ấy... khi xác định vùng dử liệu sẽ lọc bằng Advanced Filter, bạn phải lấy luôn tiêu đề (cụ thể với file của bạn phải lấy từ cell D2 trở xuống) ---> Sau khi lọc ra vùng phụ, bạn xóa tiêu đề đi rồi muốn làm gì tiếp tùy thíchVậy phải sửa chỗ nào cho đúng tuyệt đối, bác chỉ cho em luôn đi?
Cảm ơn bác!




Cảnh báo:
- Bạn Tony Jaa dùng Advanced Filter như thế chưa đúng đâu nha
- Dử liệu cần lọc tại sheet Data, tính từ cell D3 trở xuống ---> Như vậy bạn đã bỏ mất tiêu đề
- Cũng may là trong cột này chỉ có duy nhất 1 Record mang tên "Ban Tổng giám đốc"... nếu không bạn sẽ nhận được 2 Record trùng nhau sau khi lọc ---> Vì Advanced Filter luôn luôn tính cell đầu tiên là TIÊU ĐỀ
Bạn cẩn thận nha ---> Không phải lần nào cũng may mắn như lần này đâu
Vậy bạn tham khảo file đính kèm nhé.
Thân
H4=COUNTIF(Data!$B$1:$B$21,kq!G4)
Cám ơn anh đã coa một lời giải rất hay, nhưng nếu đặt trong vấn đề của tôi, thì nó đã giải quyết được 50% rồi, tức là anh đã tạo một cột mới, có các giá trị không trùng.
Tiếp theo, tôi muốn nhờ anh tao ra một cột nữa tương ứng mà nội dung là số lần một đối tượng trùng lặp như file tôi đính kèm.
Xin cám ơn!
Tại bạn làm chưa quen nên mới bị thế, chứ đây là cách nhanh nhất trong các cách đấy ---> Quy trình như sau:Em đã làm cách của bác nhưng nó copy y nguyên sang chứ không lọc các số trùng nhau được
Thứ nhất: Bài của bạn phạm quy vì chen ngang vô topic có chủ đề hoàn toàn khác. (Sao bạn không qua BOX 'Giáo dục' hỏi vấn đề của bạn; Ở đó đề cập rất nhiều về thời khóa biểu)Giúp Tôi Lọc thời khóa biểu của các giáo viên! để kê khai giờ giảng dạy trong tuần! Tôi sắp chết vì nó rồi không cách nào làm được. Xin cao chỉ giáo!
Giúp tôi lọc dữ liệu là thời khóa biểu của các giáo viên! đê kê khai giờ giảng trong tuần! tôi sắp vỡ đầu vì nó rồi
làm ơn chỉ giáo!![]()
Giúp tôi lọc dữ liệu là thời khóa biểu của các giáo viên! đê kê khai giờ giảng trong tuần! tôi sắp vỡ đầu vì nó rồi
làm ơn chỉ giáo!![]()
Option Explicit:           Option Base 1
Sub AutoFilter()
 Dim Rng As Range, Clls As Range, sRng As Range, dRng As Range
 Dim MyAdd As String, Lop As String
 Dim Dong As Long
 Dim VTr As Byte, Tiet As Byte, Cot As Byte
 
 Set Rng = Selection:            Set dRng = Rng.Cells(1, 1)
 Dong = dRng.Row:                Cot = dRng.Column
 ReDim MDL(Dong To Dong + Rng.Rows.Count, Cot To Cot + Columns.Count) As Boolean
 Set dRng = Rng.Cells(1, 1).Offset(, 8)
 With dRng
   .Resize(2, 30).ClearContents
   .Value = "Lop":            .Offset(1).Value = "So Tiet"
 End With
 
 For Each Clls In Rng
   If MDL(Clls.Row, Clls.Column) = False Then
      VTr = InStr(Clls.Value, "(")
      If VTr > 0 Then Lop = Left(Clls.Value, VTr - 1)
      Set sRng = Rng.Find(Lop, , xlFormulas, xlPart)
      If Not sRng Is Nothing Then
         Tiet = 0
         If MDL(sRng.Row, sRng.Column) = False Then
            MyAdd = sRng.Address
            Do
               Tiet = Tiet + 1
               MDL(sRng.Row, sRng.Column) = True
               Set sRng = Rng.FindNext(sRng)
            Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
         End If
         If Tiet > 0 Then
            With Cells(dRng.Row, "IV").End(xlToLeft).Offset(, 1)
               .Value = Lop:           .Offset(1).Value = Tiet
            End With
         End If
      End If
   End If
 Next Clls
End Sub
	Thêm cách dùng hàm countif()Giúp tôi lọc dữ liệu là thời khóa biểu của các giáo viên! đê kê khai giờ giảng trong tuần! tôi sắp vỡ đầu vì nó rồi
làm ơn chỉ giáo!![]()
Tại cell K7 bạn gõ vào công thức này xem:Giúp tôi lọc dữ liệu là thời khóa biểu của các giáo viên! đê kê khai giờ giảng trong tuần! tôi sắp vỡ đầu vì nó rồi
làm ơn chỉ giáo!![]()
=COUNTIF($B$6:$G$11,K$6&"*")*2
	

, en cam on nhiều







Bác chuyên Macro thanh Ham tự định nghĩa giúp em chứ. Bac Thuong thi thuong cho chot, en cam on nhiều
̣
Option Explicit:           Option Base 1
Function TKTietHoc(LookUpRange As Range)
 Dim Clls As Range:                             ReDim KQua(2, 6)
 Dim SoLop As Byte, VTr As Byte, STt As Byte, vT2 As Byte
 Dim Lop As String, SLop As String
 
 KQua(1, 1) = "Lop":                            KQua(2, 1) = "So Tiet"
 SLop = "GPE"
 For Each Clls In LookUpRange
   If Clls.Value <> "" Then
      VTr = InStr(Clls.Value, "(")
      Lop = IIf(VTr > 0, Left(Clls.Value, VTr - 1), Clls.Value)
      If InStr(SLop, Lop) < 3 Then _
         SLop = SLop & Left(Lop & " ", 4)
      vT2 = InStr(SLop, Lop)
      STt = Switch(vT2 = 4, 2, vT2 = 8, 3, vT2 = 12, 4, vT2 = 16, 5, vT2 = 20, 6)
      
      If STt > 1 Then
         KQua(1, STt) = Lop
         KQua(2, STt) = 1 + KQua(2, STt)
      End If
   End If
 Next Clls
 TKTietHoc = KQua
End Function
	- Quét chọn cột dử liệuTôi có một cột chứa danh sách mail (hàng chục nghìn mail, mỗi dòng là một địa chỉ mail), có quá nhiều mail giống nhau, bây giờ tôi muốn xóa các dòng có chứa những mail giống nhau đó đi
Làm ơn chỉ giùm tôi với !
Thanks !




Option Explicit
Sub GPE_Macro()
 Dim StrC As String, eRs As Long, Dem As Byte
 Dim Clls As Range
 
 eRs = [A65500].End(xlUp).Row
 Columns("A:E").Insert Shift:=xlToRight
 Range("G1:I" & eRs).Sort Key1:=[H2], Order1:=xlDescending, Header:=xlGuess
 [A1].Resize(, 2).Value = [f1].Resize(, 2).Value:        [c1].Value = [I1].Value
 [A1].Resize(, 3).Font.Bold = True
 For Each Clls In [H2].Resize(eRs - 1)
   If StrC <> Clls.Value Then
      StrC = Clls.Value:                                 Dem = 1
      With [b65500].End(xlUp).Offset(1)
         .Value = Clls.Value:                            .Font.Bold = True
         
         .Offset(1, 1) = Clls.Offset(, 1).Value
         .Offset(1).Value = Clls.Offset(, -1).Value:     .Offset(1, -1) = Dem
      End With
   Else
      Dem = Dem + 1
      With [b65500].End(xlUp).Offset(1)
         .Offset(, 1) = Clls.Offset(, 1).Value
         .Value = Clls.Offset(, -1).Value:               .Offset(, -1) = Dem
      End With
   End If
 Next Clls
End Sub
	



Option Explicit
Sub GPE_Macro()
 Dim StrC As String, eRs As Long, Dem As Byte
 Dim Clls As Range, Sh As Worksheet '<='
 
 Sheet2.Select:                                    eRs = [A65500].End(xlUp).Row
 Range("b1:d" & eRs).Sort Key1:=[c2], Order1:=xlDescending, Header:=xlGuess
 Set Sh = Sheet1
 
 Sh.[A1].Resize(, 2).Value = [A1].Resize(, 2).Value:     Sh.[c1].Value = [D1].Value
 Sh.[A1].Resize(, 3).Font.Bold = True
 For Each Clls In [c2].Resize(eRs - 1)
   If StrC <> Clls.Value Then
      StrC = Clls.Value:                                 Dem = 1
      With Sh.[b65500].End(xlUp).Offset(1)
         .Value = Clls.Value:                            .Font.Bold = True
         
         .Offset(1, 1) = Clls.Offset(, 1).Value
         .Offset(1).Value = Clls.Offset(, -1).Value:     .Offset(1, -1) = Dem
      End With
   Else
      Dem = Dem + 1
      With Sh.[b65500].End(xlUp).Offset(1)
         .Offset(, 1) = Clls.Offset(, 1).Value
         .Value = Clls.Offset(, -1).Value:               .Offset(, -1) = Dem
      End With
   End If
 Next Clls
End Sub
	



Nếu trùng mà không cùng nằm 1 dòng thì có cách nào lấy ra được không?Bạn xem file này có phải ý của bạn muốn làm không nhé rồi tính tiếp
Cho mình hỏi thêm là chuổi trên là trong cùng 1 cột hay là gồm có 3 cột khác nhauEm có 1 cái danh sách khoảng 300 dòng, cấu trúc như sau:
Họ và tên / loại tài liệu mượn
1- Nguyễn Văn A / Sách 1
2- Trần Văn B / Sách 2
3- Nguyễn Văn C / Sách 3
4. Nguyễn Văn A / Sách 4
5- Trần Văn B / Sách 10
6- Nguyễn Văn C / Sách 11
.............
Nghĩa là 1 người có thể mượn nhiều loại sách
Bây giờ em muốn thống kê xem có bao nhiêu người mượn sách
Các bác giúp em cái nhé


Em có 1 cái danh sách khoảng 300 dòng, cấu trúc như sau:
Họ và tên / loại tài liệu mượn
1- Nguyễn Văn A / Sách 1
2- Trần Văn B / Sách 2
3- Nguyễn Văn C / Sách 3
4. Nguyễn Văn A / Sách 4
5- Trần Văn B / Sách 10
6- Nguyễn Văn C / Sách 11
.............
Nghĩa là 1 người có thể mượn nhiều loại sách
Bây giờ em muốn thống kê xem có bao nhiêu người mượn sách
Các bác giúp em cái nhé
=SUMPRODUCT(1/COUNTIF(A2:A300,A2:A300))
	


Bạn đưa ra bài ý tưởng của Bạn đi, Mình không hiểu ý bạn nói bài nào?Nếu trùng mà không cùng nằm 1 dòng thì có cách nào lấy ra được không?



Em có 1 cái danh sách khoảng 300 dòng, cấu trúc như sau:
Họ và tên / loại tài liệu mượn
1- Nguyễn Văn A / Sách 1
2- Trần Văn B / Sách 2
3- Nguyễn Văn C / Sách 3
4. Nguyễn Văn A / Sách 4
5- Trần Văn B / Sách 10
6- Nguyễn Văn C / Sách 11
.............
Nghĩa là 1 người có thể mượn nhiều loại sách
Bây giờ em muốn thống kê xem có bao nhiêu người mượn sách
Các bác giúp em cái nhé
Mình gửi file kèm, bạn giúp mình nhéBạn đưa ra bài ý tưởng của Bạn đi, Mình không hiểu ý bạn nói bài nào?


Tôi có bảng dữ liệu. Cần lọc sao cho chỉ xuất hiện dữ liệu một lần ở cột "kết quả trả về"



Mình nhận được câu hỏi này từ bạn duyennt 6888 :
Nhờ mọi người xem giúp bạn ấy.


Sub UniqueFilter()
    Dim Cll As Range, i As Long, Ar()
    With CreateObject("Scripting.Dictionary")
        For Each Cll In Selection
            If .Exists(Cll.Value) = False And Cll <> "" _
            Then .Add Cll.Value, 1
        Next Cll
        Ar = .Keys
        For i = 0 To .Count - 1
            [F:F].Cells(i + 2) = Ar(i)
        Next i
    End With
    Range("F2", [F65000].End(xlUp)).Sort [F1], xlAscending
End Sub
	Cái Function của bạn nhìn nó... kỳ kỳ thế nào ấyBạn xem file đính kèm
Function UniqueList(Rng As Range)
  Dim Clls As Range
  On Error Resume Next
  With CreateObject("Scripting.Dictionary")
    For Each Clls In Rng
      .Add Clls.Value, ""
    Next
    UniqueList = .Keys
  End With
End Function
	Sub GetUnique()
  Dim Src As Range, Des As Range
  Set Src = Application.InputBox("Chon vung du lieu", Type:=8)
  Set Des = Application.InputBox("Chon 1 cell de xuat du lieu", Type:=8)
  With Des.Resize(UBound(UniqueList(Src)) + 1)
    .Value = WorksheetFunction.Transpose(UniqueList(Src))
    .Sort .Cells(1, 1), 1, Header:=xlNo
  End With
End Sub
	Bạn dùng Dictionary Object là đúng rồi.. có điều, đã ra được đến .Keys thì tại sao lại phải For tiếp nữa nhỉ? ---> 2 vòng lập à?Thêm 1 cách khác, bạn xem File, nhớ Enable Macro --> Chọn vùng dữ liệu (không chọn dòng tiêu đề) --> Nhấn nút.
PHP:Sub UniqueFilter() Dim Cll As Range, i As Long, Ar() With CreateObject("Scripting.Dictionary") For Each Cll In Selection If .Exists(Cll.Value) = False And Cll <> "" _ Then .Add Cll.Value, 1 Next Cll Ar = .Keys For i = 0 To .Count - 1 [F:F].Cells(i + 2) = Ar(i) Next i End With Range("F2", [F65000].End(xlUp)).Sort [F1], xlAscending End Sub
Ar = .Keys
 For i = 0 To .Count - 1
   [F:F].Cells(i + 2) = Ar(i)
 Next i
	Range("...gì gì đó...").Resize(....).Value = WorksheetFunction.Transpose(.Keys)
	Sub UniqueFilter()
  Dim Cll As Range, i As Long, Ar()
  On Error Resume Next
  With CreateObject("Scripting.Dictionary")
    For Each Cll In Selection
      If Not .Exists(Cll.Value) And Cll <> "" Then
        .Add Cll.Value, ""
        [F65000].End(xlUp)(2) = Cll.Value
      End If
    Next Cll
  End With
  Range("F2", [F65000].End(xlUp)).Sort [F1], xlAscending
End Sub
	
Tại cell B4 bạn gõ công thức này vào nhé:Chào tất cả mọi người.
Tôi có vấn đề về việc sắp xếp ký tự như sau mà không biết làm thế nào.
Rất mong được mọi người giúp.
Trên một ô Excel có các ký tự A,B,C,D...nhưng bị xuống dòng bởi tổ hợp phím "Alt+Enter".
Tôi muốn sắp xếp lại thành một dòng như sau:
(có rất nhiều cell tương tự thế này)
Trướ Sau
A,B,C,D
E,F,G,H
K,L,MA,B,C,D,E,F,G,H,K,L,M
Cảm ơn mọi người !
=SUBSTITUTE(A4,CHAR(10),",")
	Em nhìn kết quả và đoán thế này:Rất mong các anh em trên GPE xem và hướng dẫn giúp trong điều kiện so sánh 1 số với dãy số trong trường hợp sau ( Được nêu cụ thể trong File đính kèm)
Xin được cám ơn trước.
Đính kèm File.
=IF(B5-G5+C5<=0,"",B5-G5+C5)
	=IF(D5+MIN(B5-G5+C5,0)>0,D5+MIN(B5-G5+C5,0),"")
	---Em nhìn kết quả và đoán thế này:
- Cell B6 có công thức:
- Cell C6 có công thức:PHP:=IF(B5-G5+C5<=0,"",B5-G5+C5)
Các cell phía dưới tương tự (copy dòng 6 paste xuống)PHP:=IF(D5+MIN(B5-G5+C5,0)>0,D5+MIN(B5-G5+C5,0),"")

---Tôi không rõ việc chuyển số dư thế nào, nhưng theo mô tả tại ô K5 (từ file mới nhất):
x1=7 Nếu G5<B5
thì nhận kết quả B5=18(10-7+15), C5=20
Xin chỉ rõ: x1 = 7 là kết quả cần tìm có phải không? Nếu vậy thì có phải sửa B5 thành 18(10 - 7 + 15) tức là 18 bình phương (hay chỉ 18), và C5 được sửa thành 20
Hay x1 = 7 là đã có (tức là ô G5 đã có) thì sửa lại B5.
Nói chung tôi cảm thấy cần mô tả rõ hơn. nếu không, tính toán sẽ bị luẩn quẩn (lấy G5 so sánh với B5 để sửa B5).



Sub SoSanh()
    n = InputBox("Du lieu bat dau tu dong thu", "So Sanh", 5)
    m = InputBox("Du lieu ket thuc tu dong thu", "So Sanh", 15)
    For i = n To m
        DK1 = Range("B" & i).Value
        DK2 = Range("G" & i).Value
        GT2 = Range("C" & i).Value
        GT3 = Range("D" & i).Value
        If DK1 > DK2 Then
            Range("H" & i) = DK1 - DK2 + GT2 'Bi-Gi+Ci
            Range("I" & i) = GT3 'Di
        ElseIf DK1 = DK2 Then
            Range("H" & i) = GT2 'Ci
            Range("I" & i) = GT3 'Di
        ElseIf DK1 < DK2 And DK2 < DK1 + GT2 Then
            Range("H" & i) = DK1 - DK2 + GT2 'Bi-Gi+Ci
            Range("I" & i) = GT3 'Di
        ElseIf DK2 > DK1 And DK2 = DK1 + GT2 Then
            Range("I" & i) = GT3 'Di
        ElseIf DK2 > DK1 And DK2 > DK1 + GT2 Then
            Range("I" & i) = DK1 + GT2 - DK2 + GT3 'Bi+Ci-Gi+Di
        ElseIf DK2 > GT1 + GT2 + GT3 Then
            '
        End If
    Next
End Sub
	
Thử tạo 1 macro, khi nhập thêm tên hàng vào cột B thì kiểm tra xem bên Tổng Hợp đã có chưa = hàm countif. Nếu Countif=0 thì cộng thêm vào.HI các bạn.
Mình muốn là khi phần chi tiết đánh thêm một mã hàng mới thì phần tổng hợp sẽ tự động add thêm vào. (Ô B17)
Tks.

Dữ liệu của bạn có lớn không? Nếu không lớn thì dùng phương pháp trích lọc duy nhất thì không phải dùng đến Macro.Ặc...!
Em chẳng biết gì về macro cả...!...Liệu dùng hàm có được không nhỉ...
Vì nếu chuyển sang máy người khác lại ko có macro thì trông chẳng ra sao..Thunghi nhỉ!!!!

Bạn dùng công thức nhé.Dữ liệu của mình không nhiều lắm. Max 20 sản phẩm thôi.
Bạn có thể hướng dẫn qua file được không..! Tks very mục
Bạn xem trong fie đính kèm. Tôi sử dụng công thức trích lọc duy nhất của bác Ndu...Dữ liệu của mình không nhiều lắm. Max 20 sản phẩm thôi.
Bạn có thể hướng dẫn qua file được không..! Tks very mục

cách tạo dấu côgn thức mà khi ấn phím F3 thì hiển thị như thế nào các bác nhỉ!?
Nếu viết cả ra thì dài quá