Liệt kê ô có điều kiện

Liên hệ QC

Vũ Kim Hiếu

Thành viên chính thức
Tham gia
19/1/11
Bài viết
52
Được thích
12
Mình muốn liệt kê các tháng có tiền vào trong ô cuối cùng của hàng mà chưa biết dùng hàm gì
 

File đính kèm

N2 =substitute(if(b2>0,", "&$b$1,"")&if(c2>0,", "&$c$1,"")&if(d2>0,", "&$d$1,"")&if(e2>0,", "&$e$1,"")&if(f2>0,", "&$f$1,"")&if(g2>0,", "&$g$1,"")&if(h2>0,", "&$h$1,"")&if(i2>0,", "&$i$1,"")&if(j2>0,", "&$j$1,"")&if(k2>0,", "&$k$1,"")&if(l2>0,", "&$l$1,"")&if(m2>0,", "&$m$1,""),", ","",1)
à quên, bạn phải xóa các số 0 trong bảng dữ liệu
 
Lần chỉnh sửa cuối:
mình làm thủ công ở cột màu vàng đây

Tôi chỉ xử nó được bằng VBA thôi.
Bạn chọn Enable Macros khi mở file, hàm tự tạo trong cột N, cứ theo đó mà vận dụng.
------------------------
Mấy số 0 của bạn không phải =0 nhé.
Tôi đã thay file khác.
 

File đính kèm

Lần chỉnh sửa cuối:
bạn ơi cho mình nhờ chút nữa, mình muốn từ dữ liệu của sheet 1 tổng hợp sang bản của sheet 2 thì dùng code như thế nào
 

File đính kèm

bạn ơi cho mình nhờ chút nữa, mình muốn từ dữ liệu của sheet 1 tổng hợp sang bản của sheet 2 thì dùng code như thế nào

Sheet Data nếu có phát sinh cứ nhập liên tục xuống.
Sao không có mã cho tất cả mọi người? 1 người cùng mã mà ngành nghề KD khác nhau có liệt kê chung dòng hay không?
Không nói rõ gì cả.
Tạm xài "củ chuối" này đi.
Tất cả các chữ Hoa - thường là khác nhau nhé. Nhập liệu cẩn thận.
 

File đính kèm

mình muốn cùng 1 mã thì vào chung 1 dòng, bạn sửa code hộ mình được không
 
mình muốn cùng 1 mã thì vào chung 1 dòng, bạn sửa code hộ mình được không

Vậy thì thay Sub cũ bằng cái này, dòng nào không có mã thì không tính. Phải nhập mã đầy đủ, mỗi người 1 mã không trùng.
PHP:
Public Sub GPE_2()
Dim Dic As Object, sArr(), dArr(), tArr(), I As Long, K As Long, Rws As Long, Col As Long, Tem As String
Set Dic = CreateObject("Scripting.Dictionary")
With Sheets("Data")
    sArr = .Range("C3", .Range("D65536").End(xlUp)).Resize(, 18).Value
End With
ReDim dArr(1 To UBound(sArr), 1 To 22)
With Sheets("TongHop")
    tArr = .Range("A4:V4").Value
    For I = 5 To UBound(tArr, 2)
        If tArr(1, I) <> Empty Then Dic.Item(tArr(1, I)) = I
    Next I
    For I = 1 To UBound(sArr)
        If sArr(I, 1) <> Empty Then
        Tem = sArr(I, 1)
        If Not Dic.Exists(Tem) Then
            K = K + 1
            Dic.Add Tem, K
            dArr(K, 1) = K: dArr(K, 2) = sArr(I, 1)
            dArr(K, 3) = sArr(I, 2): dArr(K, 4) = sArr(K, 3)
        End If
        If Dic.Exists(sArr(I, 4)) Then
            Col = Dic.Item(sArr(I, 4))
            Rws = Dic.Item(Tem)
            dArr(Rws, Col) = dArr(Rws, Col) + sArr(I, 17)
            If Len(dArr(Rws, Col + 1)) Then
                dArr(Rws, Col + 1) = dArr(Rws, Col + 1) & ", " & sArr(I, 18)
            Else
                dArr(Rws, Col + 1) = sArr(I, 18)
            End If
        End If
        End If
    Next I
    .Range("A6:V1000").ClearContents
    .Range("A6").Resize(K, 22) = dArr
    '.Range("B6").Resize(K, 21).Sort Key1:=.Range("B6")'
End With
Set Dic = Nothing
End Sub
 
Web KT

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

Back
Top Bottom