PDA

View Full Version : Làm tròn số



HUE2007
04-08-08, 08:52 AM
Trước tiên tôi xin cám ơn bạn Ca_dafi đã giúp tôi giải đáp câu hỏi (rất đúng với ý muốn) về công thức tính tổng.

Tiếp theo , nhờ các bạn giúp cách làm tròn số trong file đính kèm.
Xin cám ơn.

ndu96081631
04-08-08, 09:21 AM
Làm tròn thì dùng ROUND hoặc ROUNDUP thôi... tham số = -2

nplvn
04-08-08, 09:22 AM
Có phải như thế này không bạn?

khieukienag
04-08-08, 09:27 AM
Bạn làm thử =round ... -2 <trừ 2)

HYen17
04-08-08, 11:59 AM
Trừ phi sếp ra lệnh, phát thưởng cho nhân viên, nhưng làm tròn đến 5.000 đồng;
khi đó ta viết hàm như sau:


Function LamTronDen5000(So As Double) As Double
Dim Ngan As Double

Ngan = (So \ 1000) Mod 10
If Ngan < 3 Then
Ngan = 0
ElseIf Ngan < 8 Then
Ngan = 5000
Else
Ngan = 10000
End If
LamTronDen5000 = (So \ 10000) * 10000 + Ngan
End Function

ptm0412
04-08-08, 12:59 PM
Các anh không phải trong ngành nên không hiểu câu hỏi rồi: vấn đề là:
- G7:G10 là tổng kết quả của các phép chia tỷ lệ từ số ban đầu D11:F11
- G11 là tổng G7:G10
- Yêu cầu G11 cũng phải bằng tổng các con số trước khi chia D11:F11. Ở đây tình cờ sum(D11:F11) là tròn trăm, nhưng dù là số bất kỳ nào, thì G11 vẫn phải bằng số đó.

Nguyên nhân là sai số khi làm tròn từng phần nhỏ rồi cộng lại, khác với tổng số ban đầu.

Xin các anh giải quyết theo hướng này.

HUE2007
04-08-08, 05:07 PM
"Nguyên nhân là sai số khi làm tròn từng phần nhỏ rồi cộng lại, khác với tổng số ban đầu.
Xin các anh giải quyết theo hướng này."

Cám ơn bạn ptm0412 đã hiểu đúng vấn đề đặt ra.

Cách giải quyết như các bạn đã nêu chỉ đúng trong 1 bảng tính đơn lẻ.
Nếu Bảng tính giá thành này lấy dữ liệu từ một data link công thức để tính cho từng tháng , thì sẽ bị sai số khá nhiều.

phamduylong
04-08-08, 08:34 PM
"Nguyên nhân là sai số khi làm tròn từng phần nhỏ rồi cộng lại, khác với tổng số ban đầu.
...
Cách giải quyết như các bạn đã nêu chỉ đúng trong 1 bảng tính đơn lẻ.
Nếu Bảng tính giá thành này lấy dữ liệu từ một data link công thức để tính cho từng tháng , thì sẽ bị sai số khá nhiều.
Bạn kiểm tra bài toán bằng cách so sách tổng hàng ngang SUM(D11:F11) có số thập phân với tổng hàng dọc SUM(G7:G10) đã làm tròn thì không thể nào bằng được. Nếu có là do may mắn.
Cái chính không phải là làm tròn Giá thành mà bạn phải làm tròn ngay từ gốc là các số liệu cung cấp cho giá thành là CP vật liệu, CP nhân công, CP SX chung.
Nếu bạn làm tròn ngay từ gốc như trên, bạn có link thế nào cũng không sai

ptm0412
04-08-08, 10:24 PM
Theo kinh nghiệm của tôi khi tính giá thành, chưa có biện pháp nào đúng cho tất cả nguồn dữ liệu.

Thí dụ trong bài của Bác Long, giải quyết được cho tổng giá thành (cột G) nhưng lại sai cho chi phí nhân công và chi phi SX chung (cột E và F). Lẽ ra tổng chi phí nhân công là 3.090.000, sau khi chia cho từng SP, cộng lại cũng phải bằng 3.090.000. Tương tự là chi phí SX chung.

