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 Sub
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 ạ!
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"