Xin hỏi thêm về công thức SUMIFS

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

ditimdl

Thành viên thường trực
Tham gia
11/10/06
Bài viết
378
Được thích
107
Giới tính
Nam
Nghề nghiệp
Pharmacist
Em có một số name sau:
soluong1: Name cột số lượng, có khoảng 50 name từ soluong1...soluong50
thuoc1: Name về chủng loại mặt hàng, có khoảng 50 name thuoc1...thuoc50.
Trong công thức sumifs em dùng để tính tổng số lượng các mặt hàng như sau:
Ở cột đầu tiên: =sumifs(soluong1,thuoc1,đk thõa mãn trong thuoc) sau đó em fill đến column 50.
Xin hỏi có cách nào khi fill từ column1 đến column50 thì các name sẽ tự động chạy theo không?
Ví dụ khi em fill đến cột 50 thì công thức sẽ là:
=sumifs(soluong50,thuoc50,đk thõa mãn trong name thuoc)
Xin các bạn và anh chị giúp em.
 
- Tất nhiên là sẽ tự động chạy theo rồi, tùy thuộc vào cái dấu $ của bạn. nhưng bạn xem có nhầm cái công thức không nhỉ. Phải thế này chứ!
=sumifs(thuoc1,đk thỏa mãn trong thuoc,soluong1)
 
Chỉ riêng mỗi cái SOLUONG mà đã có đến 50 name... vậy trong file tổng cộng có bao nhiêu name? Nhiều quá làm sao quản lý nổi? Và như thế thì NAME làm gì cho mất công? Chỉ thêm rối... Bạn xem lại nhé...
Tốt nhất đưa file lên, tôi nghĩ là có cách giảm bớt số name này đồng thời giãi quyết luôn yêu cầu của bạn!
ANH TUẤN
 
Dùng sumif như bạn Phamnhukhang cũng được. Hoặc bạn có thể dùng Vlookup như sau
Vlookup(thuoc, vùng đối chiếu, cột đối chiếu,0)
Chúc bạn thành công
 
ditimdl đã viết:
Em có một số name sau:
soluong1: Name cột số lượng, có khoảng 50 name từ soluong1...soluong50
thuoc1: Name về chủng loại mặt hàng, có khoảng 50 name thuoc1...thuoc50.
Trong công thức sumifs em dùng để tính tổng số lượng các mặt hàng như sau:
Ở cột đầu tiên: =sumifs(soluong1,thuoc1,đk thõa mãn trong thuoc) sau đó em fill đến column 50.
Xin hỏi có cách nào khi fill từ column1 đến column50 thì các name sẽ tự động chạy theo không?
Ví dụ khi em fill đến cột 50 thì công thức sẽ là:
=sumifs(soluong50,thuoc50,đk thõa mãn trong name thuoc)
Xin các bạn và anh chị giúp em.
Bạn thử dùng indirect("thuoc"&column()+i), tùy thuộc column() mà => i
Ví dụ: bạn đang ở cột 5 mà muốn sumifs(thuoc5,...)
thì dùng sumifs(indirect("thuoc"&coulmn()),...)
 
