Tính tổng mặt hàng bán ra trong ngày có loại bỏ sự lặp lại (1 người xem)

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

vitinhvnbmt

Thành viên hoạt động
Tham gia
30/5/09
Bài viết
108
Được thích
7
mình muốn tính tổng số mặt hàng bán ra trong từng ngày, đã loại bỏ sự lặp lại thì làm như nào hả các pro?
(1 mặt hàng bán ra nhiều đợt trong ngày thì cũng chỉ tính là 1 mặt hàng).
mọi người xem hộ mình file gửi kèm nhé.
 

File đính kèm

mình muốn tính tổng số mặt hàng bán ra trong từng ngày, đã loại bỏ sự lặp lại thì làm như nào hả các pro?
(1 mặt hàng bán ra nhiều đợt trong ngày thì cũng chỉ tính là 1 mặt hàng).
mọi người xem hộ mình file gửi kèm nhé.
Bạn dùng CT này ở cột G3:
Mã:
G3=SUM(IFERROR(1/COUNTIFS($B$2:$B$15,$B$2:$B$15,$A$2:$A$15,$A$2:$A$15,$A$2:$A$15,G$2),0))
Ctrl+Shift+Enter rồi fill sang phải!!!
 
Bạn dùng CT này ở cột G3:
Mã:
G3=SUM(IFERROR(1/COUNTIFS($B$2:$B$15,$B$2:$B$15,$A$2:$A$15,$A$2:$A$15,$A$2:$A$15,G$2),0))
Ctrl+Shift+Enter rồi fill sang phải!!!

bạn giải thích hộ mình nội dung công thức được không? nhập hàm vào thì ra kết quả đúng nhưng mà mình không hiểu nó như thế nào cả. please help?
 
bạn giải thích hộ mình nội dung công thức được không? nhập hàm vào thì ra kết quả đúng nhưng mà mình không hiểu nó như thế nào cả. please help?
CT: SUM(IFERROR(1/COUNTIFS($B$2:$B$15,$B$2:$B$15,$A$2:$A$15,$A$2:$A$15,$A$2:$A$15,G$2),0)), trong đó COUNTIFS($B$2:$B$15,$B$2:$B$15,$A$2:$A$15,$A$2:$A$15,$A$2:$A$15,G$2) là đếm 2 điều kiện theo mặt hàng, theo ngày và theo G2(2/7/2016), sẽ tạo ra mảng :{2,1,2,1,0,0,...) số 2 nghĩa là mặt hàng mặt hàng X1450001 xuất hiện 2 lần, mấy mặt hàng kia xuất hiện 1 lần, iferror(1/COUNTIFS($B$2:$B$15,$B$2:$B$15,$A$2:$A$15,$A$2:$A$15,$A$2:$A$15,G$2),0) sẽ tạo mảng: {1/2,1,1/2,1,0,0..) sum mảng này lại ta được KQ là 3, /-*+/

 
CT: SUM(IFERROR(1/COUNTIFS($B$2:$B$15,$B$2:$B$15,$A$2:$A$15,$A$2:$A$15,$A$2:$A$15,G$2),0)), trong đó COUNTIFS($B$2:$B$15,$B$2:$B$15,$A$2:$A$15,$A$2:$A$15,$A$2:$A$15,G$2) là đếm 2 điều kiện theo mặt hàng, theo ngày và theo G2(2/7/2016), sẽ tạo ra mảng :{2,1,2,1,0,0,...) số 2 nghĩa là mặt hàng mặt hàng X1450001 xuất hiện 2 lần, mấy mặt hàng kia xuất hiện 1 lần, iferror(1/COUNTIFS($B$2:$B$15,$B$2:$B$15,$A$2:$A$15,$A$2:$A$15,$A$2:$A$15,G$2),0) sẽ tạo mảng: {1/2,1,1/2,1,0,0..) sum mảng này lại ta được KQ là 3, /-*+/


đau đầu quá :=\+
cảm ơn bạn rất nhiều :-=
 
