Các câu hỏi về hàm SUMIF

Liên hệ QC
sumif nhiều mã hàng, vùng dữ liệu lớn

*Mình gửi file nhờ các bác xem giúp mình nhé.
- vùng thẻ kho là vũng dữ liệu thô dược xuất ra từ phần mềm khác.
- Mã sp sẽ có 2 nhóm là nguyên khuôn và nhóm ngoại cỡ . vì vậy tại cột X của thẻ kho mình phải sử dụng những cột phụ để dò tìm, nếu là NC (ngoại cỡ) thì lấy cột mahh trả về 3 ký tự đầu và 2 ký tự cuối VD SKD05 để mình nhóm nó lại cho gọn.
- Các bác xem có cách nào loại bỏ các cột phụ đó không, hàm sumif mà mình sử dụng cũng rất nặng nề, số lượng mã hàng khoảng 2200, vùng thẻ kho có lúc trên 10,000 dòng. Mong các bác chỉ giúp cách nào nhanh gọn và khoa học hơn, xin chân thành cảm ơn.
 
Lần chỉnh sửa cuối:
*Mình gửi file nhờ các bác xem giúp mình nhé.
- vùng thẻ kho là vũng dữ liệu thô dược xuất ra từ phần mềm khác.
- Mã sp sẽ có 2 nhóm là nguyên khuôn và nhóm ngoại cỡ . vì vậy tại cột X của thẻ kho mình phải sử dụng những cột phụ để dò tìm, nếu là NC (ngoại cỡ) thì lấy cột mahh trả về 3 ký tự đầu và 2 ký tự cuối VD SKD05 để mình nhóm nó lại cho gọn.
- Các bác xem có cách nào loại bỏ các cột phụ đó không, hàm sumif mà mình sử dụng cũng rất nặng nề, số lượng mã hàng khoảng 2200, vùng thẻ kho có lúc trên 10,000 dòng. Mong các bác chỉ giúp cách nào nhanh gọn và khoa học hơn, xin chân thành cảm ơn.

Chử đến rồi File ở lại nhé !%#^#$
Bạn làm gì mà sử dụng 10000 dòng dử vậy ?bao lâu thì được 10000 dòng đó 1 năm hay bao lâu ?
Đến đây nghiên cứu cách post bài nhe
Dử liệu như thế thì khó lòng mà post lên nỗi ..
 
Lần chỉnh sửa cuối:
Chử đến rồi File ở lại nhé !%#^#$
Bạn làm gì mà sử dụng 10000 dòng dử vậy ?bao lâu thì được 10000 dòng đó 1 năm hay bao lâu ?
Đến đây nghiên cứu cách post bài nhe
Dử liệu như thế thì khó lòng mà post lên nỗi ..
Điều này hoàn toàn có thể!
Ở chổ tôi, mỗi ngày nhập liệu mua bán khoảng 100 dòng ---> Vậy bạn tính xem trong 1 năm khoảng bao nhiêu dòng?
Các bạn lưu ý rằng: Với dử liệu lớn thì SORT góp phần không nhỏ cho việc tăng tốc đấy
 
Gửi lại các bác file đính kèm

Mình gửi lại file cho các bác xem nhé.
 
Gửi lại các bác file đính kèm

Mình gửi lại một lần nữa.
 
Mình gửi lại một lần nữa.

Thật sự xem bài của bạn xong ,mình không cách gì khác +-+-+-+.
Ba cột phụ kia có là do lúc bạn quản lý hàng .Mã hàng không phân nhóm trước ,lúc mình đặt mã sau không phân nhóm trước luôn đi ?giờ phải cắt cái này ghép với cái kia mới ra được mã ?
Bạn dùng sumif hay đó ! Cám ơn bạn nhiều ....!
 
- Cảm ơn bạn đã quan tâm, một phần do mình cũng chỉ mới bắt đầu công việc này nên không thể tính trước được, phần dữ liệu thẻ kho nó quá dài là do khi xuất ra excel nó xếp theo hàng dọc tất cả những phát sinh. bạn thử ngâm cú dùm mình xem nếu sử dụng name động rồi dò tìm cái vùng ngoại cỡ thôi được không, một lần nữa mình cảm ơn bạn đã quan tâm.
thân!
 