To TN: Mình sẽ thử theo cách của bạn.
To PhamNhukhang: Bạn có nhầm công thức không?
sumifs=(sum_range,criteria_range1,criteria...)
soluong1 là cột chứa số lượng là số mà?
To Anhtuan: Lúc trước em có nhờ anh xem nhưng anh cũng pó tay rồi mà? 50name đã là ít :(. Em định dùng offset kết hợp với sumif, column để loại bỏ bớt name nhưng dữ liệu của em ngày tháng không tăng dần nên cũng đành pó tay anh à. Nếu được các anh chị quan tâm giúp thì em attach file lên để mọi người có thể cải thiện dùm em.

Em đã attach file lên. Mong mọi người xem qua và cải thiện dùm em nha. File đính kèm đã xóa bỏ bớt dữ liệu. Dữ liệu có thể lên tới 2000 dòng, tốc độ tính toán rất chậm.
 
Lần chỉnh sửa cuối:
Theo mình thì thêm hàm indirect vào
=SUMIFS(INDIRECT("SOLUONG"&COLUMN()-4),INDIRECT("THUOC"&COLUMN()-4),$B34,NGAYTK,">="&$BH$7,NGAYTK,"<="&$BI$7,DKKHOA,VLOOKUP($B$4,TIMKHOA,2,0))
 
To PhamNhukhang: Bạn có nhầm công thức không?
sumifs=(sum_range,criteria_range1,criteria...)
soluong1 là cột chứa số lượng là số mà?
Sorry tớ nhầm với SUMIFS với SUMIF, bạn đúng !
Đang check file của bạn, có phải bạn đang vướng ở chỗ tổng hợp số lượng của từng loại thuốc đã sử dụng mỗi tháng trong sheet TKTHUOC không ? Tớ cần biết chi tiết vướng mắc của bạn trong file ?
- Auto Fill thì có nhiều cách, đơn giản là dung Indirect,lợi dụng cái tiêu đề SL1, SL2... theo tôi bạn nên chia data base thành từng tháng hoặc nhờ viết code cho đỡ nặng file.
 

File đính kèm

Lần chỉnh sửa cuối:
Tôi bảo đảm là có cách bỏ hết dc name đấy.. chỉ chừa lại khoảng 2, 3 name thôi...
Để ý tham chiếu các name này thay đổi theo cột 1 cách có trật tự.. vì thế chỉ cần kết hợp khéo léo với hàm Column như Thunghi vừa nói là dc... (có điều nhìn dử liệu này cảm thấy ngán quá nên chưa ra tay dc).. hi.. hi..
ANH TUẤN
 
- Dùng INDERRCT kết hợp với COLUMN cũng được, nhưng ông nào không biết chèn thêm cột thì là một tai họa...
- Em đang tính chỉ dùng một name là THUOC và SOLUONG, nhưng để name ở dạng địa chỉ tương đối có được không bác ? (Cái này mà bị chèn thêm cột ở sheet sử dụng name cũng là một tai họa)
- Phương pháp của bác Tuấn như nào vậy ?
 
phamnhukhang đã viết:
- Dùng INDERRCT kết hợp với COLUMN cũng được, nhưng ông nào không biết chèn thêm cột thì là một tai họa...
- Em đang tính chỉ dùng một name là THUOC và SOLUONG, nhưng để name ở dạng địa chỉ tương đối có được không bác ? (Cái này mà bị chèn thêm cột ở sheet sử dụng name cũng là một tai họa)
- Phương pháp của bác Tuấn như nào vậy ?
Uh... cách đó cũng dc... Bạn yên tâm là sẽ ko có vụ chèn cột đâu, vì đây là file làm việc thật sự của người ta mà...
Cách nào cũng dc nhưng với dử liệu này nhất định ko dc dùng SUMPRODUCT, vì nó sẽ chậm bảng tính đấy!.. Dùng name để loại các cột ko cần thiết, cuối cùng đưa về dạng SUMIF là hay nhất!
ANH TUẤN
 
Vấn đề đặt ra là tốc độ tính tóan. Chỉ dùng công thức chứ ko dùng code. Nếu như anhtuan nói như vậy chắc là có phương pháp để loại bớt name rồi nhỉ? Theo em dùng offset để cố định dòng đầu và số diòng cần sum, tiếp đến đưa column vào 1 name tương đối để dịch chuyển nhưng trình độ ko cho phép nên mong các anh chị giúp.
 
Hix. File em đưa lên bất khả thi hay sao mà ko thấy anh chị nào đá động đến 1 tiếng nhỉ? Kiểu này mèo lại hoàn mèo rùi.
 
Web KT

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

Back
Top Bottom