Bạn dùng CT này ở cột G3:
Mã:
G3=SUM(IFERROR(1/COUNTIFS($B$2:$B$15,$B$2:$B$15,$A$2:$A$15,$A$2:$A$15,$A$2:$A$15,G$2),0))
Ctrl+Shift+Enter rồi fill sang phải!!!

bạn ơi bây giờ thêm điều kiện nữa là : ở cột Đánh giá phải là a hoặc b hoặc c thì mới tính.
thì làm thế nào hả bạn? bạn xem file mình gửi kèm nhé
 

File đính kèm

bạn ơi bây giờ thêm điều kiện nữa là : ở cột Đánh giá phải là a hoặc b hoặc c thì mới tính.
thì làm thế nào hả bạn? bạn xem file mình gửi kèm nhé

Nếu thêm "bây giờ ..." thì xài thử hàm tự tạo.
Enable Macros khi mở file.
Sau đó, nếu có thêm "bây giờ .." nữa thì chạy luôn.
 

File đính kèm

Nếu thêm "bây giờ ..." thì xài thử hàm tự tạo.
Enable Macros khi mở file.
Sau đó, nếu có thêm "bây giờ .." nữa thì chạy luôn.

hình như bạn rất thích với hai chữ "bây giờ" --=0--=0--=0
nhưng như vậy thì lại bị thay đổi định dạng file mất. đang từ .xlsx chuyển sang .xlsm.
có cách nào không dùng macro không bạn?
 
CT: SUM(IFERROR(1/COUNTIFS($B$2:$B$15,$B$2:$B$15,$A$2:$A$15,$A$2:$A$15,$A$2:$A$15,G$2),0)), trong đó COUNTIFS($B$2:$B$15,$B$2:$B$15,$A$2:$A$15,$A$2:$A$15,$A$2:$A$15,G$2) là đếm 2 điều kiện theo mặt hàng, theo ngày và theo G2(2/7/2016), sẽ tạo ra mảng :{2,1,2,1,0,0,...) số 2 nghĩa là mặt hàng mặt hàng X1450001 xuất hiện 2 lần, mấy mặt hàng kia xuất hiện 1 lần, iferror(1/COUNTIFS($B$2:$B$15,$B$2:$B$15,$A$2:$A$15,$A$2:$A$15,$A$2:$A$15,G$2),0) sẽ tạo mảng: {1/2,1,1/2,1,0,0..) sum mảng này lại ta được KQ là 3, /-*+/

Bạn ơi, cho mình hỏi tí là ở công thức COUNTIFS($B$2:$B$15,$B$2:$B$15,$A$2:$A$15,$A$2:$A$15,$A$2:$A$15,G$2) lặp lại 2 lần $B$2:$B$15 và 3 lần $A$2:$A$15 có nghĩa là gì vậy, có thể giải thích giúp mình đc k
 
bạn ơi bây giờ thêm điều kiện nữa là : ở cột Đánh giá phải là a hoặc b hoặc c thì mới tính.
thì làm thế nào hả bạn? bạn xem file mình gửi kèm nhé
Bạn sữa CT lại như vầy:
Mã:
G3=SUM(IFERROR(1/COUNTIFS($B$2:$B$15,$B$2:$B$15,$A$2:$A$15,$A$2:$A$15,$A$2:$A$15,G$2)/COUNTIF($D$2:$D$4,$D$2:$D$15),0))
Ctrl+Shift+Enter rồi fill sang phải
 
