tieuthubuongbinh
Học hoài vẫn dốt
- Tham gia
- 3/9/08
- Bài viết
- 566
- Được thích
- 381
- Giới tính
- Nữ
BạnCha`o ACE,
Nho* ACE giu'p CT sumproduct cho o^C13
C13=OFFSET($A$4,MATCH($B13,$A$5:$A$8,),MATCH(C$12,$B$4:$M$4,))*OFFSET($A$4,MATCH($B13,$A$5:$A$8,),MATCH($A13,$B$4:$M$4,))
Góp thêm 2 công thức nữa với em, để chủ topic tham khảo cho vui:Bạn
CT này ở C13 xem:
Fill sang phải, fill xuống!!!Mã:C13=OFFSET($A$4,MATCH($B13,$A$5:$A$8,),MATCH(C$12,$B$4:$M$4,))*OFFSET($A$4,MATCH($B13,$A$5:$A$8,),MATCH($A13,$B$4:$M$4,))
C13=SUMPRODUCT(MAX(($A$5:$A$8=$B13)*($B$4:$G$4=$A13)*$B$5:$G$8),MAX(($A$5:$A$8=$B13)*($I$4:$M$4=C$12)*($I$5:$M$8)))
C13=VLOOKUP($B13,$A$5:$G$8,MATCH($A13,$A$4:$G$4,0),0)*HLOOKUP(C$12,$I$4:$M$8,MATCH($B13,$A$4:$A$8,0),0)
Cha`o ACE,
Nho* ACE giu'p CT sumproduct cho o^C13
=SUMPRODUCT(($A$5:$A$8=$B13)*($B$4:$G$4=$A13)*($B$5:$G$8))*SUMPRODUCT(($A$5:$A$8=$B13)*($I$4:$M$4=C$12)*($I$5:$M$8))
Góp thêm 2 công thức nữa với em, để chủ topic tham khảo cho vui:
Mã:C13=SUMPRODUCT(MAX(($A$5:$A$8=$B13)*($B$4:$G$4=$A13)*$B$5:$G$8),MAX(($A$5:$A$8=$B13)*($I$4:$M$4=C$12)*($I$5:$M$8)))
Mã:C13=VLOOKUP($B13,$A$5:$G$8,MATCH($A13,$A$4:$G$4,0),0)*HLOOKUP(C$12,$I$4:$M$8,MATCH($B13,$A$4:$A$8,0),0)
Bạn xem file kèm tôi đã gom hết các công thức phía trân vào chung một sheet cho bạn dễ tham khảo.Em bị báo lỗi khi sd sumproduct, lỗi này là sao ạ?
Em dùng cho file giả lập thì được nhưng đưa vào file thật rất nhiều cột và có cột trống như file đính kèm (N4 là cột trống do có tháng ngày trải dài trong 6 tuần - row 3 là số ngày sales trong tuần, row 4 là số tuần trong năm, nên số tuần này có thể bị lập lại như M4 và O4, em để cột trống để tạo range luôn là 6 cột cho 1 tháng để khi kéo CT không phải chỉnh lại).
Em không dùng Vlookup được vì file thật phần % nó cách rất xa với cột có giá trị dò tìm (em add thêm B4 many cols để diễn tả việc phần data nó cách mấy chục cột so với A4
Hàm offset em chưa rành lắm nên không hiểu cách sd, do file thật còn nhiều cột chèn giữa nên em không biết cách dùng
Excel ran out of resources while attempting to calculate one or more formulars. As a result, these formulars cannot be evaluated
Em bị báo lỗi khi sd sumproduct, lỗi này là sao ạ?
Em dùng cho file giả lập thì được nhưng đưa vào file thật rất nhiều cột và có cột trống như file đính kèm (N4 là cột trống do có tháng ngày trải dài trong 6 tuần - row 3 là số ngày sales trong tuần, row 4 là số tuần trong năm, nên số tuần này có thể bị lập lại như M4 và O4, em để cột trống để tạo range luôn là 6 cột cho 1 tháng để khi kéo CT không phải chỉnh lại).
Em không dùng Vlookup được vì file thật phần % nó cách rất xa với cột có giá trị dò tìm (em add thêm B4 many cols để diễn tả việc phần data nó cách mấy chục cột so với A4
Hàm offset em chưa rành lắm nên không hiểu cách sd, do file thật còn nhiều cột chèn giữa nên em không biết cách dùng
Excel ran out of resources while attempting to calculate one or more formulars. As a result, these formulars cannot be evaluated
Chào tieuthubuongbinh,...............
Em dùng cho file giả lập thì được nhưng đưa vào file thật rất nhiều cột và có cột trống như file đính kèm (N4 là cột trống do có tháng ngày trải dài trong 6 tuần - row 3 là số ngày sales trong tuần, row 4 là số tuần trong năm, nên số tuần này có thể bị lập lại như M4 và O4, em để cột trống để tạo range luôn là 6 cột cho 1 tháng để khi kéo CT không phải chỉnh lại).......
Góp thêm 2 công thức nữa với em, để chủ topic tham khảo cho vui:
Mã:C13=SUMPRODUCT(MAX(($A$5:$A$8=$B13)*($B$4:$G$4=$A13)*$B$5:$G$8),MAX(($A$5:$A$8=$B13)*($I$4:$M$4=C$12)*($I$5:$M$8)))
Mã:C13=VLOOKUP($B13,$A$5:$G$8,MATCH($A13,$A$4:$G$4,0),0)*HLOOKUP(C$12,$I$4:$M$8,MATCH($B13,$A$4:$A$8,0),0)
Chúc em ngày vui.
Chào tieuthubuongbinh,
Tôi có chút gợi ý cho bạn để bạn dễ thực hiện và tổng kết hơn:
1. Tạo 2 sheet chứa các bảng điều kiện
2. Chỉ cần thay đổi tháng thì công thức tự động truy tìm ra kết quả theo tháng.
Bạn tham khảo file kèm tôi sử dụng theo công thức của Anh Ba Tê.
Chúc bạn ngày vui.
Chào tieuthubuongbinh,Cám ơn bác. Nhưng em đổi tháng thì row 2 không thay đổi, bác cài giúp em luôn với ạ
Em vẫn chưa áp dụng vào file thật được vì dữ liệu thật phức tạp về cột và cách trình bày không cho phép tách sheet nhưng em đã học được cách xử lý mới, cám ơn các bác rất nhiều
Chào tieuthubuongbinh,Chào các bác,
Em có file đang dung sumproduct cho nhiều sheet, nhờ các bác tạo giúp em CT sao cho
1/ tự tìm sheet theo cột B.
Vd: D6=SUMPRODUCT(A!$M$6:$M$12*A!U$6:U$12*(A!$A$6:$A$12=$C6)) nó sẽ hiểu lấy tên sheet từ B6, D18 lấy tên sheet từ B18
2/ tự tìm array theo cột A.
Vd: D6=SUMPRODUCT(A!$M$6:$M$12*A!U$6:U$12*(A!$A$6:$A$12=$C6)) nó sẽ hiểu tìm cột trong mảng M5:R12 ở các sheet tương ứng với A6
(File that của em đến 3000 dòng và 10 mấy sheet)
Em nghĩ dung offset kết hợp indirect hay sao nhỉ? Em làm tạm sumproduct nhưng vẫn chưa là tối ưu, nhờ các bác giúp với ạ
Dùng indirect kết hợp với offset, bạn dùng CT này ở D6:Chào các bác,
Em có file đang dung sumproduct cho nhiều sheet, nhờ các bác tạo giúp em CT sao cho
1/ tự tìm sheet theo cột B.
Vd: D6=SUMPRODUCT(A!$M$6:$M$12*A!U$6:U$12*(A!$A$6:$A$12=$C6)) nó sẽ hiểu lấy tên sheet từ B6, D18 lấy tên sheet từ B18
2/ tự tìm array theo cột A.
Vd: D6=SUMPRODUCT(A!$M$6:$M$12*A!U$6:U$12*(A!$A$6:$A$12=$C6)) nó sẽ hiểu tìm cột trong mảng M5:R12 ở các sheet tương ứng với A6
(File that của em đến 3000 dòng và 10 mấy sheet)
Em nghĩ dung offset kết hợp indirect hay sao nhỉ? Em làm tạm sumproduct nhưng vẫn chưa là tối ưu, nhờ các bác giúp với ạ
D6=SUMPRODUCT(OFFSET(INDIRECT($B6&"!$M$6:$M$12"),,MATCH($A6,A!$M$5:$R$5,)-1)*OFFSET(INDIRECT($B6&"!U$6:U$12"),,COLUMNS($A1:A1)-1)*(INDIRECT($B6&"!$A$6:$A$12")=$C6))
Chào tieuthubuongbinh,
Đúng như bạn nghĩ là phải dùng thêm hàm kết hợp, nhưng là Indirect() hoặc Address().
Giải pháp trong file kèm là dùng 3 Name: VungA612, VungM612, VungU612 tạo vùng động biến thiên theo cột B và cột C như bạn yêu cầu.
Bạn tham khảo file kèm nha.
Chúc bạn ngày vui.
Dùng indirect kết hợp với offset, bạn dùng CT này ở D6:
Fill sang phải rồi fill xuống!!!Mã:D6=SUMPRODUCT(OFFSET(INDIRECT($B6&"!$M$6:$M$12"),,MATCH($A6,A!$M$5:$R$5,)-1)*OFFSET(INDIRECT($B6&"!U$6:U$12"),,COLUMNS($A1:A1)-1)*(INDIRECT($B6&"!$A$6:$A$12")=$C6))
3000*10=30,000 dòng => xài vba cho lẹ.(File that của em đến 3000 dòng và 10 mấy sheet)
mình không biết tí gì về VBA. Đúng là file của mình lên đến 12MB chạy rất chậm.3000*10=30,000 dòng => xài vba cho lẹ.
p/s: Bạn này thả dấu kiểu VNI hay bị rớt dấu...