Nhập xuất tồn kho bằng Power query (1 người xem)

Liên hệ QC

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

Hoàng Nhật Phương

Thành viên gắn bó
Tham gia
5/11/15
Bài viết
1,895
Được thích
1,219
Công việc của tôi ít có phải sử dụng Dic nên không kinh nghiệm mấy. Tôi có thử sử dụng Power query Table.Pivot, chắc chậm hơn code của anh, và chưa biết 500 ngàn dòng của tác giả chạy sẽ chậm đến mức nào

Tạo danh mục kho để làm tham số cho hàm Table.Pivot, kết quả ở sheet Query:
PHP:
let
    Source = Excel.CurrentWorkbook(){[Name="Table2"]}[Content],
    RemovedColumns = Table.RemoveColumns(Source,{"SL_Hang_Dat_Mua", "SL_Dang_Tren_Duong_Ve",  "UnitId", "Ma_Kich_Thuoc", "Ma_Kieu_Dang", "SL_Thuc_Co",
        "SL_Dat_Truoc_Cho_Khach", "Ma_Hang", "Ma_Con", "Ma_Mau", "Ten_Cua_Hang", "Ma_Vi_Tri_Trong_Kho", "Ma_Thung_Hang", "Trang_Thai_Ma_Hang",
        "BarCode", "Ma_Khu_Vuc", "Ten_Khu_Vuc"}),
    ReorderColumns = Table.ReorderColumns(RemovedColumns,{"GROUPBRANDS", "BRAND", "THEME",   "MA_VT", "Ten_Hang","Gia_Le","Ma_Kho", "SL_Hang_Co_The_Dat_Duoc"}),
    RenamedColumns = Table.RenameColumns(ReorderColumns,{{"SL_Hang_Co_The_Dat_Duoc", "SL"}}),
    PivotData = Table.Pivot(RenamedColumns,List.Buffer(DMKho[Kho]),"Ma_Kho","SL",List.Sum)
in
    PivotData
Con thấy chú Mỹ & bạn @excel_lv1.5 sử dụng cái món "Power query" này rất cao siêu.
Vậy chú cho con tham khảo thêm cách dùng "Power query" ở bài này với ạ:

 
Vậy chú cho con tham khảo thêm cách dùng "Power query" ở bài này với ạ:
Có sẵn đây thôi nhập xuất tồn bằng power query
 
Cảm ơn chú Mỹ.
Con vừa xem và thấy dữ liệu mẫu đó của chú Mỹ không giống với CSDL dữ liệu của con.
Dữ liệu của con chia làm nhiều Bảng & nhiều điều kiện hơn chú ạ.
Quan trọng là cách làm và thuật toán. Định học hay định nhờ làm từ A đến Z?
 
Quan trọng là cách làm và thuật toán. Định học hay định nhờ làm từ A đến Z?
Dạ chú, con cũng không sử dụng phương pháp này file dữ liệu của con mà con đang sử dụng phương pháp SQL hoặc VBA (nếu câu lệnh truy vấn SQL nó quá phức tạp) ạ.
Chỉ là ngẫu hứng nên con cũng muốn xem với "PQ" thì nó sẽ như thế nào chú ạ, nếu chú có thời gian hứng thú thì chú làm thử giúp con trong chủ đề đó với ạ, khi có nhu cầu con hoặc bạn khác có thể tham khảo, còn hiện tại con chưa dùng đến cách này ạ.
Cảm ơn chú Mỹ ạ.
 
Dạ chú, con cũng không sử dụng phương pháp này file dữ liệu của con mà con đang sử dụng phương pháp SQL hoặc VBA (nếu câu lệnh truy vấn SQL nó quá phức tạp) ạ.
Chỉ là ngẫu hứng nên con cũng muốn xem với "PQ" thì nó sẽ như thế nào chú ạ, nếu chú có thời gian hứng thú thì chú làm thử giúp con trong chủ đề đó với ạ, khi có nhu cầu con hoặc bạn khác có thể tham khảo, còn hiện tại con chưa dùng đến cách này ạ.
Cảm ơn chú Mỹ ạ.
Tôi tưởng đang bí cách làm và cần ngay, đang định xiêu lòng (mặc dù mang danh chết tiệt), nhưng chưa cần thì thôi vậy
 
