Nhờ các anh chị viết code cho hàm SUMIFS 3 điều kiện (1 người xem)

  • Thread starter Thread starter kh0jy3n
  • Ngày gửi Ngày gửi
Liên hệ QC

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

kh0jy3n

Thành viên thường trực
Tham gia
21/4/12
Bài viết
345
Được thích
115
Gửi anh chị
mấy pro viết hộ em code cho file sau với ạ.
do một mã hàng tương đương với 1 sheet nên khi em làm với 30 - 40 mã hàng thì tương đương với 30-40 sheet nên file chạy rất rùa.
anh chị nào hộ em với ạ
em cảm ơn!
 

File đính kèm

Gửi anh chị
mấy pro viết hộ em code cho file sau với ạ.
do một mã hàng tương đương với 1 sheet nên khi em làm với 30 - 40 mã hàng thì tương đương với 30-40 sheet nên file chạy rất rùa.
anh chị nào hộ em với ạ
em cảm ơn!
PivotTable đi bạn, code chi cho nó cực thân
 
Gửi anh chị
mấy pro viết hộ em code cho file sau với ạ.
do một mã hàng tương đương với 1 sheet nên khi em làm với 30 - 40 mã hàng thì tương đương với 30-40 sheet nên file chạy rất rùa.
anh chị nào hộ em với ạ
em cảm ơn!
Chỉ làm theo nhu cầu theo vùng dữ liệu của bạn
 

File đính kèm

Lần chỉnh sửa cuối:
Chỉ làm theo nhu cầu theo vùng dữ liệu của bạn
Code của bạn:
Mã:
Private Sub Test1()
  Application.ScreenUpdating = False
  With [C7:AG14]
    .FormulaR1C1 = "=SUMIFS(DATA!R3C4:R9C4,DATA!R3C2:R9C2,CODE!R3C4,DATA!R3C1:R9C1,CODE!R5C,DATA!R3C3:R9C3,CODE!RC2)"
    .Value = .Value
  End With
  Application.ScreenUpdating = False
End Sub
Vậy thôi cứ gõ công thức xuống bảng tính luôn cho rồi cho code làm gì?
SUMIFS thường cho tốc độ không tồi nhưng đôi khi người ta vẫn muốn dùng code là vì: Dữ liệu người ta quá nhiều, nếu kéo fill SUMIFS đến vài chục ngàn dòng + vài trăm cột sẽ khiến bảng tính bị treo. Vậy trong trường hợp này, nếu lồng công thức vào code thì.. vẫn treo như thường, chẳng giải quyết được bất cứ điều gì cả
Bài toán này giải quyết bằng cách:
- Hoặc là PivotTable
- Hoặc là dùng dictionary để tổng hợp (như tôi đã làm cho bạn lần trước
- Hoặc cứ công thức như xưa nhưng sau khi kéo fill toàn bộ ta paste values hết chỉ chừa công thức lại vài dòng (để mai này có cập nhật thì lại kéo fill)
 
Code của bạn:
Mã:
Private Sub Test1()
  Application.ScreenUpdating = False
  With [C7:AG14]
    .FormulaR1C1 = "=SUMIFS(DATA!R3C4:R9C4,DATA!R3C2:R9C2,CODE!R3C4,DATA!R3C1:R9C1,CODE!R5C,DATA!R3C3:R9C3,CODE!RC2)"
    .Value = .Value
  End With
  Application.ScreenUpdating = False
End Sub
Vậy thôi cứ gõ công thức xuống bảng tính luôn cho rồi cho code làm gì?
SUMIFS thường cho tốc độ không tồi nhưng đôi khi người ta vẫn muốn dùng code là vì: Dữ liệu người ta quá nhiều, nếu kéo fill SUMIFS đến vài chục ngàn dòng + vài trăm cột sẽ khiến bảng tính bị treo. Vậy trong trường hợp này, nếu lồng công thức vào code thì.. vẫn treo như thường, chẳng giải quyết được bất cứ điều gì cả
Bài toán này giải quyết bằng cách:
- Hoặc là PivotTable
- Hoặc là dùng dictionary để tổng hợp (như tôi đã làm cho bạn lần trước
- Hoặc cứ công thức như xưa nhưng sau khi kéo fill toàn bộ ta paste values hết chỉ chừa công thức lại vài dòng (để mai này có cập nhật thì lại kéo fill)
Biết là vậy rồi thầy nhưng bạn ấy muốn thì viết theo bạn muốn gán giá trị cho nhẹ file, còn về sau thì còn nhiều anh trên diễn đàn có giải pháp khác
 
PivotTable đi bạn, code chi cho nó cực thân
Gửi thầy
cái này em làm theo đúng kịch bản thôi ạ.
cái này nó phải động ạ sau đó em làm 1 hyperlink đi tới sheet có thông tin mã hàng đó ạ. và thông tin đó được lấy từ sheer DATA ạ.
Như kiểu tại sheet Data em kick chuột thay đổi giá trị ở cột A1 thì code sẽ chạy và nó sẽ Updata dư liệu của em ở tất cả các sheet ạ.
Em cảm ơn!
Bài đã được tự động gộp:

Chỉ làm theo nhu cầu theo vùng dữ liệu của bạn
Em cảm ơn anh nhe.
Như file này là Coppy Paste ạ.
Thay vì chạy Vba ở ô D3 Sheet code , em cho chạy code ở D1 Sheet Data thì dư liệu lại dc Paste ở Sheet data.
Em cảm ơn!
 
Web KT

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

Back
Top Bottom