hàm nhiều điều kiện (10 người xem)

Liên hệ QC

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

queluatb

Thành viên thường trực
Tham gia
17/1/11
Bài viết
349
Được thích
41
Đệ có file đính kèm xin mọi người giúp đỡ cho đệ, để có thể tính được tổng phát sinh cả bên nợ và bên có của tài khoản thỏa mãn nhiều điều kiện khác nhau,đệ đã làm rồi nhưng không được, xin mọi người giúp đỡ chỉ ra cho sai và lập lại giúp công thức cho đúng, nếu có cách tính nào khác thì cũng chỉ cho đệ luôn, đệ cám ơn
 

File đính kèm

file của bạn lắm yêu cầu khó hiểu quá. Nhảy dữ liệu từ nhập liệu là ntn? nkc? tôi không làm kế toán nên ko rõ. chỉ giúp bạn được công thức sumproduct (nếu bạn có yêu cầu đề nghị viết cụ thể hơn, ít ra cũng có thuật toán)
 

File đính kèm

Bạn thử xem đã đúng yêu cầu chưa?
 

File đính kèm

Bạn thử xem đã đúng yêu cầu chưa?
Đã đúng theo yêu cầu của đệ rồi, đệ cám ơn rất nhiều, trong file đính kèm của đệ cũng sử dụng hàm sumproduct sao lại không được xin chỉ cho đệ biết chỗ sai của đệ, ngoài cách dùng hàm sumproduct ra con có thể sử dụng hàm nào nữa không
 