OT xin gửi dữ liệu bài trên để nhờ các bạn xem và giúp đỡ ạ:
Dữ liệu sai và không hợp lý:
- Loại 3 là chuyển kho thì phải có kho xuất và kho nhận nhưng có 6 dòng loại 3 không có kho nhận. Kết quả giải bằng SQL không phát hiện nên bỏ sót.
- Bảng số dư theo tháng nhưng không liên tục: thiếu số dư tháng 7
- Các bảng số dư theo tháng không có tính kế thừa: Tháng 5 còn tồn, tháng 6 không xuất chuyển gì mà số dư tháng 6 giảm hoặc biến mất. Hoặc mặt hàng không nhập gì mà số dư tăng lên. Số dư các tháng kế cũng vậy
Do đó giải bằng cách nào cũng ra báo cáo sai.
 
Chưa xiêu nhưng mới xem hết file dữ liệu thôi hả anh. :p
Ngứa tay ngứa mắt ấy mà. Giờ đang thất nghiệp, hồi còn làm thì phải phân tích thiết kế cái chưa có, phân tích dữ liệu đã có, phân tích phương pháp tạo báo cáo, rồi còn phân tích đúng sai của báo cáo. Báo cáo phải biết đúng/ sai, nhiều khi sai tè le nhưng người dùng không biết do dữ liệu quá nhiều.
 
Dữ liệu sai và không hợp lý:
- Loại 3 là chuyển kho thì phải có kho xuất và kho nhận nhưng có 6 dòng loại 3 không có kho nhận. Kết quả giải bằng SQL không phát hiện nên bỏ sót.
- Bảng số dư theo tháng nhưng không liên tục: thiếu số dư tháng 7
- Các bảng số dư theo tháng không có tính kế thừa: Tháng 5 còn tồn, tháng 6 không xuất chuyển gì mà số dư tháng 6 giảm hoặc biến mất. Hoặc mặt hàng không nhập gì mà số dư tăng lên. Số dư các tháng kế cũng vậy
Do đó giải bằng cách nào cũng ra báo cáo sai.
Con chào chú Mỹ,
Cảm ơn chú đã quan tâm đến vấn đề của con ạ.
Dữ liệu thì có lấy từ hệ thống về nó có như thế nào thì con đưa lên như vậy thôi chú.
Còn số sai và không liên tục thì đúng là có thể sảy xa ạ,bởi vì hệ thống cũng mới nên mọi người sử dụng cũng chưa quen chú ạ do đó mà cty vẫn sử dụng song song hai hệ thống, nhưng vấn đề của con là hướng xử lý ạ.
Với lại dữ liệu này từ dòng 3 con quên chưa kéo công thức từ dòng 2 xuống chú ạ.
Con cảm ơn chú Mỹ nhiều ạ
 
May mà chưa xiêu lòng. Dữ liệu ẹ quá ra báo cáo sai, mang tiếng chết
Con chào chú Mỹ,
Cảm ơn chú đã quan tâm đến vấn đề của con ạ, dữ liệu sai đúng là có thể dễ xảy ra lắm vì đây là hệ thống mới cty con đang đưa vào sử dụng (con đã thông tin trong chủ đề kia) chính vì vậy con cần lấy dữ liệu từ hệ thống về để làm báo cáo kiểm soát chênh lệch đee xử lý kịp thời chú ạ.
 
Với lại dữ liệu này từ dòng 3 con quên chưa kéo công thức từ dòng 2 xuống chú ạ.
Làm gì có dòng nào chứa công thức?
Cách xử lý là phải xử lý từ gốc dữ liệu. Ra excel là phải chuẩn. Không chỉ chuẩn về cấu trúc, mà còn phải chuẩn về ràng buộc quan hệ, ràng buộc mandatory (trường bắt buộc nhập), ràng buộc về quy trình (mỗi tháng phải có 1 lần kiểm kê điều chỉnh), ràng buộc về tính liên tục và kế thừa.
 
