intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Vận dụng công thức mảng để tính FIFO

Chia sẻ: Nguyen Quy | Ngày: | Loại File: PDF | Số trang:13

211
lượt xem
19
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Thấy ví dụ về cách tính FIFO của chị handung107 quá hay nên post lại cho các bạn tham khảo về cách sử dụng mảng (array). (P/S : Xin lỗi các bạn, vì tôi không tìm thấy File minh họa này ở đâu nữa, nên các bạn cố gắng theo dõi bài viết này - Handung107) Đây là 1 ví dụ xuất sắc về cách sử dụng mảng một cách linh hoạt. Tôi xin mạn phép tác giả post lại đoạn mô tả cách tính FIFO (không phải của tôi, chỉ dịch lại cho các bạn tham khảo thôi. Tôi chỉ...

Chủ đề:
Lưu

Nội dung Text: Vận dụng công thức mảng để tính FIFO

  1. Vận dụng công thức mảng để tính FIFO Thấy ví dụ về cách tính FIFO của chị handung107 quá hay nên post lại cho các bạn tham khảo về cách sử dụng mảng (array). (P/S : Xin lỗi các bạn, vì tôi không tìm thấy File minh họa này ở đâu nữa, nên các bạn cố gắng theo dõi bài viết này - Handung107) Đây là 1 ví dụ xuất sắc về cách sử dụng mảng một cách linh hoạt. Tôi xin mạn phép tác giả post lại đoạn mô tả cách tính FIFO (không phải của tôi, chỉ dịch lại cho các bạn tham khảo thôi. Tôi chỉ thêm phần giải thích cách tính cho thêm khí thế). Tôi biết phần lớn các bạn ở đây đều rất rành về mảng, nhưng sợ một vài bạn mới làm quen với excel chưa biết hết. Vì vậy tôi xin được phép đi cụ thể từng bước một. Giả sử ta có bảng sau: cột 1 là tên Sản phẩm (A), cột 2 là số lượng hàng mua/bán (số âm là bán, số dương là mua). Tạm đặt thên cột này là Q (tương ứng với khối
  2. $B$1:$B$30). Cột 3 là giá mua/bán, đặt tên là P (tương ứng với khối $C$1:$C$30). (Tôi không được phép post file nên không có file cho các bạn tham khảo, tuy nhiên các bạn có thể copy và paste vào trong excel). Dòng đầu tiên bao giờ cũng là số dương (số mua mới hoặc số đầu kỳ). A..... 5..... 1.0 A..... 5..... 1.1 A..... -3..... 1.3 A..... 2...... 1.3 A...... -2.....1.4 A..... 2.....1.2 A..... 4..... 1.3 A..... -3..... 1.6 A..... 4..... 1.4 A..... 2..... 1.4
  3. A..... -2..... 1.6 A..... 1..... 1.2 A..... 3..... 1.7 A..... 3..... 1.2 A..... 1..... 1.4 A..... -5..... 1.3 A..... -4..... 1.8 A..... 3..... 1.8 A..... -3..... 1.9 A..... 5..... 1.4 chúng ta có những công thức như sau: Tại ô D1: nhập số 1 E1: =B1
  4. Chúng ta làm 2 cột trung gian: cột E: Số l ượng hàng tồn kho của đợt hàng lâu nhất (cái thằng First in ấy). Cột D: vị trí của số hàng tồn kho lâu nhất, ví dụ: tại dòng số 6, do đã tiêu thụ hết số hàng nhập về lần đầu tiên (5 cái), nên số hàng tồn kho lâu nhất sẽ là dòng số 2. Để tính các cột D, E, ta nhập các công thức sau: Tôi giả sử đang ở dòng số 6, ta nhập: Cột D (trừ ô D1 đã nhập số 1): nhớ đây là công thức mảng nhé. Bạn nhớ nhấn tổ hợp Ctrl+Shift+Enter. {=MATCH(TRUE,MMULT(--(ROW(Q)>=TRANSPOSE(ROW(Q))),(Q>0)*Q) +SUMIF(OFFSET( Q,0,0,ROW()-1,1),"
  5. 2. Khối SUMIF(OFFSET(Q,0,0,ROW()-1,1),"
  6. 2 0 0 4 2 0 1 3 3 1 0 0 3 0 5
  7. Tôi gọi là mảng 1 Thứ tư: Hàm MMULT: hàm này ít ai xài, nhưng nếu kết hợp với các hàm về mảng khác lại cho kết quả rất tốt. Đây là hàm tính tổng của hàng nhân với cột. Ráp vào MMULT(--(ROW(Q)>=TRANSPOSE(ROW(Q))),(Q>0)*Q), ta có phép tính sau: 5 10 10 12 12 14 14 14 18 20
  8. 20 21 24 27 28 28 28 31 31 36 Ví dụ tại ô D6, phép tính sẽ là: 1*5+1*5+1*0+1*2+1*0+1*2=14 Tôi gọi là mảng 2 3. Tổng số của MMULT và SUMIF: như đã nói trên, SUMIF đóng vai trò 1 hằng số. Kết hợp mảng MMULT và hàm SUMIF (tại ô D6), ta có 0
  9. 5 5 7 7 9 9 9 13 15 15 16 19 22 23 23
  10. 23 26 26 31 Tôi gọi là mảng 3 Ví dụ: tại ô D6, phép tính sẽ là 14 (của MMULT) - 5 (hằng số từ SUMIF) = 9 4. Mọi việc đơn giản rồi!! Điều kiện MMULT+SUMIF>0 sẽ cho ra một mảng nh ư sau FALSE TRUE TRUE TRUE TRUE TRUE TRUE
  11. TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE Trong mảng trên, False đại diện cho các dòng đã xuất hết kho, "True" nghĩa là hàng hóa hãy còn tồn kho.
  12. Tôi gọi là mảng 4 5. Cuối cùng ta dùng hàm match (các bạn chắc rành hàm này lắm rồi, nói kỹ quá người ta cười rụng răng): dùng để xác định vị trí "TRUE" đầu tiên trong mảng 4. Ở đây, ta thấy vị trí của TRUE trong mảng 4 l à vị trí số 2 (dòng số 2). Về ý nghĩa kinh tế, đây là bước dò tìm trong khối Q xem đâu là dòng "First In" đầu tiên. Bạn copy công thức mảng trên vào toàn bộ khối từ D2:D30 Sau khi xác định được đâu là vị trí của dòng "First In", ta sang cột E E2: =IF(D2=D1,E1+MIN(0,B1),SUMIF(OFFSET(Q,0,0,D2,1),"> 0") +SUMIF(OFFSET(Q,0,0,ROW()-1,1),"
  13. =IF(B2=0,-B2*INDEX(P,D2),E2*INDEX(P,D2)+(INDEX(Q,D3)- E3) *INDEX(P,D3)+IF(D3-D2>1,SUMPRODUCT(--(OFFSET(Q,D2,0,D3-D2- 1,1)>0) ,OFFSET(Q,D2,0,D3-D2-1,1),OFFSET(P,D2,0,D3-D2-1,1)),0)),"") Ở đây tôi không muốn mất thời gian các bạn để giải thích những công thức b ình thường. Chỉ xin lưu ý cách sử dụng hàm SUMPRODUCT cho mảng thôi. Bạn lại thấy hai dấu trừ (để convert giá trị logic về 0 hoặc 1), mục đích để loại bỏ những số âm trong mảng. Như vậy cách sử dụng hàm SUMPRODUCT nhằm mục đích tính tổng giá của lô hàng mua GIỮA hai giá trị D2 và D3. Giải thích nhiều rườm tai các bạn, nên tôi xin không đi sâu vào chi tiết. Bạn nào thấy "bối rối" thì ới lên một tiếng nghe.
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2