Bạn ơi, cho mình hỏi tí là ở công thức COUNTIFS($B$2:$B$15,$B$2:$B$15,$A$2:$A$15,$A$2:$A$15,$A$2:$A$15,G$2) lặp lại 2 lần $B$2:$B$15 và 3 lần $A$2:$A$15 có nghĩa là gì vậy, có thể giải thích giúp mình đc k
Không biết giải thích với bạn sao nữa: Cấu trức của Countifs là (Mảng1, điều kiện mảng 1,Mảng2, điều kiện mảng 2....), CT COUNTIFS($B$2:$B$15,$B$2:$B$15,$A$2:$A$15,$A$2:$A$15,$A$2:$A$15,G$2) sẽ tạo ra 1 mảng ...
Ví dụ: Mảng={1,2},Countif(Mảng,1)=1, countif(Mảng,mảng) sẽ tạo ra mảng là {1,1}, tại sao ra mảng {1,1} vì countif(Mảng,mảng) sẽ tạo ra 2 cặp so sánh là {1,2}=1 và {1,2}=2 và kết quả là {1:1}, tương tự hàm countifs, hic kho hiểu thật, bạn hiểu được nhiêu thì hiểu nhe, bạn muốn hiểu cái này bạn nên tìm hiểu về mảng trước bạn ạ.+-+-+-++-+-+-++-+-+-+
 
Bạn sữa CT lại như vầy:
Mã:
G3=SUM(IFERROR(1/COUNTIFS($B$2:$B$15,$B$2:$B$15,$A$2:$A$15,$A$2:$A$15,$A$2:$A$15,G$2)/COUNTIF($D$2:$D$4,$D$2:$D$15),0))
Ctrl+Shift+Enter rồi fill sang phải

trong công thức này thì bạn đã chọn điều kiện a, b, c là $D$2:$D$4
nhưng nếu mà trong cả cột D mà không tìm được chỗ nào có a, b, c ở hàng liền kề với nhau thì sẽ phải làm sao?

có thể đưa điều kiện a, b, c trực tiếp vào công thức( thay vì đưa điều kiện gián tiếp bằng việc tham chiếu đến vùng $D$2:$D$4 chứa điều kiện a,b,c) được không bạn?
 
trong công thức này thì bạn đã chọn điều kiện a, b, c là $D$2:$D$4
nhưng nếu mà trong cả cột D mà không tìm được chỗ nào có a, b, c ở hàng liền kề với nhau thì sẽ phải làm sao?

có thể đưa điều kiện a, b, c trực tiếp vào công thức( thay vì đưa điều kiện gián tiếp bằng việc tham chiếu đến vùng $D$2:$D$4 chứa điều kiện a,b,c) được không bạn?
Theo mình biết thì countif chỉ có thể sử dụng vùng dạng D$2:$D$4, không thể đưa trực tiếp vào kiểu như {"a","b","c"}, trong file của bạn thì đúng là hên tìm được vùng tham chiếu D$2:$D$4, vùng tham chiếu này bạn có thể tự tạo ở cột khác và sài CT như trên, vẫn có thể không sài hàm counif cho trường hợp này nhưng CT sẽ dài hơn theo số lượng (a,b,c....), hi, hiểu biết mình có hạn, bạn thông cảm!!!+-+-+-+
 
Theo mình biết thì countif chỉ có thể sử dụng vùng dạng D$2:$D$4, không thể đưa trực tiếp vào kiểu như {"a","b","c"},
Thay chỗ COUNTIF thành:
Mã:
(($D$2:$D$15="a")+($D$2:$D$15="b")+($D$2:$D$15="c"))
Chắc còn nhiều cách khác nữa...
 
cảm ơn bạn lenongree nhé
như vậy đã quá là pro rồi bạn--=0
 
Thay chỗ COUNTIF thành:
Mã:
(($D$2:$D$15="a")+($D$2:$D$15="b")+($D$2:$D$15="c"))
Chắc còn nhiều cách khác nữa...

muốn nhấn nút thank bác mà không thấy nút thanks đâu cả --=0

nhưng mà không đúng kết quả ở ô G3 bác ơi
bác cho em cái công thức đầy đủ của nó xem em có nhập sai gì không nhé?
 
