Xin chào các bác.
Hiện em cần một hàm có thể tính ra kết quả tổng từ các ô diễn giải như sau:
C2= 1+2
D2= 3*4
E2= 5+6+7
F2= tổng (1+2+3*4+5+6+7)=33. Em cần một hàm tính tổng ở đây.
Các bác nào biết có hàm nào có thể giải quyết được vấn đề trên thì chỉ giúp em với.
Cảm ơn các Bác.
View attachment 212837
Cảm ơn bác.Bạn xem clip sau nhé
Bạn dùng hàm này xem được không.Cảm ơn bác.
Em có biết sử dụng cách này nhưng em thấy nó có một số bất tiện sau:
1. Với mỗi sheet bố trí khác nhau thì em sẽ phải gõ lại hàm evaluate
2. Khi tính vào những ô trắng sẽ trả về giá trị: #valuate
3. Evaluate tính cho nhiều ô cùng lúc sẽ phải gõ lại lệnh rất lâu.
Em muốn có hàm nào đó như hàm sum ấy. Chỉ cần Sum(C2;D2;E2) hoặc sum(C2:E2) là ra kết quả cho nhanh bác k.
Function tinhtong(ParamArray mang() As Variant) As Long
Dim T, a As Long, T1
For Each T In mang
For Each T1 In T
If Len(T1) > 0 Then a = a + Evaluate("=" & T1)
Next
Next
tinhtong = a
End Function
=tinhtong(C5:C6)
Mình copy vào mà không có được.Bạn dùng hàm này xem được không.
Mã:Function tinhtong(ParamArray mang() As Variant) As Long Dim T, a As Long, T1 For Each T In mang For Each T1 In T If Len(T1) > 0 Then a = a + Evaluate("=" & T1) Next Next tinhtong = a End Function
Mã:=tinhtong(C5:C6)
Bạn gủi file lên xem thế nào nhé.Nói thế ai biết lỗi ở đâu.Cho cái ví dụ lỗi coi.Mình copy vào mà không có được.
Tàn bị lỗi #Valuae thôi.
Đây. Bạn xem giúp mình với.Bạn gủi file lên xem thế nào nhé.Nói thế ai biết lỗi ở đâu.Cho cái ví dụ lỗi coi.
Hình như dấu , VBE không hiểu là số thập phân, bạn thử thay thành dấu . thửĐây. Bạn xem giúp mình với.
Đây nhé bạn.Đây. Bạn xem giúp mình với.
Function tinhtong(ParamArray mang() As Variant) As Double
Dim T, a As Double, T1
For Each T In mang
For Each T1 In T
If Len(T1) > 0 Then a = a + Evaluate("=" & Replace(T1, ",", "."))
Next
Next
tinhtong = a
End Function
Cảm ơn bác.Hình như dấu , VBE không hiểu là số thập phân, bạn thử thay thành dấu . thử
Mình làm được rồi. Cảm ơn bạn nhiều.Đây nhé bạn.
Mã:Function tinhtong(ParamArray mang() As Variant) As Double Dim T, a As Double, T1 For Each T In mang For Each T1 In T If Len(T1) > 0 Then a = a + Evaluate("=" & Replace(T1, ",", ".")) Next Next tinhtong = a End Function
Bạn xem giúp mình file này với. Mình dùng công thức tinhtong(F8) nó không ra kết quả nhưng mình copy phần diễn giải của dòng F8 và thêm dấu "=" phía trước thì lại ra kết quả. Hình như cái hàm này nó giới hạn bao nhiêu ký tự mới tính được hay sao đó.Đây nhé bạn.
Mã:Function tinhtong(ParamArray mang() As Variant) As Double Dim T, a As Double, T1 For Each T In mang For Each T1 In T If Len(T1) > 0 Then a = a + Evaluate("=" & Replace(T1, ",", ".")) Next Next tinhtong = a End Function
Hàm đó chỉ chạy được khi ban lưu file với phần mở rộng là .xls hoặc .xlsm hoặc .xlsbHình như cái hàm này nó giới hạn bao nhiêu ký tự mới tính được hay sao đó.
Thì mình add vào vẫn chạy bình thường mà. Chỉ là gặp một ô F8 thì nó không ra được kết quả thôi. Các ô khác lại ra bình thường. Tìm thì không thấy lỗi sai. Thêm dấu = vào trước phần diễn giải của ô F8 lại ra kết quả bình thường bạn ak.Hàm đó chỉ chạy được khi ban lưu file với phần mở rộng là .xls hoặc .xlsm hoặc .xlsb
Lưu ý là hàm Evaluate chỉ sử dụng được trong giới hạn 255 kí tự nhéBạn xem giúp mình file này với. Mình dùng công thức tinhtong(F8) nó không ra kết quả nhưng mình copy phần diễn giải của dòng F8 và thêm dấu "=" phía trước thì lại ra kết quả. Hình như cái hàm này nó giới hạn bao nhiêu ký tự mới tính được hay sao đó.
Đúng là hơn 255 ký tự bác ak. Có cách khắc phụ không bácLưu ý là hàm Evaluate chỉ sử dụng được trong giới hạn 255 kí tự nhé