Giúp tôi công thức sắp xếp số liệu

Liên hệ QC

doi_trai_co_don

Thành viên chính thức
Tham gia
27/1/07
Bài viết
52
Được thích
5
Thú thực tôi không biết phải đặt chủ đề như thế nào nữa mong mọi người đọc File kèm theo và giúp đỡ tôi. Tất cả tôi đã nói ở trong File.
Xin cảm ơn nhiều.
 

File đính kèm

doi_trai_co_don đã viết:
Thú thực tôi không biết phải đặt chủ đề như thế nào nữa mong mọi người đọc File kèm theo và giúp đỡ tôi. Tất cả tôi đã nói ở trong File.
Xin cảm ơn nhiều.
Bạn xem thế này có đúng ý bạn không
 

File đính kèm

Cảm ơn thong_xanh2003, nhưng mình cần SL sắp xếp như File của mình cơ (Không có ô trống ở trên). Vì hiện tại mình cũng đang làm như bạn. Bạn có cách nào khác không hoặc bằng VBA cũng được
 
doi_trai_co_don đã viết:
Cảm ơn thong_xanh2003, nhưng mình cần SL sắp xếp như File của mình cơ (Không có ô trống ở trên). Vì hiện tại mình cũng đang làm như bạn. Bạn có cách nào khác không hoặc bằng VBA cũng được

mượn file bạn Thông Xanh làm tiếp cho bạn. Bạn xem nhé.
 

File đính kèm

Bạn tham khảo file gửi kèm (Dùng VBA)
 

File đính kèm

Tổng quát hơn về đường kính ống đến 110 li đây

Mã:
Option Explicit: Option Base 1
[b]Sub XepCot()[/b]
On Error Resume Next
 Dim lRow As Long, iJ As Long, iZ As Long
 Dim bDem As Byte, ViTri As Byte, NoiChep As Byte
 Dim LoaiOng As String
 
 Sheets("Sheet1").Select:           lRow = Range("A65432").End(xlUp).Row
 Range("C1:O" & lRow).ClearContents
 Range("A1:A" & lRow).Select
    Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    ReDim LuuKT(lRow):              NoiChep = 2
 For iJ = 2 To lRow + 1
    ViTri = InStr(Cells(iJ, 1), "-")
    If Left(Cells(iJ, 1), ViTri - 1) <> LoaiOng Then
        If LoaiOng <> "" Then
            NoiChep = NoiChep + 1
            Cells(1, NoiChep) = LoaiOng
            For iZ = 1 To bDem
                Cells(iZ + 1, NoiChep) = LuuKT(iZ)
            Next iZ
        End If
        ReDim LuuKT(lRow):           bDem = 1
        LoaiOng = Left(Cells(iJ, 1), ViTri - 1)
        LuuKT(1) = Mid(Cells(iJ, 1), ViTri + 1, 6)
    Else
        bDem = 1 + bDem
        LuuKT(bDem) = Mid(Cells(iJ, 1), ViTri + 1, 6)
    End If
 Next iJ
[b]
End Sub
[/b]
 

File đính kèm

Lần chỉnh sửa cuối:
Hôm trước tôi có hỏi trên 4rum về Copy SL. Bạn có cho
mình công thức. Nhưng bây giờ mình có thêm SL là cần tăng
thêm dòng thì mình làm không được. File bạn cho mình chỉ
có 14 dòng mà SL mình có rất nhiều khoảng 2-300 dòng. Bạn
chỉ cho mình nhé.
bạn doitrai có hỏi mình thêm về điều này.
Bạn xem thêm tại đây file này nhé, trang 8, mục "hiệu chỉnh công thức mảng"
http://www.giaiphapexcel.com/forum/attachment.php?attachmentid=4220
Thân.
 
doi_trai_co_don đã viết:
Cảm ơn thong_xanh2003, nhưng mình cần SL sắp xếp như File của mình cơ (Không có ô trống ở trên). Vì hiện tại mình cũng đang làm như bạn. Bạn có cách nào khác không hoặc bằng VBA cũng được

bạn tham khảo hàm UFD này :

PHP:
Function Dodai(Phi As String, MangOng As Range, MangDai As Range, So As Integer) As Integer
    On Error Resume Next
    Dim i As Integer, i1 As Integer
    Dim Temp As String
    If MangOng.Rows.Count <> MangDai.Rows.Count Then Exit Function
    If MangOng.Rows.Count = 0 Then Exit Function
    If MangOng.Columns.Count <> 1 Or MangDai.Columns.Count <> 1 Then Exit Function
    If WorksheetFunction.CountIf(MangOng, Phi & "*") < So Then Exit Function
    
    For i = 1 To MangOng.Rows.Count
        If Left$(MangOng(i), 2) = Phi Then
            i1 = i1 + 1
            If i1 = So Then
                Dodai = MangDai(i)
                Exit For
    End If: End If: Next
End Function

Cú pháp :
DoDai(Phi; MangOng; MangDai; So)

  1. Phi : Phi bao nhiêu : Là ký tự
  2. MangOng : Vùng chứa Các đoạn ống
  3. MangDai : Vùng chứa các đoạn dài
  4. Số : Phần tử thỏa mãn số bao nhiêu ??
Bạn tham khảo File nhé :

Thân!
 

File đính kèm

Cảm ơn các bạn mình sẽ thử rồi hỏi lại sau nha
 
Web KT

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

Back
Top Bottom