Đó là theo quy tắc ngẫu nhiên:
- không phải tổng những chênh lệch do làm tròn lên bao giờ cũng bằng tổng những chênh lệch do làm tròn xuống.
- không phải những chênh lệch dương bao giờ cũng cân bằng với những chênh lệch âm.

Thí dụ như file của Bác Long: Tình cờ chi phí nhân công dư 1 đồng và chi phí SX chung thiếu 1 đồng. Thực tế đó cũng chỉ là may mắn. Nếu chi phí vật liệu (cột D) cũng chênh lệch 1 đồng thì tổng số cột G cũng đi theo.

Hơn nữa, theo nguyên tắc, con số 3.090.000 đã lấy từ phát sinh có của TK 334, có TK 622 và thể hiện trên khá nhiều báo cáo khác nhau. Nay báo cáo giá thành lại thể hiện là con số khác thì không đúng.

Cách giải quyết tạm thời của tôi bấy lâu nay là:
1. Làm tròn ngay từ các khoản mục chi phí (cột D, E, và F) như bác Long đã làm.
2. Nếu do phân bổ theo tỷ lệ sinh ra tổng bị chênh lệch (tôi làm thường bị từ 1 đến 5 đồng vì tính GT hàng trăm mặt hàng), tôi cộng hoặc trừ số chênh lệch đó vào 1 hoặc 2 mặt hàng có giá trị lớn nhất.

Cụ thể (Mượn file của bác Long), trừ 1 đồng vào CP nhân công mặt hàng C, cộng 1 đồng vào chi phí SX chung cũng mặt hàng C.
Kết quả: mọi con số đều khớp. Trừ 1 việc: phân bổ chi phí không đồng đều với sai số 1/1.479.353 và 1/1.231.836. Sai số 1 phần triệu này chấp nhận được.

BNTT
04-08-08, 10:59 PM
Theo em nghĩ, để giải quyết vấn đề này, đừng dùng hàm để làm tròn.

Ở cột G, tính tổng giá thành, nếu thích làm tròn không lấy số lẻ, thì dùng chính cái quy định về số lẻ của Excel (định dạng cho ô chỉ lấy số nguyên, không lấy số lẻ). Và chắc chắn là Excel hiển thị ra trong ô một con số đã được làm tròn (nhưng thực sự thì chưa làm tròn).

Em nói vậy, bởi vì em thấy các con số trong cột G, nếu dùng ROUND với đối số thứ 2 là 0, như bạn ấy đã làm, thì chẳng khác gì làm tròn các con số trong đó trở thành số nguyên!

Cho nên, chỉ cần định dạng ô cho cột G theo kiểu #,### (hoặc dùng nút Decrease Decimal có sẵn trên Toolbar để không thấy phần thập phân), thì luôn luôn SUM(G7:G10) = SUM(D11:F11), chẳng cần ROUND(...,0) làm gì hết!

ptm0412
04-08-08, 11:13 PM
Không được đâu BNTT à. Nếu chỉ để in ra thì không sao, nhưng kết quả này còn phải dùng để hạch toán tiếp phần nhập kho nợ 155/ có 154 từng mặt hàng, mỗi mặt hàng đều là số thập phân. Tưởng tượng 200 mặt hàng (chưa phải là nhiều), sau này xuất ra (cũng phải làm tròn vì xuất cũng phải hạch toán), tồn kho, .... Kết quả là tổng số lại lệch 1 vài đồng mất cân đối trong bảng cân đối PS và cân đối KT.
Thậm chí xuất hết hàng rồi mà tiền thì còn 1 đồng. Khó chịu lắm. Tìm ra để sửa cũng bở hơi tai.