Code tạo sumif cuối dòng sai ở đâu?

Kính gửi anh chị
Em chưa hiểu đoạn code dưới sai ở đâu? Bởi vì sau khi chạy không thấy tổng Sumif tại dòng cuối cell(er,2)

Em xin cám ơn
PHP:
Sub test()
Dim er As Long
er = [b10000].End(xlUp).Row
Range("a" & er + 1, "c" & er + 1).ClearContents
With Cells(er + 1, 1)
.Value = "TOTAL AMOUNT"
.Font.Bold = True
.Size = 15
.Offset(, 1) = Application.WorksheetFunction.SumIf(no, "", amount)
End With

End Sub
 
Sai ở đây:
PHP:
Range("a" & er + 1, "c" & er + 1).ClearContents
Đổi thành như vầy:
PHP:
Range("a" & er + 1 & ":c" & er + 1).ClearContents
Và như vầy:
PHP:
.Offset(, 1) = Application.WorksheetFunction.SumIf(no, "", amount)
Thành:
PHP:
.Offset(, 1) = WorksheetFunction.SumIf(Range("no"), "", Range("amount"))
Thân.
 
Dựa vào sự chỉnh sửa sửa của anh, em đã viết thêm tí. Nhưng vẫn không chạy được.
Code báo lỗi.
Anh xem giúp, em mít đặc ở chỗ nào??
PHP:
Sub test()
Dim er As Long
er = [b10000].End(xlUp).Row
With Range("a" & er + 1 & ":c" & er + 1)
.Clear
.Interior.ColorIndex = 6
.Pattern = xlSolid
End With
er = [b10000].End(xlUp).Row

With Cells(er + 1, 1)
.Value = "TOTAL AMOUNT"
.Font.Bold = True
.Size = 15
.Offset(, 1) = WorksheetFunction.SumIf(Range("no"), "", Range("amount"))
End With

End Sub
Cám ơn Anh

E..e
 

File đính kèm

  • test.7z
    7 KB · Đọc: 30
Kính gửi anh chị
Em chưa hiểu đoạn code dưới sai ở đâu? Bởi vì sau khi chạy không thấy tổng Sumif tại dòng cuối cell(er,2)

Em xin cám ơn
PHP:
Sub test()
Dim er As Long
er = [b10000].End(xlUp).Row
Range("a" & er + 1, "c" & er + 1).ClearContents
With Cells(er + 1, 1)
.Value = "TOTAL AMOUNT"
.Font.Bold = True
.Size = 15
.Offset(, 1) = Application.WorksheetFunction.SumIf(no, "", amount)
End With

End Sub
Bạn đưa file lên xem thử ---> Vừa sửa và rút gọn code luôn (code này vẫn còn dài)
Thêm nữa: Code này chỉ gán dử liệu cho 1 cell ---> Vậy có cần phải code không nhỉ?
 
Cám ơn Anh NDU
Về mặt cái nhất của GPE thì cho em xin chân Mít đặc nhất. Em chỉ muốn tập thôi mà
-------
Cám ơn Anh
 
Dựa vào sự chỉnh sửa sửa của anh, em đã viết thêm tí. Nhưng vẫn không chạy được.
Code báo lỗi.
Anh xem giúp, em mít đặc ở chỗ nào??
PHP:
Sub test()
Dim er As Long
er = [b10000].End(xlUp).Row
With Range("a" & er + 1 & ":c" & er + 1)
.Clear
.Interior.ColorIndex = 6
.Pattern = xlSolid
End With
er = [b10000].End(xlUp).Row

With Cells(er + 1, 1)
.Value = "TOTAL AMOUNT"
.Font.Bold = True
.Size = 15
.Offset(, 1) = WorksheetFunction.SumIf(Range("no"), "", Range("amount"))
End With

End Sub
Cám ơn Anh

