Sumproduct nhưng không được

Liên hệ QC

thangnga

Thành viên mới
Tham gia
17/11/06
Bài viết
11
Được thích
0
Em hỏi tý: Em có cái công thức thế này:
SUMPRODUCT(--(TLloaian="CD")) thì nó đếm được đúng
Nhưng khi dùng cái này thì chẳng ra cái gì cả:
SUMPRODUCT((TLloaitl="HS");--(TLloaian="CD"))
Giải thích giúp em cái!!! Gấp!!!:=\+
 
Lại được rùi!!! Nhưng phải chuyển sang là:
SUMPRODUCT((TLloaitl="HS")*1;(TLloaian="CD")*1)
Không hiểu nổi!!! Đã tham khảo nhiều về cái hàm hay ho này nhưng đến giờ vẫn chẳng thể hiểu nổi!!!! Giải thích giúp em cái!!!
 
Bạn xem qua bài của chị HanDung107 có đoạn
Cấu trúc của hàm SUMPRODUCT như vậy là đã rõ ràng, nhưng trong 5 cách viết, chúng ta sẽ sử dụng cách nào ? Theo bài trên thì :
1/SUMPRODUCT((A1:A5="AA"),(B1:B5="N"),(C1:C5))
2/SUMPRODUCT((A1:A5="AA")*(B1:B5="N")*(C1:C5))
3/SUMPRODUCT(--(A1:A5="AA"),--(B1:B5="N"),(C1:C5))
4/SUMPRODUCT((A1:A5="AA")*1,(B1:B5="N")*1,(C1:C5))
5/SUMPRODUCT((A1:A5="AA")+0,(B1:B5="N")+0,(C1:C5))
Theo www.decisionmodels.com thì
-Sử dụng -- sẽ nhanh hơn +0 hay *1
-Sử dụng --, nếu trong mảng C1:C5 có lẫn giá trị Text, hàm vẫn bỏ qua giá trị này mà không báo lỗi
-Phép (,) sẽ nhanh hơn dấu (*), và phép (*) sẽ gây ra lỗi nếu trong dãy tổng có lẫn giá trị Text
 
Bây giờ em lại gặp một vấn đề mới hơn!!!!!!!!
SUMPRODUCT(--(TLloaitl="HS");--(TLloaian="CD");(F:F))
Thì bị báo lỗi Value!!! Chuối quá!!! Không thể giải thích nổi!!!
Đang dùng Office 2007 cũng biết có hàm SumIfs nhưng không muốn dùng do không tương thích các phiên bản khác!!! Các pác giúp em lý giải cái này đì!!!
 
Chú ý là có 1 số hàm ko chấp nhận địa chỉ dạng F:F như bạn vừa làm... (đại khái nó sẽ ko chạy nếu bạn dùng hết 65536 dòng)... Thử thay thành F2:F65000 xem... hoặc là địa chỉ nào đó tương ứng với name...
Tôi ví dụ name của bạn tham chiếu từ A5 đến A20000, vậy ngay chổ bạn ghi la F:F đó, bạn thay thành F5:F20000...
 
Đã giải quyết xong rùi các pác ạ!!!
Đó là do cách em đặt tên dẫn đên độ dài của các mảng không tương xứng!!! Đã sửa xong rùi!!!
Kinh nghiệm nâng lên một chút!!!
 
À tiện thể cho em hỏi luôn!!!
Em có 3 sheet là: S1, S2, S3 ba sheet này có cấu tạo y như nhau! Em muốn đặt tên cho các cột sao cho khi sang sheet khác nó sẽ thêm tên sheet đó ở đầu!!!
Ví dụ: Ở S1 thì: S1loaitl nhưng sang S2 thì cột tương đương ở S2 sẽ tên là: S2loaitl
làm thế nào đây??
 
Hình như tôi mang máng đoán dc bạn muốn làm gì... Có lẽ bạn muốn công thức của Sheet này khi copy qua Sheet khác vẫn dùng dc, đúng ko?
Nếu đặt name thì e rằng ko dc.. theo tôi trong trường hợp này bạn dùng hàm INDIRECT là hợp lý nhất!
Bạn có thể post 1 phần file lên rồi chúng ta cùng tìm hiểu chi tiết hơn!
ANH TUẤN
 
thangnga đã viết:
À tiện thể cho em hỏi luôn!!!
Em có 3 sheet là: S1, S2, S3 ba sheet này có cấu tạo y như nhau! Em muốn đặt tên cho các cột sao cho khi sang sheet khác nó sẽ thêm tên sheet đó ở đầu!!!
Ví dụ: Ở S1 thì: S1loaitl nhưng sang S2 thì cột tương đương ở S2 sẽ tên là: S2loaitl
làm thế nào đây??
Từ sheet gốc (sheet tạo đầu tiên), bạn nhập tên cột bằng công thức. Dùng hàm CELL để lấy tên sheet. Khi copy sheet này sang sheet mới thì tên cột cũng đổi theo.
Ví dụ sheet gốc tên A có 4 cột A-STT, A-Ngày, A-Diễn giải, A-Số tiền. Bạn nhập công thức:
A1=MID(CELL("filename";A1);FIND("]";CELL("filename";A1))+1;100)&"-STT"
B1=MID(CELL("filename";B1);FIND("]";CELL("filename";B1))+1;100)&"-Ngày"
C1=MID(CELL("filename";C1);FIND("]";CELL("filename";C1))+1;100)&"-Diễn giải"
D1=MID(CELL("filename";D1);FIND("]";CELL("filename";D1))+1;100)&"-Số tiền"
Copy dòng 1 sang dòng 1 các sheet khác.
 

File đính kèm

Mình đã giải quyết được vấn đề tên rùi! Nhưng mà còn một vấn đề nghiêm trọng khác!!!!!!!!!!
Trước đây mình đã từng dùng công thức CSDL dạng Dsum, Dcount... thấy rất hay nhưng mệt cái là phải tạo cho nó một vùng tiêu chuẩn!!!! Do đó khi tìm hiểu tương đối về công thức mảng mình đã chuyển sang dùng nhưng một vấn đề mới gặp phải là bảng tính chạy siêu chậm!!! Cũng muốn dùng VBA để làm nhưng tài năng chưa đủ!!! Buồn quá!!! Phải làm sao để dùng công thức mảng mà bảng tính vẫn nhanh không?????
Bác Anhtuan1066 có bảo gửi file lên nhưng mà file của mình có những dữ liệu tương đối là nhậy cảm!@@ Mình sẽ sửa chữa và gửi lên sau vậy các pác xem dùm nhé!!!
Cảm ơn tất cả mọi người đã nhiệt tình!!
 
Cái đó là tất nhiên rồi... nếu dùng SUMPRODUCT và công thức mãng cho dử liệu vài chục ngàn dòng mà ko khéo léo làm name động thì có nước chết
 
Theo lời khuyên của pác Anhtuan1066 mình đã chuyển toàn bộ những name có thể sang dạng dynamic name!! Kết quả nhanh đáng kinh ngạc luôn!!!! Càm ơn pác nhiều làm!
File này minh đang hoàn thiện nên còn nhiều thắc mắc lắm! Sẽ sớm post lên để các pác chỉ giáo giúp!!!
 
Web KT

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

Back
Top Bottom