Làm gì có dòng nào chứa công thức?
Cách xử lý là phải xử lý từ gốc dữ liệu. Ra excel là phải chuẩn. Không chỉ chuẩn về cấu trúc, mà còn phải chuẩn về ràng buộc quan hệ, ràng buộc mandatory (trường bắt buộc nhập), ràng buộc về quy trình (mỗi tháng phải có 1 lần kiểm kê điều chỉnh), ràng buộc về tính liên tục và kế thừa.
Dạ trong sheet "Ket qua" vùng "c2:I2" là công thức hay sao ấy ạ chú Mỹ, con không ngồi máy nên con không xem được mà con chỉ xem qua ảnh và nhớ chỗ đó chú ạ
Con cảm ơn chú Mỹ
 
Dạ trong sheet "Ket qua" vùng "c2:I2" là công thức hay sao ấy ạ chú Mỹ, con không ngồi máy nên con không xem được mà con chỉ xem qua ảnh và nhớ chỗ đó chú ạ
Con cảm ơn chú Mỹ
Công thức khỉ gì. Không có "hay sao" "hay giăng" gì sất. Đừng nói là đưa nhầm file, tốn công tôi phân tích rồi vứt bỏ
À mà tôi phân tích tìm ra cái sai của dữ liệu, chứ kết quả chỉ xem mặt mũi thôi, chưa kiểm chứng. Chỉ biết rằng bất kỳ kết quả nào dựa trên dữ liệu sai thì sẽ sai.
 
Lần chỉnh sửa cuối:
Công thức khỉ gì. Không có "hay sao" "hay giăng" gì sất. Đừng nói là đưa nhầm file, tốn công tôi phân tích rồi vứt bỏ
À mà tôi phân tích tìm ra cái sai của dữ liệu, chứ kết quả chỉ xem mặt mũi thôi, chưa kiểm chứng. Chỉ biết rằng bất kỳ kết quả nào dựa trên dữ liệu sai thì sẽ sai.
Để khi nào con ngồi máy con xem laik file này ạ, vì con cũng đưa lên khá lâu rồi nên không nhớ rõ, có thể công thức nhiều quá nặng file còn pase nhầm value hết ạ.
 
Để khi nào con ngồi máy con xem laik file này ạ, vì con cũng đưa lên khá lâu rồi nên không nhớ rõ, có thể công thức nhiều quá nặng file còn pase nhầm value hết ạ.
Công thức sai thì paste value cũng sai, Công thức đúng mà dữ liệu sai thì paste value cũng sai. Xem làm gì nữa. Cái cần xem và lấy lại cho đúng là 2 bảng dữ liệu: tồn và nhập xuất
 
Công thức sai thì paste value cũng sai, Công thức đúng mà dữ liệu sai thì paste value cũng sai. Xem làm gì nữa. Cái cần xem và lấy lại cho đúng là 2 bảng dữ liệu: tồn và nhập xuất
Dạ vâng chú,
Vậy sang tuẩn con sẽ lấy lại Data mới nhất về ạ. Hiện con đang từ Hà Nội đi chùa ở Nghệ An mà đường xa quá ạ.
Cảm ơn chú Mỹ.
 
Tiện thể đi chùa thì sau khi đảnh lễ cúng dường chư Phật và Bồ Tát xong, đừng xin hộ trì tiền bạc mà hãy cầu xin ban cho trí huệ, đặng đọc thông kinh tạng, thứ nữa đọc hiểu bài lão chết tiệt. Chứ qua chục bài rồi mà chỗ sai không đọc không hiểu không xem, cứ đòi xem lại kết quả hoài.
 
