Trích xuất dữ liệu theo hàng với nhiều điều kiện ! (1 người xem)

Liên hệ QC

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

phuongla83

Thành viên hoạt động
Tham gia
21/9/11
Bài viết
131
Được thích
8
Chào anh chị,

Mình có dữ liệu cần trích xuất theo hàng ngang với điều kiện là theo TÊN" và "Mã H" hoặc xuất theo "TÊN" , sau đó tính tổng cộng từng cột ( Tổng ban đầu, TT, RF ),
vì dữ liệu mình đang dùng trên Excel 2013 nên mình ko dùng hàm Fillter được, mong được anh chị hướng dẫn,

Vui lòng xem file đính kèm,
Cám ơn !
 

File đính kèm

Không có một dữ liệu gì trong đó biết tính làm sao đây bạn? Ít ra file phải có dữ liệu sau đó có một sheet tính kết quả mong muốn bằng thủ công như thế nào người ta mới biết cách xử lý cho bạn.
 
Chào anh chị,

Mình có dữ liệu cần trích xuất theo hàng ngang với điều kiện là theo TÊN" và "Mã H" hoặc xuất theo "TÊN" , sau đó tính tổng cộng từng cột ( Tổng ban đầu, TT, RF ),
vì dữ liệu mình đang dùng trên Excel 2013 nên mình ko dùng hàm Fillter được, mong được anh chị hướng dẫn,

Vui lòng xem file đính kèm,
Cám ơn !
Bạn thử code cùi bắp này xem sao.
Mã:
Sub TRICHXUAT()
Dim i&, j&, Lr&
Dim Arr(), KQ()
With Sheet1
Lr = .Cells(Rows.Count, 1).End(xlUp).Row
Arr = Range("B2:M" & Lr).Value
ReDim KQ(1 To UBound(Arr), 1 To 13)
For i = 1 To UBound(Arr)
    If UCase(Arr(i, 3)) = UCase(.Cells(2, 18)) Then
        t = t + 1
            KQ(t, 1) = t
        For j = 1 To UBound(Arr, 2)
            KQ(t, j + 1) = Arr(i, j)
        Next j
            TongBanDau = TongBanDau + Arr(i, 8)
            TongTT = TongTT + Arr(i, 11)
            TongRF = TongRF + Arr(i, 12)
    End If
Next i
            KQ(t + 1, 2) = "TÔNG CÔNG"
            KQ(t + 1, 9) = TongBanDau
            KQ(t + 1, 12) = TongTT
            KQ(t + 1, 13) = TongRF
If t Then
.[P4].Resize(100, 13).ClearContents
.[P4].Resize(t + 1, 13) = KQ
End If
End With
xem file đính kèm
 

File đính kèm

Có dùng công thức đc ko bạn
 
Chào anh chị,

Mình có dữ liệu cần trích xuất theo hàng ngang với điều kiện là theo TÊN" và "Mã H" hoặc xuất theo "TÊN" , sau đó tính tổng cộng từng cột ( Tổng ban đầu, TT, RF ),
vì dữ liệu mình đang dùng trên Excel 2013 nên mình ko dùng hàm Fillter được, mong được anh chị hướng dẫn,

Vui lòng xem file đính kèm,
Cám ơn !
Bạn ngâm cứu phương án này nhé
Tốt nhất là bạn nên làm sẵn kết quả ra, thật khó đoán kết quả mong muốn của người khác
 

File đính kèm

Để mình làm ra Kết quả
 
Bạn ngâm cứu phương án này nhé
Tốt nhất là bạn nên làm sẵn kết quả ra, thật khó đoán kết quả mong muốn của người khác
Mình làm ra kết quả rồi, bạn xem file đính kèm dùm
Bài đã được tự động gộp:

Đã tự đồng rồi. Khi bạn thay đổi Ô G2 thì kết quả tức khắc hiện ra. nếu muốn thay đổi vị trí trả về vào modul 1 và sửa lại dòng sau dòng IF t then ....
Mình không biết gì về macro làm sao nhúng vào luôn, để mình học cách sử dụng macro, cám ơn bạn nhiều, mình GG tìm cách đây
 

File đính kèm

Bạn thử code cùi bắp này xem sao.
Mã:
Sub TRICHXUAT()
Dim i&, j&, Lr&
Dim Arr(), KQ()
With Sheet1
Lr = .Cells(Rows.Count, 1).End(xlUp).Row
Arr = Range("B2:M" & Lr).Value
ReDim KQ(1 To UBound(Arr), 1 To 13)
For i = 1 To UBound(Arr)
    If UCase(Arr(i, 3)) = UCase(.Cells(2, 18)) Then
        t = t + 1
            KQ(t, 1) = t
        For j = 1 To UBound(Arr, 2)
            KQ(t, j + 1) = Arr(i, j)
        Next j
            TongBanDau = TongBanDau + Arr(i, 8)
            TongTT = TongTT + Arr(i, 11)
            TongRF = TongRF + Arr(i, 12)
    End If
Next i
            KQ(t + 1, 2) = "TÔNG CÔNG"
            KQ(t + 1, 9) = TongBanDau
            KQ(t + 1, 12) = TongTT
            KQ(t + 1, 13) = TongRF
If t Then
.[P4].Resize(100, 13).ClearContents
.[P4].Resize(t + 1, 13) = KQ
End If
End With
xem file đính kèm
Trên điện thoại không chạy đc Macro, : "This version of Microsoft Excel can;t run VBA macros " mình dùng androi và Excel của MS, có cách nào khắc phục để file này chạy trên androi không bạn ơi ?
Cám ơn bạn nhiều
 
