Nhờ anh chị giúp tính tổng có điều kiện (1 người xem)

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

chickenexcel

Thành viên hoạt động
Tham gia
24/8/12
Bài viết
154
Được thích
28
Giới tính
Nam
Em nhờ các bác giúp đặt công thức tính tổng tiền của từng khách hàng
Em gửi file các bác xem giúp
Em có nghĩ đến hàm istext để xác định tên khách hàng (cột A) làm căn cứ nhưng chưa biết cách nào để ngắt từng đơn khách hàng để tính tổng mỗi đơn tự động cả, nhờ các bác tư vấn giúp ạ!
Thank cả nhà!
 

File đính kèm

Em nhờ các bác giúp đặt công thức tính tổng tiền của từng khách hàng
Em gửi file các bác xem giúp
Em có nghĩ đến hàm istext để xác định tên khách hàng (cột A) làm căn cứ nhưng chưa biết cách nào để ngắt từng đơn khách hàng để tính tổng mỗi đơn tự động cả, nhờ các bác tư vấn giúp ạ!
Thank cả nhà!
bạn nên tạo 1 cột phụ để dò
 
Em nhờ các bác giúp đặt công thức tính tổng tiền của từng khách hàng
Em gửi file các bác xem giúp
Em có nghĩ đến hàm istext để xác định tên khách hàng (cột A) làm căn cứ nhưng chưa biết cách nào để ngắt từng đơn khách hàng để tính tổng mỗi đơn tự động cả, nhờ các bác tư vấn giúp ạ!
Thank cả nhà!
Mã:
B2 =IF(A2="","",SUM(OFFSET(F2,,,INDEX(MATCH(TRUE,(C2:$C$16=""),0),)-1)))
copy xuống
 
Công thức này hay nhưng ...hơi nguy hiểm, [C16] nằm ngoài bảng, nếu lỡ có dữ liệu thì ...
Bài dạng này thầy Ndu có viết công thức rất hay và ngắn
Thân
 
Công thức này hay nhưng ...hơi nguy hiểm, [C16] nằm ngoài bảng, nếu lỡ có dữ liệu thì ...
Bài dạng này thầy Ndu có viết công thức rất hay và ngắn
Thân
híc em ngồi mò cả tiếng, anh gửi em bài đó để tham khảo được không ạ.
 
Hi cách của anh nếu ở dưới không có dữ liệu thì :p
Hihi, mình nói công thức này của thầy Ndu, không phải của mình, khi viết thầy ấy cũng cảnh báo khi nhập xong dữ liệu rồi thì kéo công thức (cái này mình "wên", "xó- dì" bạn). HÍc
Thân
 
Hihi, mình nói công thức này của thầy Ndu, không phải của mình, khi viết thầy ấy cũng cảnh báo khi nhập xong dữ liệu rồi thì kéo công thức (cái này mình "wên", "xó- dì" bạn). HÍc
Thân
dạ cách này nhanh gọn nếu có dữ liệu thì được ạ, mọi cách đều giúp đầu óc nhạy hơn ^^
 
dạ em cũng vừa tìm ra, em thắc mắc khi dùng giống anh thì nó lỗi toàn bộ, còn nhấn f9 thì được
=IF(B2="","",SUM(INDIRECT("F"&ROW()&":F"&ROW()-1+MATCH(1,($C$2:$C$16=""),0))))
($C$2:$C$16="") là biểu thức luận lý trả về true và false, nên Match(1,....) sẽ bị lỗi, cần phải qui về cùng 1 dạng là true hết hay là số 1, hàm Match cho mảng nên phải Ctrl+Shif+Enter, hoặc dùng thêm hàm Index
 
($C$2:$C$16="") là biểu thức luận lý trả về true và false, nên Match(1,....) sẽ bị lỗi, cần phải qui về cùng 1 dạng là true hết hay là số 1, hàm Match cho mảng nên phải Ctrl+Shif+Enter, hoặc dùng thêm hàm Index
hi vậy mới nói đầu óc chưa linh hoạt ^^
 
Hình như thế này:

Thân
Loại này thường người ta hay copy ngược từ dưới lên:
Ô B13:
Mã:
=IF(A13="","",SUM(F13:$F$15)-SUM(B14:$B$15))

Ngoài ra, một công thức khác không dùng OFFSET mà dùng INDEX(CELL1:INDEX(...) để tham chiếu vùng động:

Mã:
=IF(A2="","",SUM(INDEX(F2:INDEX(F2:$F$15,MATCH(TRUE,INDEX(C2:$C$15="",),0)-1,),)))
 
Loại này thường người ta hay copy ngược từ dưới lên:
Ô B13:
Mã:
=IF(A13="","",SUM(F13:$F$15)-SUM(B14:$B$15))

Ngoài ra, một công thức khác không dùng OFFSET mà dùng INDEX(CELL1:INDEX(...) để tham chiếu vùng động:

Mã:
=IF(A2="","",SUM(INDEX(F2:INDEX(F2:$F$15,MATCH(TRUE,INDEX(C2:$C$15="",),0)-1,),)))
tham chiếu vùng động có nhiều cách, dùng INDEX(CELL1:INDEX(...)) thì hàm INDEX bên trái không cần thiết, chỉ cần (CELL1:CELL2) là đủ, CELL1 và CELL2 tùy trường hợp có thể dùng hàng loạt hàm khác nhau để tùy biến vùng tham chiếu
 
Em xin cảm ơn cả nhà đã nhiệt tình giúp đỡ, mỗi bác lại có 1 công thức # nhau, mỗi cái đều có ưu và nhược riêng, có một số hàm như Offset hay index em chưa học được nên sẽ ngâm cứu từng công thức của mỗi bác, từ đó lựa chọn cho 1 mình công thức phù hợp với công việc.
Chúc các bác ngày mới vui vẻ cùng GPE ạ! :)
 
Được thể "có voi đòi tiên" cho em hỏi VD với công thức của anh HieuCD ở #3, nếu như em nhập dữ liệu liền, có nghĩa là không có dòng trống giữa các đơn hàng (dòng 6, dòng 12) thì có cách nào tính được không ạ o_O
 
Được thể "có voi đòi tiên" cho em hỏi VD với công thức của anh HieuCD ở #3, nếu như em nhập dữ liệu liền, có nghĩa là không có dòng trống giữa các đơn hàng (dòng 6, dòng 12) thì có cách nào tính được không ạ o_O
Cái này là có "voi đòi Hai Bà Trưng" nè!

Nghỉ ngơi ăn trưa rồi tiếp.
:)
 