Lần chỉnh sửa cuối:
Không biết giải thích với bạn sao nữa: Cấu trức của Countifs là (Mảng1, điều kiện mảng 1,Mảng2, điều kiện mảng 2....), CT COUNTIFS($B$2:$B$15,$B$2:$B$15,$A$2:$A$15,$A$2:$A$15,$A$2:$A$15,G$2) sẽ tạo ra 1 mảng ...
Ví dụ: Mảng={1,2},Countif(Mảng,1)=1, countif(Mảng,mảng) sẽ tạo ra mảng là {1,1}, tại sao ra mảng {1,1} vì countif(Mảng,mảng) sẽ tạo ra 2 cặp so sánh là {1,2}=1 và {1,2}=2 và kết quả là {1:1}, tương tự hàm countifs, hic kho hiểu thật, bạn hiểu được nhiêu thì hiểu nhe, bạn muốn hiểu cái này bạn nên tìm hiểu về mảng trước bạn ạ.+-+-+-++-+-+-++-+-+-+
Mình đọc lời bạn giải thích thì cũng chỉ hiểu đc có 60% thôi, chắc phải tìm hiểu về mảng may ra hiểu hết, cảm ơn bạn đã chỉ giáo :))
 
Bạn sữa CT lại như vầy:
Mã:
G3=SUM(IFERROR(1/COUNTIFS($B$2:$B$15,$B$2:$B$15,$A$2:$A$15,$A$2:$A$15,$A$2:$A$15,G$2)/COUNTIF($D$2:$D$4,$D$2:$D$15),0))
Ctrl+Shift+Enter rồi fill sang phải

- mình làm trên bảng tính mình up lên diễn đàn thì ra kết quả đúng, nhưng mà mình làm trên file excel ở công ty thì nó ra cả kết quả là lẻ bạn à. nhập công thức xong, chỗ ra là 2.1 có chỗ thì là 0.5. mình không hiểu tại sao lại như vậy? liệu có yếu tố nào đó để nó tính ra kết không phải là số nguyên không bạn?

- bạn ơi mình muốn tính tổng số mặt hàng bán ra có mã X145 trong từng ngày tương ứng thì làm thế nào hả bạn?
(thêm điều kiện là mã X145) bạn xem file đính kèm hộ mình với nhé--=0
 

File đính kèm

muốn nhấn nút thank bác mà không thấy nút thanks đâu cả ............

Tham gia diễn đàn từ năm 2009 đến nay mà nói không biết nút cám ơn ở đâu là sao ta??????

Nút cám ơn ở đây nè bạn: Khi bạn đăng nhập diễn đàn xong thì bạn mới thấy nút này ở phía dưới bên trái của từng bài viết.
 
Không biết giải thích với bạn sao nữa: Cấu trức của Countifs là (Mảng1, điều kiện mảng 1,Mảng2, điều kiện mảng 2....), CT COUNTIFS($B$2:$B$15,$B$2:$B$15,$A$2:$A$15,$A$2:$A$15,$A$2:$A$15,G$2) sẽ tạo ra 1 mảng ...
Ví dụ: Mảng={1,2},Countif(Mảng,1)=1, countif(Mảng,mảng) sẽ tạo ra mảng là {1,1}, tại sao ra mảng {1,1} vì countif(Mảng,mảng) sẽ tạo ra 2 cặp so sánh là {1,2}=1 và {1,2}=2 và kết quả là {1:1}, tương tự hàm countifs, hic kho hiểu thật, bạn hiểu được nhiêu thì hiểu nhe, bạn muốn hiểu cái này bạn nên tìm hiểu về mảng trước bạn ạ.+-+-+-++-+-+-++-+-+-+
Chào vitinhvnbmt, LightStar252.

Tôi cũng giống như các bạn thời gian đầu tiếp xúc với công thức mảng và nghe lời giải thích cũng như vịt nghe sấm vậy, nhưng sau mới sáng tỏ dần nhờ truy ngược những bài học từ đâu "diễn đàn". Do vậy, để hiểu rõ bạn nên nghe lời khuyên của lenongree nên tìm hiểu về mảng trước. Bạn có thể tham khảo link: http://www.mediafire.com/?3u02ppf9f3dvwb9 để tha hồ mà tìm hiểu, đây là kỳ công của ban quản trị trang "Giải Pháp Excel" hiến tặng cho anh chị em muốn tìm hiểu về Excel cơ bản-nâng cao.