Thi dụ nhé: mặt hàng A lẻ 20,3 đồng, hiển thị 20. Mặt hàng B lẻ 19,25 đồng hiển thị 19. Trên báo cáo tồn kho: 20,3 + 19,25 = 39,55 => hiển thị 40. Nhìn báo cáo thì 20 + 19 = 40!
Sau khi xuất hết cả 2 mặt hàng, do làm tròn xuất kho, giá trị vẫn còn 0,55, thể hiện 1 đồng trên báo cáo tồn kho.

HYen17
04-08-08, 11:17 PM
Các anh không phải trong ngành nên không hiểu câu hỏi rồi: vấn đề là:
Nguyên nhân là sai số khi làm tròn từng phần nhỏ rồi cộng lại, khác với tổng số ban đầu.
Xin các anh giải quyết theo hướng này.
Vậy là tại người ra câu hỏi hay tại số đông những người không trong ngành đây?

Để khắc phục, có lẽ làm luôn hàm tính số liệu từ đầu như cái trang tính excel vẫn làm, có thỏa mãn cho bạn không đây?
Lúc đó giống như Fox hay access thôi, . . . .(?)

Mr Okebab
04-08-08, 11:20 PM
2. Nếu do phân bổ theo tỷ lệ sinh ra tổng bị chênh lệch (tôi làm thường bị từ 1 đến 5 đồng vì tính GT hàng trăm mặt hàng), tôi cộng hoặc trừ số chênh lệch đó vào 1 hoặc 2 mặt hàng có giá trị lớn nhất.



Xin nói rõ thêm : Đó là : các mặt hàng có tỷ trọng về giá trị lớn nhất

Đây cũng là phương pháp tính giá trị hàng tồn kho bình quân khi Số lượng = 0 nhưng Giá trị <> 0
Khi đó giá trị này sẽ được hạch toán vào nghiệp vụ phát sinh cuối cùng (Bình quân thời điểm) hoặc tính vào nghiệp vụ có tỷ trọng giá trị (mặt hàng đó) lớn nhất (bình quân thời kỳ)

Thân!

ptm0412
04-08-08, 11:36 PM
Vậy là tại người ra câu hỏi hay tại số đông những người không trong ngành đây?

Thưa Bác, tại người hỏi chưa rõ lắm, em may là trong ngành nên hiểu được câu hỏi mà thôi ạ.
Cách giải quyết của em cũng chỉ là tạm thời với 1 sai số chấp nhận được, và phù hợp với 1 số nguyên tắc KT về cân đối tài khoản, và nguyên tắc thống nhất số liệu trong tất cả các báo cáo.
Nếu các bác (dù ngoài ngành đi nữa) có cách nào hay hơn thì giúp bạn ấy theo hướng ấy.

HUE2007
05-08-08, 07:53 AM
Trích:
Nguyên văn bởi ptm0412 http://www.giaiphapexcel.com/forum/images/styles/Smart/buttons/viewpost.gif (http://www.giaiphapexcel.com/forum/showthread.php?p=89898#post89898)
2. Nếu do phân bổ theo tỷ lệ sinh ra tổng bị chênh lệch (tôi làm thường bị từ 1 đến 5 đồng vì tính GT hàng trăm mặt hàng), tôi cộng hoặc trừ số chênh lệch đó vào 1 hoặc 2 mặt hàng có giá trị lớn nhất.


Trước tới giờ tôi vẫn làm như bác ptm0412 ; Nay tôi muốn sử dụng công thức để tập hợp số liệu cho cả năm cũng như link vào cá bảng tính khác thì luôn bị dư ra 1hoặc vài đồng.
Cám ơn bác ptm0412 đã nêu ra đúng những vướng mắc tôi gặp phải .
Cám ơn các bạn đã quan tâm giải đáp thắc mắc của tôi.

luongtranap82
27-07-10, 03:51 PM
Đúng là vấn đề này đau đầu thật,hôm rồi gặp trường hợp làm TT,cell nhà mình cũng làm tròn một kiểu và thực hiện tính toán 1 kiểu.Kết quả là "vênh" nhau mất khoảng hơn 10k khối.Nếu nhân ra tiền thì cũng die vài trăm triệu.Cuối cùng phải tính = tay ,mất công tí nhưng "khớp"