nothingtolove140591@yahoo
Thành viên mới 

			
		- Tham gia
- 29/8/23
- Bài viết
- 1
- Được thích
- 0

Excel 2007 mình chưa nghĩ ra công thức nào. Bạn chạy thử code sau và kiểm tra kết quả xem.Chào các anh chị!!!
Mong các anh chị giúp em công thức trong file em có đính kèm ạ
(Tính tổng doanh số từng người; biết nếu nhiều người phụ trách 1 đơn vị thì doanh số được chia đều cho người phụ trách công ty đó.)
Em xin cảm ơn ạ!
Sub GPE()
Dim dic As Object, Lr&, i&, Arr(), a, t
Dim b, Res(1 To 10000, 1 To 2), k
    Set dic = CreateObject("Scripting.Dictionary")
    With ThisWorkbook.Sheets("Sheet1")
        Lr = .Range("C" & Rows.count).End(xlUp).Row
        Arr = .Range("C2:D" & Lr).Value
        For i = 1 To UBound(Arr)
            t = Split(Arr(i, 1), "+"): b = UBound(t)
            For a = LBound(t) To UBound(t)
                If Not dic.exists(t(a)) Then
                    dic.Add (t(a)), Arr(i, 2) / (b + 1)
                Else
                    dic.Item(t(a)) = dic.Item(t(a)) + (CDbl(Arr(i, 2)) / (b + 1))
                End If
            Next a
        Next i
        For Each Key In dic.keys
            k = k + 1
            Res(k, 1) = Key
            Res(k, 2) = Format(dic.Item(Key), "#,##0")
        Next Key
        .Range("G2").Resize(k, 2).Value = Res
    End With
    MsgBox "Done"
    Set dic = Nothing
End SubChào các anh chị!!!
Mong các anh chị giúp em công thức trong file em có đính kèm ạ
(Tính tổng doanh số từng người; biết nếu nhiều người phụ trách 1 đơn vị thì doanh số được chia đều cho người phụ trách công ty đó.)
Em xin cảm ơn ạ!
D2 =SUMPRODUCT(SUMIFS($D$2:$D$9,$C$2:$C$9,"*"&G2&"*",$D$2:$D$9,$D$2:$D$9)/(LEN($C$2:$C$9)-LEN(SUBSTITUTE($C$2:$C$9,"+",""))+1))Ẹc, công thức dùng được cả cho Excel 2003 không chừng.Copy xuống . . .Mã:D2 =SUMPRODUCT(SUMIFS($D$2:$D$9,$C$2:$C$9,"*"&G2&"*",$D$2:$D$9,$D$2:$D$9)/(LEN($C$2:$C$9)-LEN(SUBSTITUTE($C$2:$C$9,"+",""))+1))
Sumifs 2003 chưa có, phải dùng hàm match và thêm bẩy lỗiẸc, công thức dùng được cả cho Excel 2003 không chừng.

let
  Source = Excel.CurrentWorkbook(){[Name = "Data"]}[Content],
  DynamicColumnList = Table.AddColumn(Source, "Custom", each List.Count(Text.PositionOfAny( [Nguoi], {"+"}, Occurrence.All ))+1),
    #"Added Custom" = Table.AddColumn(DynamicColumnList, "Custom.1", each [Doanh]/[Custom]),
    #"Split Column by Delimiter" = Table.SplitColumn(#"Added Custom","Nguoi",Splitter.SplitTextByDelimiter("+"),{"Nguoi.1", "Nguoi.2", "Nguoi.3", "Nguoi.4"}),
    #"Changed Type" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Nguoi.1", type text}, {"Nguoi.2", type text}, {"Nguoi.3", type text}}),
    #"Removed Columns" = Table.RemoveColumns(#"Changed Type",{"Doanh", "Custom"}),
    #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Removed Columns", {"Custom.1"}, "Attribute", "Value"),
    #"Removed Columns1" = Table.RemoveColumns(#"Unpivoted Other Columns",{"Attribute"}),
    #"Grouped Rows" = Table.Group(#"Removed Columns1", {"Value"}, {{"Tien", each List.Sum([Custom.1]), type number}})
in
  #"Grouped Rows"