Làm gì có dòng nào chứa công thức?
Cách xử lý là phải xử lý từ gốc dữ liệu. Ra excel là phải chuẩn. Không chỉ chuẩn về cấu trúc, mà còn phải chuẩn về ràng buộc quan hệ, ràng buộc mandatory (trường bắt buộc nhập), ràng buộc về quy trình (mỗi tháng phải có 1 lần kiểm kê điều chỉnh), ràng buộc về tính liên tục và kế thừa.
Con chào chú Mỹ,
Con cảm ơn chú đã quan tâm đến dữ liệu con gửi ạ.
Chú tải file bài nào đó ạ, con vừa tải về xem thấy có công thức mà chú Mỹ:
1608392265503.png
 
Tôi tải từ Mediafire Nhưng công thức đó có quan trọng không nêu dữ liệu sai? Và nếu công thức cũng sai?
Ơ công thức sai ạ chú Mỹ,
Con làm theo nhu cầu cần & so sánh của đồng nghiệp lúc đấy thôi ạ chứ thực sự con cũng không phân tích đúng sai thế nào ạ.
Còn về dữ liệu nhập suất có thể chênh lệch trong quá trình thì hoàn toàn có thể xảy ra vì do hệ thống mới mọi người chưa thao tác quen nên mới cần tríc xuất ra báo cáo để so sánh chú ạ.Khi nào có thời gian chú có thể phân tích rõ hơn trên dữ liệu của con được không ạ, có thể con sẽ kiểm tra và lấy lại dữ liệu logic hơn ạ.
Ủa con tải file tải từ Mediafire theo link chú gửi đúng là vẫn có công thức đó chú ạ.
 
Ơ công thức sai ạ chú Mỹ,
Khi nào có thời gian chú có thể phân tích rõ hơn trên dữ liệu của con được không ạ, có thể con sẽ kiểm tra và lấy lại dữ liệu logic hơn ạ.
Công thức sai:
1. Công thức 2 cột nhập xuất chẳng ngó ngàng gì đến L2 và N2 là ngày bắt đầu và ngày kết thúc, lấy tất tần tật, dù cho L2 đang là 1/10/2020
2. Công thức cột tồn đầu lấy ngày L2-1, nếu L2 không phải ngày đầu tháng thì sao?
3. Công thức cột SL xuất: H3 =SUMIFS(XN!F:F,XN!A:A,A3,XN!B:B,B3,XN!E:E,">="&2)-SUMIFS(XN!F:F,XN!A:A,A3,XN!E:E,3,XN!D:D,B3): >=2 bao gồm 3, trừ đi 3 làm gì? xuất bán/ dùng (loại 2) và xuất chuyển kho (loại 3) cũng đều phải trừ kho, chứ sao lại trừ ra?
Phân tích rõ hơn:
Có biết giá phân tích là bao nhiêu, và giá tư vấn là bao nhiêu 1 giờ không? Chưa xiêu lòng thì chưa nói chiện nhá!!
 
Lần chỉnh sửa cuối:
Công thức sai:
1. Công thức 2 cột nhập xuất chẳng ngó ngàng gì đến L2 và N2 là ngày bắt đầu và ngày kết thúc, lấy tất tần tật, dù cho L2 đang là 1/10/2020
2. Công thức cột tồn đầu lấy ngày L2-1, nếu L2 không phải ngày đầu tháng thì sao?
3. Công thức cột SL xuất: H3 =SUMIFS(XN!F:F,XN!A:A,A3,XN!B:B,B3,XN!E:E,">="&2)-SUMIFS(XN!F:F,XN!A:A,A3,XN!E:E,3,XN!D:D,B3): >=2 bao gồm 3, trừ đi 3 làm gì? xuất bán/ dùng (loại 2) vá xuất chuyển kho (loại 3) cũng phải trừ kho chứ sao lại trừ ra?
Phân tích rõ hơn:
Có biết giá phân tích là bao nhiêu, và giá tư vấn là bao nhiêu 1 giờ không? Chưa xiêu lòng thì chưa nói chiện nhá!!
Ặc, thế chú khoan vôi xiêu đã ạ.
Để con tự phân tích theo gợi ý và xác nhận với đồng nghiệp của con thêm ạ, vì con hay hóng hớt bon chen vào việc của người khác nên có gì cái là mọi người đều ới con,mà ới là cứ thế con làm theo yêu cầu cần thời điểm đó chứ con chưa biết đúng sai logic thế nào chú ạ.
 