Mình làm ra kết quả rồi, bạn xem file đính kèm dùm
Bài đã được tự động gộp:


Mình không biết gì về macro làm sao nhúng vào luôn, để mình học cách sử dụng macro, cám ơn bạn
bạn thử thay code này vào code cũ và thay đổi Ô S1 hoặc U1 nhé.
Nếu S1 = ""thì lọc theo U1
Nếu U1 ="" thì loạc theo S1.
Nếu S1 và U1 không rỗng thì lọc theo S1 và U1
Mã:
Sub TRICHXUAT()
Dim i&, j&, Lr&
Dim Arr(), KQ()
With Sheet1
Lr = .Cells(Rows.Count, 1).End(xlUp).Row
Arr = Range("A2:M" & Lr).Value
ReDim KQ(1 To UBound(Arr), 1 To 13)
For i = 1 To UBound(Arr)
If .Cells(1, 19) = Empty And .Cells(1, 21) = Empty Then
    .[P4].Resize(100, 13).ClearContents
    MsgBox " Ban chua chon ma hang va tên hàng nào"
    Exit Sub
End If
If .Cells(1, 19) <> Empty And .Cells(1, 21) <> Empty Then
    DK = .Cells(1, 19) & "|" & .Cells(1, 21): tmp = Arr(i, 4) & "|" & Arr(i, 3)
End If
If .Cells(1, 19) <> Empty And .Cells(1, 21) = Empty Then
    DK = .Cells(1, 19): tmp = Arr(i, 4)
End If
If .Cells(1, 19) = Empty And .Cells(1, 21) <> Empty Then
    DK = .Cells(1, 21): tmp = Arr(i, 3)
End If
    If tmp = DK Then
        t = t + 1
        For j = 1 To UBound(Arr, 2)
            KQ(t, j) = Arr(i, j)
        Next j
            TongBanDau = TongBanDau + Arr(i, 9)
            TongTT = TongTT + Arr(i, 12)
            TongRF = TongRF + Arr(i, 13)
    End If
Next i
            KQ(t + 1, 2) = "TÔNG CÔNG"
            KQ(t + 1, 9) = TongBanDau
            KQ(t + 1, 12) = TongTT
            KQ(t + 1, 13) = TongRF
If t Then
.[P4].Resize(100, 13).ClearContents
.[P4].Resize(t + 1, 13) = KQ
End If
End With
End Sub
Còn GLsheet không sử dụng được VBA , làm bài này bằng công thức thì mình chịu thua.
Chúc Vui, khỏe, bình an trong đại dịch.
 
bạn thử thay code này vào code cũ và thay đổi Ô S1 hoặc U1 nhé.
Nếu S1 = ""thì lọc theo U1
Nếu U1 ="" thì loạc theo S1.
Nếu S1 và U1 không rỗng thì lọc theo S1 và U1
Mã:
Sub TRICHXUAT()
Dim i&, j&, Lr&
Dim Arr(), KQ()
With Sheet1
Lr = .Cells(Rows.Count, 1).End(xlUp).Row
Arr = Range("A2:M" & Lr).Value
ReDim KQ(1 To UBound(Arr), 1 To 13)
For i = 1 To UBound(Arr)
If .Cells(1, 19) = Empty And .Cells(1, 21) = Empty Then
    .[P4].Resize(100, 13).ClearContents
    MsgBox " Ban chua chon ma hang va tên hàng nào"
    Exit Sub
End If
If .Cells(1, 19) <> Empty And .Cells(1, 21) <> Empty Then
    DK = .Cells(1, 19) & "|" & .Cells(1, 21): tmp = Arr(i, 4) & "|" & Arr(i, 3)
End If
If .Cells(1, 19) <> Empty And .Cells(1, 21) = Empty Then
    DK = .Cells(1, 19): tmp = Arr(i, 4)
End If
If .Cells(1, 19) = Empty And .Cells(1, 21) <> Empty Then
    DK = .Cells(1, 21): tmp = Arr(i, 3)
End If
    If tmp = DK Then
        t = t + 1
        For j = 1 To UBound(Arr, 2)
            KQ(t, j) = Arr(i, j)
        Next j
            TongBanDau = TongBanDau + Arr(i, 9)
            TongTT = TongTT + Arr(i, 12)
            TongRF = TongRF + Arr(i, 13)
    End If
Next i
            KQ(t + 1, 2) = "TÔNG CÔNG"
            KQ(t + 1, 9) = TongBanDau
            KQ(t + 1, 12) = TongTT
            KQ(t + 1, 13) = TongRF
If t Then
.[P4].Resize(100, 13).ClearContents
.[P4].Resize(t + 1, 13) = KQ
End If
End With
End Sub
Còn GLsheet không sử dụng được VBA , làm bài này bằng công thức thì mình chịu thua.
Chúc Vui, khỏe, bình an trong đại dịch.
Nếu androi phone ko chạy dc macro trong file excel, mình đưa file này lên dạng web để user truy cập vô nhập liệu và xuất thống kê thôi đươc ko bạn,
User nhập vào phía background sẽ tính cộng trừ nhân chia theo công thức đã gán trong file.
Suy nghĩ mình vậy có khả thi được ko bạn
 
Web KT

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

Back
Top Bottom