Đã đúng theo yêu cầu của đệ rồi, đệ cám ơn rất nhiều, trong file đính kèm của đệ cũng sử dụng hàm sumproduct sao lại không được xin chỉ cho đệ biết chỗ sai của đệ, ngoài cách dùng hàm sumproduct ra con có thể sử dụng hàm nào nữa không
Côngn thức của bạn:
Mã:
=SUMPRODUCT([COLOR=red]AND(data!$E$4:$E$28='Bang TH CN'!$A8,data!$F$4:$F$28='Bang TH CN'!$D$2)[/COLOR]*(data!$A$4:$A$28>='Bang TH CN'!$D$3)*(data!$A$4:$A$28<='Bang TH CN'!$D$4)*(data!$H$4:$H$28))
Hàm sumproduct, nếu dùng * bản thân nó đã bao hàm là AND, do đó bạn bỏ hàm AND đi.
Kết cấu chung của sumproduct cho phần phát sinh nợ:
=SUMPRODUCT((vùng TK nợ = TK)*(vùng ĐTPN = ĐTPN)*(vùng ngày tháng >= ngày bắt đầu)*(vùng ngày tháng <= ngày kết thúc)*(vùng số tiền))
sẽ ra kết quả tương ứng với các dòng thỏa điều kiện:
= SUM(TRUE*TRUE*TRUE*TRUE*số tiền)
Với TRUE = 1
= SUM(số tiền)
Nếu để hàm AND(vùng,vùng) như bạn, sumproduct chỉ trả về 1 giá trị FALSE.
TIP: Để kiểm tra công thức, bạn nên dùng cách bôi đen từng công thức thành phần, nhấn F9 để xem kết quả, sẽ phát hiện sai chỗ nào.
Mở rộng : trong công thức sumproduct trên nếu bạn thay vùng số tiền bằng biểu thức điều kiện, công thức này sẽ trở thành công thức đếm: VD: Đếm số PS có số tiền <100.000
SUMPRODUCT(( ....*(vùng số tiền <100.000))
= SUM(TRUE*TRUE*TRUE*TRUE*TRUE) = SUM({0,0,1,1,0,.....,1...))
Với mỗi dòng thỏa điều kiện được đếm là 1.
 
Côngn thức của bạn:
Mã:
=SUMPRODUCT([COLOR=red]AND(data!$E$4:$E$28='Bang TH CN'!$A8,data!$F$4:$F$28='Bang TH CN'!$D$2)[/COLOR]*(data!$A$4:$A$28>='Bang TH CN'!$D$3)*(data!$A$4:$A$28<='Bang TH CN'!$D$4)*(data!$H$4:$H$28))
Hàm sumproduct, nếu dùng * bản thân nó đã bao hàm là AND, do đó bạn bỏ hàm AND đi.
Kết cấu chung của sumproduct cho phần phát sinh nợ:
=SUMPRODUCT((vùng TK nợ = TK)*(vùng ĐTPN = ĐTPN)*(vùng ngày tháng >= ngày bắt đầu)*(vùng ngày tháng <= ngày kết thúc)*(vùng số tiền))
sẽ ra kết quả tương ứng với các dòng thỏa điều kiện:
= SUM(TRUE*TRUE*TRUE*TRUE*số tiền)
Với TRUE = 1
= SUM(số tiền)
Nếu để hàm AND(vùng,vùng) như bạn, sumproduct chỉ trả về 1 giá trị FALSE.
TIP: Để kiểm tra công thức, bạn nên dùng cách bôi đen từng công thức thành phần, nhấn F9 để xem kết quả, sẽ phát hiện sai chỗ nào.
Mở rộng : trong công thức sumproduct trên nếu bạn thay vùng số tiền bằng biểu thức điều kiện, công thức này sẽ trở thành công thức đếm: VD: Đếm số PS có số tiền <100.000
SUMPRODUCT(( ....*(vùng số tiền <100.000))
= SUM(TRUE*TRUE*TRUE*TRUE*TRUE) = SUM({0,0,1,1,0,.....,1...))
Với mỗi dòng thỏa điều kiện được đếm là 1.
Bây giờ đệ lại phát sinh thêm tình huống như thế này mong nhận được sự giúp đỡ của các sư huynh, sư tỷ, cũng bảng giữ liệu đó bây giờ đệ muốn đánh số hiệu tài khoản thì tại cột mã khách sẽ tự động nhảy theo, khi đệ muốn thay đổi số hiệu tài khoản thì mã khách cũng thay đổi theo, đệ dùng hàm vlookup không được, xin giúp đỡ, đệ gửi lại file đính kèm mọi người xem rồi giúp cho đệ nhé
 

File đính kèm

Lần chỉnh sửa cuối:
Mình có dùng 1 cột phụ bên sheet Du DKy, bạn tham khảo:
 

File đính kèm

Côngn thức của bạn:
Mã:
=SUMPRODUCT([COLOR=red]AND(data!$E$4:$E$28='Bang TH CN'!$A8,data!$F$4:$F$28='Bang TH CN'!$D$2)[/COLOR]*(data!$A$4:$A$28>='Bang TH CN'!$D$3)*(data!$A$4:$A$28<='Bang TH CN'!$D$4)*(data!$H$4:$H$28))
Hàm sumproduct, nếu dùng * bản thân nó đã bao hàm là AND, do đó bạn bỏ hàm AND đi.
Kết cấu chung của sumproduct cho phần phát sinh nợ:
=SUMPRODUCT((vùng TK nợ = TK)*(vùng ĐTPN = ĐTPN)*(vùng ngày tháng >= ngày bắt đầu)*(vùng ngày tháng <= ngày kết thúc)*(vùng số tiền))
sẽ ra kết quả tương ứng với các dòng thỏa điều kiện:
= SUM(TRUE*TRUE*TRUE*TRUE*số tiền)
Với TRUE = 1
= SUM(số tiền)
Nếu để hàm AND(vùng,vùng) như bạn, sumproduct chỉ trả về 1 giá trị FALSE.
TIP: Để kiểm tra công thức, bạn nên dùng cách bôi đen từng công thức thành phần, nhấn F9 để xem kết quả, sẽ phát hiện sai chỗ nào.
Mở rộng : trong công thức sumproduct trên nếu bạn thay vùng số tiền bằng biểu thức điều kiện, công thức này sẽ trở thành công thức đếm: VD: Đếm số PS có số tiền <100.000
SUMPRODUCT(( ....*(vùng số tiền <100.000))
= SUM(TRUE*TRUE*TRUE*TRUE*TRUE) = SUM({0,0,1,1,0,.....,1...))
Với mỗi dòng thỏa điều kiện được đếm là 1.

Ngoài hàm sumproduct ra con hàm nào có thể tính tổng thỏa mãn các điều kiện trên không, xin huynh chỉ giúp
 
Ngoài hàm sumproduct ra con hàm nào có thể tính tổng thỏa mãn các điều kiện trên không, xin huynh chỉ giúp
nếu bạn sử dụng excel 2007 trở lên thì có thể dùng hàm này thay thế sumproduct
PHP:
=SUMIFS(data!$H$4:$H$28,data!$E$4:$E$28,'Bang TH CN'!$A8,data!$F$4:$F$28,'Bang TH CN'!$D$2,data!$A$4:$A$28,">="&'Bang TH CN'!$D$3,data!$A$4:$A$28,"<="&'Bang TH CN'!$D$4)
 
Bạn cũng có thể dùng công thức mảng. Tuy nhiên, theo mình nên hạn chế sử dụng công thức mảng để tránh làm chậm quá trình mở file Excel.
 
Đệ có file đính kèm xin mọi người giúp đỡ cho đệ, để có thể tính được tổng phát sinh cả bên nợ và bên có của tài khoản thỏa mãn nhiều điều kiện khác nhau,đệ đã làm rồi nhưng không được, xin mọi người giúp đỡ chỉ ra cho sai và lập lại giúp công thức cho đúng, nếu có cách tính nào khác thì cũng chỉ cho đệ luôn, đệ cám ơn
File này mình đã chỉ cho bạn công thức sumproduct rồi mà..nếu mình nhớ không lầm thì bạn đã đưa file này lên rồi
 
nếu bạn sử dụng excel 2007 trở lên thì có thể dùng hàm này thay thế sumproduct
PHP:
=SUMIFS(data!$H$4:$H$28,data!$E$4:$E$28,'Bang TH CN'!$A8,data!$F$4:$F$28,'Bang TH CN'!$D$2,data!$A$4:$A$28,">="&'Bang TH CN'!$D$3,data!$A$4:$A$28,"<="&'Bang TH CN'!$D$4)
Huynh cho đệ hỏi tại sao lại dùng ">="& đệ không hiểu
 
không lọc được số dư đầu kỳ

hic, ai giúp e với, e sử dụng cả hai công thức trên cho số dư đầu kỳ đều không được, ví dụ e muốn lọc dữ liệu từ 01/02/2011 đến 28/02/2011 lẽ ra phải lấy số dư cuối của ngày 31/01/2011 thì ở đây nếu chọn thời điểm từ 01/02/2011 thì nó trên số dư đầu sẽ có cả số dư của đầu tháng 01 và số phát sinh trong tháng 01 cả bên nợ và bên có, e tải lại dữ liệu ở đây mọi người xem và giúp đỡ cho e, e cám ơn
 

File đính kèm

không ai làm được giúp cho e à, hiccc
 
không ai làm được giúp cho e à, hiccc
Mình thấy bạn thiết kế Form cho bảng theo dõi công nợ không được khoa học lắm, gây khó khăn cho việc tạo công thức.
Xin góp ý với bạn 1 kiểu sổ theo dõi công nợ chi tiết theo tài khoản và khách hàng như thế này để bạn tiện kiểm tra và theo dõi hơn. Bạn tham khảo rồi áp dụng vào file của bạn nhé!

P/s :Nhớ gõ chuẩn dữ liệu ngày tháng bên sheet data nếu không hàm Sumproduct cho kết quả sai.

Đôi lời góp ý cùng bạn! HMTc!
 

File đính kèm

Huynh cho đệ hỏi tại sao lại dùng ">="& đệ không hiểu
Bạn nên tìm hiểu kỹ hơn về hàm SUMIFS (Hàm này chỉ sử dụng Excel 2007 trở lên):
Hàm SUMIFS()

Tính tổng các ô trong một vùng thỏa nhiều điều kiện cho trước.Cú pháp: = SUMIFS(sum_range, criteria_range1, criteria1, criteria_range2, criteria2, ...)
Sum_range : Dãy các ô để tính tổng, có thể là ô chứa số, tên, mảng, hay tham chiếu đến các ô chứa số. Ô rỗng và ô chứa giá trị text sẽ được bỏ qua.

Criteria_range1, criteria_range2... : Có thể có từ 1 đến 127 vùng dùng để liên kết với các điều kiện cho vùng.

Criteria1, criteria2... : Có thể có từ 1 đến 127 điều kiện để tính tổng. Chúng có thể ở dạng số, biểu thức, hoặc text. Ví dụ, criteria có thể là 32, "32", "> 32", hoặc "apple", v.v...
Lưu ý:
  • Mỗi ô trong sum_range chỉ được tính tổng nếu tất cả các điều kiên tương ứng với ô đó đều đúng. Nếu thỏa các điều kiện, nó sẽ bằng 1, còn không, thì nó bằng 0.
  • Không giống như những đối số range criteria của hàm SUMIF, trong hàm SUMIFS, mỗi vùng criteria_range phải có cùng kích thước và hình dạng giống như sum_range.
  • Có thể dùng các ký tự đại diện trong các điều kiện: dấu ? đại diện cho một ký tự, dấu * đại diện cho nhiều ký tự (nếu như điều kiện là tìm những dấu ? hoặc *, thì gõ thêm dấu ~ ở trước dấu ? hay *)
  • Khi điều kiện để đếm là những ký tự, SUMIFS() không phân biệt chữ thường hay chữ hoa.
Khi bạn nghiên cứu cơ bản của hàm rồi thì bạn sẽ hiểu cách vận dụng từng tham số trong công thức trên.
 
Web KT

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

Back
Top Bottom