Được thể "có voi đòi tiên" cho em hỏi VD với công thức của anh HieuCD ở #3, nếu như em nhập dữ liệu liền, có nghĩa là không có dòng trống giữa các đơn hàng (dòng 6, dòng 12) thì có cách nào tính được không ạ o_O
có lẽ là được, mình nghĩ tới istext khà khà
 
tham chiếu vùng động có nhiều cách, dùng INDEX(CELL1:INDEX(...)) thì hàm INDEX bên trái không cần thiết, chỉ cần (CELL1:CELL2) là đủ, CELL1 và CELL2 tùy trường hợp có thể dùng hàng loạt hàm khác nhau để tùy biến vùng tham chiếu
anh rảnh chỉ em hàm index rồi cell tác dụng thế nào ạ
 
Được thể "có voi đòi tiên" cho em hỏi VD với công thức của anh HieuCD ở #3, nếu như em nhập dữ liệu liền, có nghĩa là không có dòng trống giữa các đơn hàng (dòng 6, dòng 12) thì có cách nào tính được không ạ o_O
Vậy thì chơi vầy:
Mã:
B2=IF(A2="","",SUMPRODUCT((COUNTIF(OFFSET($A$2,,,ROW($1:$14)),"<>")=COUNTIF($A$2:A2,"<>"))*$F$2:$F$15))
Enter fill xuống.

Hoặc không thì theo đúng bài của bạn hiền HieuCD, thay đổi chút:
Mã:
B2=IF(A2="","",SUM(OFFSET(F2,,,IFERROR(MATCH(TRUE,INDEX(A3:$A$16<>"",),),LOOKUP(2,1/(C3:$C$16=""),ROW(2:$15)-ROW()+1)))))
Enter fill xuống.

Chúc anh em ngày vui.
 
Lần chỉnh sửa cuối:
thực sự hàm bác ảo diệu thật, em xem mà ... chẳng hiều gì o_O, file test em up lên thì ok nhưng file em làm áp dụng vào bị lỗi value :(, nhờ bác xem giúp em sai chỗ nào với ạ (cột F)
 

File đính kèm

thực sự hàm bác ảo diệu thật, em xem mà ... chẳng hiều gì o_O, file test em up lên thì ok nhưng file em làm áp dụng vào bị lỗi value :(, nhờ bác xem giúp em sai chỗ nào với ạ (cột F)
Bạn chỉnh công thức cột N: N8=IFERROR((K8*M8),0) Fill xuống

F8=IF(E8="","",SUMPRODUCT((COUNTIF(OFFSET($E$8,,,ROW($1:$792)),"<>")=COUNTIF($E$8:E8,"<>"))*$N$8:$N$799)) Enter fill xuống

(Phải có sự tương xứng số dòng: 8:799 = 1:792)

Chúc bạn ngày vui.
 

File đính kèm

Lần chỉnh sửa cuối:
Dạ công thức của anh concogia cũng rất hay nhưng nó chỉ áp dụng khi bảng tính được hoàn thiện thôi ạ,do em phải tạo from cho người không biết gì về Excel (chỉ nhập liệu o_O) nên phải cân nhắc các công thức để tránh họ làm nhầm lẫn, hỏng số liệu
Một lần nữa chân thành cảm ơn cả nhà!:)
 
Được thể "có voi đòi tiên" cho em hỏi VD với công thức của anh HieuCD ở #3, nếu như em nhập dữ liệu liền, có nghĩa là không có dòng trống giữa các đơn hàng (dòng 6, dòng 12) thì có cách nào tính được không ạ o_O
anh rảnh chỉ em hàm index rồi cell tác dụng thế nào ạ
nếu dùng cấu trúc (cell1,cell2)
Mã:
F8 =IF(E8="","",SUM((N8:INDEX(N8:$N$796,IFERROR(MATCH("*",E9:$E$796,0),ROWS(E9:$E$796)),))))
trong đó cell1 là N8, còn cell2 là index(...) dĩ nhiên thay index bằng offset cũng được

nếu dùng Offset thì gọn hơn
Mã:
F8=IF(E8="","",SUM(OFFSET(N8,,,IFERROR(MATCH("*",E9:$E$796,0),ROWS(E9:$E$796)),)))
 
nếu dùng cấu trúc (cell1,cell2)
Mã:
F8 =IF(E8="","",SUM((N8:INDEX(N8:$N$796,IFERROR(MATCH("*",E9:$E$796,0),ROWS(E9:$E$796)),))))
trong đó cell1 là N8, còn cell2 là index(...) dĩ nhiên thay index bằng offset cũng được

nếu dùng Offset thì gọn hơn
Mã:
F8=IF(E8="","",SUM(OFFSET(N8,,,IFERROR(MATCH("*",E9:$E$796,0),ROWS(E9:$E$796)),)))
em đang làm cái validation tí mò cái này :D
 

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

Back
Top Bottom