E..e
Sửa lại vầy cho gọn:
PHP:
Sub Test()
  With Range("A65536").End(xlUp).Offset(1)
    With .Resize(, 3)
      .Clear: .Interior.ColorIndex = 6: .Font.Bold = True: .Font.Size = 15
    End With
    .Offset(, 1) = "TOTAL AMOUNT"
    .Offset(, 2) = WorksheetFunction.SumIf(Range("No"), "", Range("Amount"))
  End With
End Sub
Cần gì đặt biến!
Thêm nữa: Mấy cái format Font, size... cần gì cho vào code nhỉ? Bạn format bằng tay 1 lần thì lần sau nó vẫn thế (khi ấy đừng dùng .Clear mà là .ClearContents sẽ không mất Format)
 

File đính kèm

  • test.xls
    21.5 KB · Đọc: 41
Lần chỉnh sửa cuối:
Dùng Name động để sumif ?

- Mình gửi file nhờ các bác xem giúp, ý mình như thế này:

1) trong bảng tổng hợp mình muốn sử dụng sumif theo 2 điều kiện mã sp và hình thức mua bán.

2) do số lượng mã sp nhiều nên mình muốn gom lại cho gon gàng theo bảng tổng hợp (sp từ 6 trở lên mình đưa nó vào cùng nhóm), qui ước trong mã sp.
3) Mình muốn sử dụng name động để vừa dò mã sp và dùng làm cột tham chiếu để sử dụng hàm sumif mà không cần phải có cột phụ.
Rất mong các bác giúp đỡ, chân thành cảm ơn.
 
Đúng là không hiểu bạn win-sun muốn hỏi gì qua file gửi kèm.
Nhân đây, qua GPE tôi biết thêm về name động. Nhưng còn hiểu lơ mơ quá. Xin được hướng dẫn thêm hoặc chỉ đường để lấy tài liệu.
Xin cám ơn.
Name động mà người ta thường ứng dụng nhiều nhất là trong Validation list! Hãy thử tưởng tượng tình huống này:
- Bạn tạo 1 Validation list với dử liệu nguồn là A1:A10 (hiện tại vùng nguồn chỉ có 10 cells)
- Sau này vùng nguồn được nhập thêm vài cell nữa (nhập đến A12 chẳng hạn) thì Validation list sẽ không cập nhật ---> 2 cell vừa nhập không có trong danh sách
===> Điều người ta muốn là bằng cách nào đó khiến cho ListRange này có thể "động" ---> Tức vùng nguồn thay đổi thì Validation list tự cập nhật
Bạn hãy xem 1 ví dụ nhỏ này (vào menu Insert\Name\Define đễ xem công thức nhé)
 

File đính kèm

  • Dynamic_Validation.xls
    13.5 KB · Đọc: 51
Kg anh ndu96081631

Em cảm ơn bác ndu96081631 đã quan tâm. vấn đề của em là thay vì tổng hợp tất cả theo một bộ mã sp thống nhất thì em dùng sumif theo 2 điều kiện là mã sp và loại chứng từ mua hoặc bán là em làm được.
Nhưng em muốn bảng tổng hợp của em ngắn lại nên những mã hàng từ 1->5 thì cộng theo từng mã, còn những mã thừ thứ 6 trở lên thì em cho nó cộng chung vào một nhóm (A-NC, B-NC ...) bác hiểu ý em không.
- Cách em làm hiện nay là sử dụng cột phụ để dò trong data cột E vào mã sp để chuyển mã rồi ghép với loại chứng từ làm thành cột phụ để sumif cho bảng tổng hợp.
- Em muốn đặt name động để bỏ luôn cái cột phụ này đó thôi, anh xem giúp em nhé!
 
Cộng 2 điều kiện thì bạn có thể dùng Sumproduct thay thế, tuy nhiên chưa hiểu tại sao lại nhóm từ A6 đến A20 vào một làm gì, gây khó khăn cho việc tổng hợp. Thử đưa dữ liệu thật của bạn lên xem sao!
 
File em đang làm, các bác xem giúp!

- Em làm như vậy có được chưa các bác, sao nó chạy chậm quá em không biết, các bác xem giúp em nhé ! cảm ơn nhiều.
 
Web KT
Back
Top Bottom