Công thức sai:
1. Công thức 2 cột nhập xuất chẳng ngó ngàng gì đến L2 và N2 là ngày bắt đầu và ngày kết thúc, lấy tất tần tật, dù cho L2 đang là 1/10/2020
2. Công thức cột tồn đầu lấy ngày L2-1, nếu L2 không phải ngày đầu tháng thì sao?
3. Công thức cột SL xuất: H3 =SUMIFS(XN!F:F,XN!A:A,A3,XN!B:B,B3,XN!E:E,">="&2)-SUMIFS(XN!F:F,XN!A:A,A3,XN!E:E,3,XN!D:D,B3): >=2 bao gồm 3, trừ đi 3 làm gì? xuất bán/ dùng (loại 2) và xuất chuyển kho (loại 3) cũng đều phải trừ kho, chứ sao lại trừ ra?
Phân tích rõ hơn:
Có biết giá phân tích là bao nhiêu, và giá tư vấn là bao nhiêu 1 giờ không? Chưa xiêu lòng thì chưa nói chiện nhá!!
Dạ chú con vừa xem lại là như thế này ạ,

1.Do lỗi công thức từ dòng 3 là sai rồi chú, công thức mới là ở dòng 2 chú ạ, con cũng đã báo cáo với chú ở bài 13 ạ.
..
Với lại dữ liệu này từ dòng 3 con quên chưa kéo công thức từ dòng 2 xuống chú ạ.
...
2. Vâng cột dữ liệu tồn đầu không có ngày con lấy từ trong database chỉ có năm và tháng "202009" (yyymm) nên con minh họa tháng trước tháng cần trích xuất dữ liệu & thường mọi người luôn lấy từ đầu tháng chú ạ.
3.Cái kiểu kho(phân loại) con cũng không nhớ nhưng lần đó các bạn đồng nghiệp barp qui định gì không tính nên con mới loại ra miễn sao khớp số theo ý các bạn ấy là được chú ạ.
 
3.Cái kiểu kho(phân loại) con cũng không nhớ nhưng lần đó các bạn đồng nghiệp barp qui định gì không tính nên con mới loại ra miễn sao khớp số theo ý các bạn ấy là được chú ạ.
Một là số theo ý các bạn đúng mà làm sai, 2 là ý các bạn ý sai nốt.
Có 3 loại là:
- Loại 1: Nhập kho và tăng số lượng kho lưu trữ
- Loại 2: Xuất kho và giảm số lượng kho lưu trữ
- Loại 3: Chuyển kho: Phải có kho đi và kho đến: Giảm kho lưu trữ và tăng kho KHO_NHAP.

Vậy thì
- Cột Nhập bao gồm loại 1 Kho lưu trữ + loại 3 kho nhập: công thức dòng 2 đúng
- Cột xuất bao gồm xuất dùng/ bán loại 2, và xuất chuyển kho loại 3, cả 2 loại giảm kho lưu trữ. Hết. Không trừ bớt gì cả.
Trí tuệ mới xin được đó, đem ra suy nghĩ đi:
Công thức cột nhập: (đã đúng)
Mã:
G2 =SUMIFS(XN!F:F,XN!A:A,A2,XN!B:B,B2,XN!E:E,1,XN!G:G,">="&L$2,XN!G:G,"<="&N$2)
+SUMIFS(XN!F:F,XN!A:A,A2,XN!E:E,3,XN!D:D,B2,XN!G:G,">="&L$2,XN!G:G,"<="&N$2)
Công thức cột xuất:
Mã:
H2 =SUMIFS(XN!F:F,XN!A:A,A2,XN!B:B,B2,XN!E:E,">="&2,XN!G:G,">="&L$2,XN!G:G,"<="&N$2)
- SUMIFS(XN!F:F,XN!A:A,A2,XN!E:E,3,XN!D:D,B2,XN!G:G,">="&L$2,XN!G:G,"<="&N$2)

