Lọc lấy ngày cuối tháng trong năm (11 người xem)

Liên hệ QC

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

Chết. Các anh em, mình đang kẹt cái file cuối (Thongke_01.01.2006_30.03.2015 - Copy.rar ) mình gởi sau này nè vì số liệu đầy đủ hơn.. . Hihihihihi

Với file dữ liệu này, thì vẫn chưa chỉnh; Ví dụ tại 1 ô trống nào đó trên trang tính, ta nhập hàm =Month(A2) sẽ cho ta lỗi ngay tấp lự!
Nên xài số liệu ngày tháng theo hệ Mẽo; Còn lại chỉ là vấn đề định dạng cho quen mắt người VN mà thôi.
 
Còn đây là macro cà tèng xử lí file bài #19

T~ 0.3 gy với máy để bàn cà tèng của mình (. . . )
 

File đính kèm

Mình viết thử = ADO như sau, bạn test thử nhé.
PHP:
Sub LayDuLieu()
    Dim cn As Object, rst As Object
    Dim Tmr As Double
    Dim strSQL As String
    Tmr = Timer()
    Set cn = CreateObject("ADODB.Connection")
    cn.Open ("Provider=Microsoft.Jet.OLEDB.4.0;" & _
             "Data Source=" & ThisWorkbook.FullName & _
             ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";")
    strSQL = ""
    strSQL = strSQL & "SELECT [Thongke_01$].* " & vbCrLf
    strSQL = strSQL & "FROM (SELECT Year([Ngày]) AS Nam, Month([Ngày]) AS Thang, Max(Day([Ngày])) AS Ngay, DateSerial(Year([Ngày]),Month([Ngày]),Max(Day([Ngày]))) AS MaxDate " & vbCrLf
    strSQL = strSQL & "FROM [Thongke_01$] " & vbCrLf
    strSQL = strSQL & "GROUP BY Year([Ngày]), Month([Ngày]))  AS Lay_Ngay INNER JOIN [Thongke_01$] ON Lay_Ngay.MaxDate = [Thongke_01$].Ngày"
    Set rst = cn.Execute(strSQL)
    With Sheet2
        .[A2:K150].ClearContents
        .[A2].CopyFromRecordset rst
        .[L1].Value = Timer() - Tmr
    End With
    rst.Close: cn.Close
    Set rst = Nothing: Set cn = Nothing
    
End Sub
 

File đính kèm

Mình lấy cái file của Hai Lúa Miền Tây làm và thực hiện được rồi. Nhưng:
1/Mình chuyển tất cả ngày tháng năm giống như trong file 3/30/2015 thành 30/03/2015 hoặc 30/3/2015 thì nó không lọc được ngày cuối tháng và thông báo bị lỗi là sao hả các anh em, làm cách nào cho nó vẫn lọc được ngày cuối tháng.
2/Giả sử mình muốn chuyển ngày tháng năm giống như trong file 3/30/2015 thành 30/03/2015 hoặc 30/3/2015 trước khi lọc ngày cuối tháng thì có được không? mình làm thế nào?Mình mò mẩm từ hôm qua đến sáng nay thì khuất phục, không tài nào làm được kể cả seach trên google.
 
Lần chỉnh sửa cuối:
Mình lấy cái file của Hai Lúa Miền Tây làm và thực hiện được rồi. Nhưng:
1/Mình chuyển tất cả ngày tháng năm giống như trong file 3/30/2015 thành 30/03/2015 hoặc 30/3/2015 thì nó không lọc được ngày cuối tháng và thông báo bị lỗi là sao hả các anh em, làm cách nào cho nó vẫn lọc được ngày cuối tháng.
2/Giả sử mình muốn chuyển ngày tháng năm giống như trong file 3/30/2015 thành 30/03/2015 hoặc 30/3/2015 trước khi lọc ngày cuối tháng thì có được không? mình làm thế nào?

Tôi đoán bạn đang cố chuyển kiểu ngày tháng không đúng với định dạng chuẩn của máy tính của bạn. Bạn nên kiểm tra lại nhé.
 
mình không thể tải file excel lên được để các bạn xem, trang web báo lỗi hoài. chán thiêt
Mã:
Sub thongke()
On Error Resume Next
Set s = Sheets("Thongke_01.01.2006_30.03.2015 -").UsedRange
w = s.Columns.Count
h = s.Rows.Count
ReDim a(h, w)
For Each cell In s.Columns(1).Cells
If Month(cell) <> Month(cell.Offset(-1)) Then
    For j = 0 To w - 1
        a(i, j) = s.Cells(cell.Row - s.Row + 1, j + 1)
    Next
    i = i + 1
End If
Next
Sheets.Add
[A1].Resize(i + 1, w) = a
End Sub
 
Vậy là chuyển tất cả ngày tháng năm giống như 3/30/2015 trong file của Hai Lúa Miền Tây đã làm giúp mình, thành 30/03/2015 hoặc 30/3/2015 trước khi lọc ngày cuối tháng là không thể chuyển được hả các bạn. Mình vào máy tính chỉnh lại chế độ ngày tháng đủ kiểu rồi mà chỉ có một số ngày tháng năm nhúc nhích còn lại thì im ru. Nản kinh.
 
Lần chỉnh sửa cuối:
Mã:
Sub thongke()
On Error Resume Next
Set s = Sheets("Thongke_01.01.2006_30.03.2015 -").UsedRange
w = s.Columns.Count
h = s.Rows.Count
ReDim a(h, w)
For Each cell In s.Columns(1).Cells
If Month(cell) <> Month(cell.Offset(-1)) Then
    For j = 0 To w - 1
        a(i, j) = s.Cells(cell.Row - s.Row + 1, j + 1)
    Next
    i = i + 1
End If
Next
Sheets.Add
[A1].Resize(i + 1, w) = a
End Sub
Cái này là gì thế bạn?
 
Vậy là chuyển tất cả ngày tháng năm giống như 3/30/2015 trong file của Hai Lúa Miền Tây đã làm giúp mình, thành 30/03/2015 hoặc 30/3/2015 trước khi lọc ngày cuối tháng là không thể chuyển được hả các bạn. Mình vào máy tính chỉnh lại chế độ ngày tháng đủ kiểu rồi mà chỉ có một số ngày tháng năm nhúc nhích còn lại thì im ru. Nản kinh.

Vậy cái chuổi ngày tháng từ bài 1 thì sao hả bạn: 20150326 (yyyymmdd)? Nếu là dạng này thì sẽ không gặp khó khăn cho lắm.
 
Web KT

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

Back
Top Bottom