Còn giờ, mạn phép lenongree tôi sẽ giải thích cho hai bạn theo kiểu người mới vừa "chạm đến" công thức mảng.

Nghe đến "công thức mảng", các bạn hình dung như là Excel sẽ tạo trong bộ nhớ 1 sheet trắng để làm nháp, cũng có cột có hàng như sheet bình thường, và khi bạn thấy ai đó ghi như: mảng {1,0,1,0,0,1,1,1,1,0}, thì bạn cứ coi như từng thành phần: 1 và 0 sẽ được ghi lên sheet nháp như sau: ô A1 lưu số 1, ô A2 lưu số 0, ô A3 lưu số 1, ô A4 lưu số 0, ô A5 lưu số 0, ô A6 lưu số 1, ô A7 lưu số 1, ô A8 lưu số 1, ô A9 lưu số 1, ô A10 lưu số 0, vậy nha.

Tức là, bất kỳ công thức bạn tạo cũng được Excel "tính nháp" trong bộ nhớ, sau khi đi hết câu lệnh sẽ trả kết quả ra tại vị trí ô bạn lập lệnh.

Trở lại vấn đề chính, bạn yêu cầu "ĐẾM" xem có bao nhiêu mã hàng: "đã loại bỏ trùng lắp""theo từng ngày" và khớp với "ngày quy định" (F3: 02/07 đến M3: 26/07), ta có tất cả: 3 điều kiện (khoan vội đề cập đến a,b,c,d,e nha, cuối cùng sẽ thêm vào)

Công thức của lenongree như sau:
{=SUM(IFERROR(1/COUNTIFS($B$2:$B$20,$B$2:$B$20,$A$2:$A$20,$A$2:$A$20,$A$2:$A$20,F$2),0))}

Then chốt của lệnh là: 1/COUNTIFS($B$2:$B$20,$B$2:$B$20,$A$2:$A$20,$A$2:$A$20,$A$2:$A$20,F$2), mà cấu trúc lệnh: 1/Countif() hoặc 1/Countifs() là 1 trong những ứng dụng của công thức mảng để loại bỏ những giá trị trùng lắp (xem hướng dẫn trong tài liệu theo link trên).

Ta phân "phân số" này là tử số "1" và mẫu số "Countifs()" để phân tích như sau:
*Mẫu số: COUNTIFS($B$2:$B$20,$B$2:$B$20,$A$2:$A$20,$A$2:$A$20,$A$2:$A$20,F$2)
Nó sẽ thi hành từng lệnh 1 như dưới đây:
COUNTIFS($B$2:$B$20,B2,$A$2:$A$20,A2,$A$2:$A$20,F$2)
COUNTIFS($B$2:$B$20,B3,$A$2:$A$20,A3,$A$2:$A$20,F$2)
COUNTIFS($B$2:$B$20,B4,$A$2:$A$20,A4,$A$2:$A$20,F$2)
COUNTIFS($B$2:$B$20,B5,$A$2:$A$20,A5,$A$2:$A$20,F$2)
COUNTIFS($B$2:$B$20,B6,$A$2:$A$20,A6,$A$2:$A$20,F$2)
...................................................................................... tương tự đếnCOUNTIFS($B$2:$B$20,B20,$A$2:$A$20,A20,$A$2:$A$20,F$2)
(bạn có thể thử nhập các công thức này vào ô N2 đến N20 sẽ thấy kết quả tương tự như mảng dưới)Các lệnh này sẽ cho ra kết quả và được lưu trong sheet nháp của bộ nhớ 1 mảng sau:
{2,1,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} (hình dung lưu trong sheet nháp từ A1:A20)
Tức là, mặc dù hàm thì ghi COUNTIFS($B$2:$B$20,$B$2:$B$20....) "$B$2:$B$20" lặp lại 2 lần, nhưng ý nghĩa khác nhau hoàn toàn: vế đầu là vùng (dãy ô) để đếm các mã, vế thứ hai là "tiêu chí"(hay nôm na là điều kiện đếm) để lọc, tiêu chí này là từng ô bắt đầu từ A2 cho đến ô A20 thì hết. Tương tự bạn luận cho ...,$A$2:$A$20,$A$2:$A$20.
Nói chung, bạn ra lệnh cho excel hãy đếm có bao nhiêu mã từ B2:B20 có mã tại B2, tương ứng với cột ngày từ A2:A20 giống số ngày tại ô A2, và giống với "ngày quy định" tại ô F2. Excel sẽ thực thi từng câu lệnh như trên.