Hai dòng dưới của 2 công thức giống y hệt nhau. Tại sao cột xuất tính SL xuất rồi lại trừ bớt số lượng đã tính trong nhập?
Bởi vậy cột xuất mới âm tè le.
 
Một là số theo ý các bạn đúng mà làm sai, 2 là ý các bạn ý sai nốt.
Có 3 loại là:
- Loại 1: Nhập kho và tăng số lượng kho lưu trữ
- Loại 2: Xuất kho và giảm số lượng kho lưu trữ
- Loại 3: Chuyển kho: Phải có kho đi và kho đến: Giảm kho lưu trữ và tăng kho KHO_NHAP.

Vậy thì
- Cột Nhập bao gồm loại 1 Kho lưu trữ + loại 3 kho nhập: công thức dòng 2 đúng
- Cột xuất bao gồm xuất dùng/ bán loại 2, và xuất chuyển kho loại 3, cả 2 loại giảm kho lưu trữ. Hết. Không trừ bớt gì cả.
Trí tuệ mới xin được đó, đem ra suy nghĩ đi:
Công thức cột nhập: (đã đúng)
Mã:
G2 =SUMIFS(XN!F:F,XN!A:A,A2,XN!B:B,B2,XN!E:E,1,XN!G:G,">="&L$2,XN!G:G,"<="&N$2)
+SUMIFS(XN!F:F,XN!A:A,A2,XN!E:E,3,XN!D:D,B2,XN!G:G,">="&L$2,XN!G:G,"<="&N$2)
Công thức cột xuất:
Mã:
H2 =SUMIFS(XN!F:F,XN!A:A,A2,XN!B:B,B2,XN!E:E,">="&2,XN!G:G,">="&L$2,XN!G:G,"<="&N$2)
- SUMIFS(XN!F:F,XN!A:A,A2,XN!E:E,3,XN!D:D,B2,XN!G:G,">="&L$2,XN!G:G,"<="&N$2)

Hai dòng dưới của 2 công thức giống y hệt nhau. Tại sao cột xuất tính SL xuất rồi lại trừ bớt số lượng đã tính trong nhập?
Bởi vậy cột xuất mới âm tè le.
Con chào chú Mỹ,
Con thấy chú phân tích cũng rất logic về mục xuất ạ (rất có thể là như vậy rồi chú).
Nếu đúng như vậy chắc là chú Mỹ đã xiêu rồi nhỉ,lúc nào chú có thời gian và hứng chú ra tay chú nhé.
Con cảm ơn chú ạ.
 
Con thấy chú phân tích cũng rất logic về mục xuất ạ (rất có thể là như vậy rồi chú).
Nếu đúng như vậy chắc là chú Mỹ đã xiêu rồi nhỉ
Phân tích: Không phải "rất có thể như vậy" mà là "chắc chắn như vậy". Tôi đã từng thiết kế bảng dữ liệu với cột Loại như trên để chỉ dùng 1 bảng cho 3 giao diện nhập liệu của 3 loại chứng từ nhập xuất chuyển. Tuy nhiên tôi không dùng 1, 2, 3 không có tính minh hoạ, mà dùng N, X, C hoặc I, O, T (Input, Output và Transfer)
Cấu trúc trong file mới chỉ dùng cho báo cáo kho của thủ kho, chưa dùng được cho báo cáo kho của kế toán, cũng như chưa liên kết được kế toán: công nợ, giá thành, chi phí. (hoặc đã có nhưng chưa lấy ra hết)

Xiêu: Còn khuya mới xiêu. Dữ liệu phải chuẩn mới nói đến chuyện xem xét tiếp hay không, chuẩn rồi mới xem xét có xiêu không.
- Bảng tồn đầu kỳ phải có tính liên tục và có tính kế thừa (giải thích rồi, không giải thích thêm)
- Bảng dữ liệu nhập xuất phải liên tục và đầy đủ, chuyển kho phải có thông tin kho nhận.

Công thức Sheet kết quả dù đúng dù sai cũng bỏ. Lý do số lượng dòng vừa dư vừa thiếu
 

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

Back
Top Bottom