Cộng Tổng những phụ liệu cùng tên (1 người xem)

Liên hệ QC

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

NguyenthiH

Thành viên mới đăng ký
Tham gia
11/12/16
Bài viết
965
Được thích
175
Giới tính
Nữ
Em có bang phụ lieu tồn.
Mong các AC giúp viết code để cộng tổng của các phụ lieu có cùng tên.
Em xin ví dụ như "Nhãn Chính Novelty" có tổng = (0+170+7) = 177
 

File đính kèm

Ví dụ : Tại H1 bạn nhập Nhãn Chính Novelty
Tại : H2 bạn đặt công thức =SUMIF($A$2:$A$228;$H$1;$C$2:$C$228) rồi xem kết quả nhé
Tiếp tục nhập tên hàng hóa khác vào H1 => xem kết quả
Nhưng minh góp ý với bạn : Nên đặt cho mỗi hàng hóa một mã duy nhất thì việc lấy, kết xuất dữ liệu tốt hơn việc lấy theo tên hàng hóa
bởi lẽ tên hàng hóa dài <> Nếu phông chữ không phù hợp không lọc được <> hoặc chỉ cần nét cách sai cũng đủ gây phiền toái cho bạn rồi
Đôi lời cùng bạn; Chúc thành công
 
Lần chỉnh sửa cuối:
Upvote 0
Ý của em là lọc ra Sheet1!F2:H tên phụ lieu không trùng và có tồn cuối là tổng của phụ lieu đó bên bang Sheet1!A2:C
Như: [Nhãn Chình Novelty] [Pcs] [177.00]
[Nhãn Phụ Regular Fit] [Pcs] [259.00]
 
Upvote 0
Ý của em là lọc ra Sheet1!F2:H tên phụ lieu không trùng và có tồn cuối là tổng của phụ lieu đó bên bang Sheet1!A2:C
Như: [Nhãn Chình Novelty] [Pcs] [177.00]
[Nhãn Phụ Regular Fit] [Pcs] [259.00]
chạy code
Mã:
Sub GPE()
Dim Darr(), Arr(), LastR As Long, i As Long, Tmp As String
LastR = Range("A" & Rows.Count).End(xlUp).Row
If LastR < 2 Then Exit Sub
Darr = Range("A2:C" & LastR).Value
ReDim Arr(1 To LastR - 1, 1 To 3)
With CreateObject("scripting.dictionary")
  For i = 1 To LastR - 1
    Tmp = Darr(i, 1)
    If Not .exists(Tmp) Then
      k = k + 1
      .Add Tmp, Darr(i, 3)
      Arr(k, 1) = Darr(i, 1)
      Arr(k, 2) = Darr(i, 2)
    Else
      .Item(Tmp) = .Item(Tmp) + Darr(i, 3)
    End If
  Next i
  For i = 1 To k
    Arr(i, 3) = .Item(Arr(i, 1))
  Next i
End With
Range("F2").Resize(LastR - 1, 3) = Arr
End Sub
 
Upvote 0
Cám Ơn Anh HieuCD, sao em làm dấu cách hàng ngàn không được
Mã:
For i = 1 To k
    Arr(i, 3) = .Item(Arr(i, 1))
    Arr(i, 3) = Format(Arr(i, 3), "#,##0.00")
    Next i
nó ra như sau:
[Nhãn Chính Novelty] [Pcs] [177]
[Nhãn Phụ Regurlar Fit] [Pcs] [259]
[Nhãn Phụ Slim Fit] [Pcs] [1,461.00]
Mong Anh giúp.
 
Lần chỉnh sửa cuối:
Upvote 0
Cám Ơn Anh HieuCD, sao em làm dấu cách hàng ngàn không được
Mã:
For i = 1 To k
    Arr(i, 3) = .Item(Arr(i, 1))
    Arr(i, 3) = Format(Arr(i, 3), "#,##0.00")
    Next i
nó ra như sau:
[Nhãn Chính Novelty] [Pcs] [177]
[Nhãn Phụ Regurlar Fit] [Pcs] [259]
[Nhãn Phụ Slim Fit] [Pcs] [1,461.00]
Mong Anh giúp.

Bạn Format 1 lần đầu tiên trên sheet kiểu gì chẳng được.
 
Upvote 0
Em chỉ thắc mắc là có code định dạng rồi (Arr(I, 3) = Format(Arr(I, 3), "#,##0.00") )
Sao chạy không đúng, mà phải định dạng trong format của Excel.
 
Upvote 0
Cám Ơn Anh HieuCD, sao em làm dấu cách hàng ngàn không được
Mã:
For i = 1 To k
    Arr(i, 3) = .Item(Arr(i, 1))
    Arr(i, 3) = Format(Arr(i, 3), "#,##0.00")
    Next i
nó ra như sau:
[Nhãn Chính Novelty] [Pcs] [177]
[Nhãn Phụ Regurlar Fit] [Pcs] [259]
[Nhãn Phụ Slim Fit] [Pcs] [1,461.00]
Mong Anh giúp.
bạn phải format range
bạn chọn loại format thích hợp
Mã:
Range("F2").Resize(LastR - 1, 3) = Arr
Range("H2").Resize(LastR - 1).NumberFormat = " #,##0.00;(#,##0.00;"
'Range("H2").Resize(LastR - 1).NumberFormat = " #,##0;(#,##0;"
End Sub
 
Upvote 0
mà sao code của anh là:
Mã:
Range("H2").Resize(LastR - 1).NumberFormat = [B][COLOR=#0000ff]" #,##0.00;(#,##0.00;"[/COLOR][/B]
chứ không là:
Mã:
Range("H2").Resize(LastR - 1).NumberFormat = [B][COLOR=#ff0000]"#,##0.00"[/COLOR][/B]
 
Upvote 0
mà sao code của anh là:
Mã:
Range("H2").Resize(LastR - 1).NumberFormat = [B][COLOR=#0000ff]" #,##0.00;(#,##0.00;"[/COLOR][/B]
chứ không là:
Mã:
Range("H2").Resize(LastR - 1).NumberFormat = [B][COLOR=#ff0000]"#,##0.00"[/COLOR][/B]
mình gỏ thiếu dấu ")"
Range("H2").Resize(LastR - 1).NumberFormat = " #,##0.00;(#,##0.00);"
qui định số âm nằm trong dấu ngoặc
chọn cách nào tùy bạn
ơ bảng tính bạn mở format cell để xem các cách format và chế biến lại theo ý
 
Upvote 0
Web KT

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

Back
Top Bottom