Ráp với tử số "1" ta có:
1/COUNTIFS(....) = 1/{2,1,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} (bạn hình dung như ghi thêm vào sheet nháp như sau: B1= 1/A1, B2= 1/A2, B3= 1/A3.........B20= 1/A20)
ta có kết quả ={0.5,1,0.5,1,#DIV0!,#DIV0!,#DIV0!,#DIV0!,#DIV0!,#DIV0!,#DIV0!,#DIV0!,#DIV0!,#DIV0!,#DIV0!,#DIV0!,#DIV0!,#DIV0!,#DIV0!,#DIV0!,}

Để ý rằng "X1450001" có giá trị đếm là 2 tức là có 2 mã "X145001" trong dãy B2:B20 thỏa các điều kiện đã nêu, do đó khi lấy 1 đem chia cho 2 và cộng lại, ta có 1/2 + 1/2 =1
Giả sử thêm, như có 1 mã hàng nào đó có tổng số đếm là 3, tức là có 3 mã trùng nhau, khi đem 1 chia, ta có: 1/3 +1/3 +1/3 = 1; tương tự: có 4 mã hàng thì: 1/4 + 1/4 + 1/4 + 1/4 = 1
Nhờ động thái lấy 1 chia cho tổng số lần xuất hiện rồi cộng lại các thành phần, excel loại bỏ trùng lắp chỉ đếm là 1 mã hàng.
Ráp với IFERROR( 1/COUNTIFS(...) , 0) Iferror(,0) sẽ đổi những giá trị lỗi #DIV0! thành 0, do vậy nó sẽ ra kết quả:
{0.5,1,0.5,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}

Sau cùng ráp với SUM(...) ta có: SUM({0.5,1,0.5,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}) = 3

Đến đây, nếu không tính thêm các điều kiện như a,b,c,d,e, thì bạn có thể hình dung con đường mà câu lệnh đưa ra kết quả, để bạn hiểu được rõ và thực hiện cho những trường hợp tương tự khác mà bạn gặp phải sau này.

Để ráp thêm điều kiện xét theo a,b,c,d,e thì bạn phải hình dung thêm như sau:

Bạn sẽ đồng ý rằng, biểu thức: 1/n/m sẽ bằng 1/(n*m) (vd: 1/2/5/9 sẽ bằng 1/90). Trong công thức mảng cũng vậy bạn sẽ thường thấy điều này xãy ra trong các câu lệnh. Chẳng qua, đây là nối thêm 1 điều kiện vào điều kiện trước đó: hễ toán nhân "*" (n*m) được hiểu là phải thực hiện: điều kiện n điều kiện m (giống AND(n,m) vậy), còn khi sử dụng: n+m được hiểu là thực hiện: điều kiện n HOẶC điều kiện m (giống OR(n.m) vậy).

Đại để giải thích cho bạn câu lệnh, còn bạn nên tiếp tục bằng việc trở ngược lại tìm hiểu "căn cơ" hơn về 'CÔNG THỨC MẢNG" "kỳ quan của thế giới EXCEL". /-*+/

Chúc các bạn ngày vui
 

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

Back
Top Bottom