Các cao nhân cho hỏi công thức nào có thể tính tổng khi 1 ô có dữ liệu "10 + 13 + 25 + 64 + ..."

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

mtrieu05

Thành viên mới
Tham gia
6/5/15
Bài viết
3
Được thích
0
Các cao nhân cho hỏi công thức nào có thể tính tổng khi 1 ô có dữ liệu "10 + 13 + 25 + 64 + ..."
 
Bạn sử dụng hàm EVALUATE, hàm này của Excel 4.0 nên bạn phải đặt trong Name.
Ví dụ, bạn vào Name đặt tên là TinhToan, công thức là =EVALUATE(ô chứa chuỗi cần tính toán).
 
tôi mới học VBA tới bài của bạn tôi viết 1 function nhưng tới đoạn tính tổng tôi không biết làm thế nào nữa, nhờ các bạn chỉ giúp.
Function Tong(ByVal str As String) As String
Dim arr As Variant
Dim i As Long
If str = "" Then Exit Function
arr = Split(str, "+")
For i = 1 To UBound(arr)
Tong = arr(i)
Next i
End Function
Bài đã được tự động gộp:

Bạn sử dụng hàm EVALUATE, hàm này của Excel 4.0 nên bạn phải đặt trong Name.
Ví dụ, bạn vào Name đặt tên là TinhToan, công thức là =EVALUATE(ô chứa chuỗi cần tính toán).
Cái hàm này xài trong VBA à bạn.
 
tôi mới học VBA tới bài của bạn tôi viết 1 function nhưng tới đoạn tính tổng tôi không biết làm thế nào nữa, nhờ các bạn chỉ giúp.
Thử như thế này nhé bạn
PHP:
For i = 0 To UBound(arr) 'item nhỏ nhất của nó là 0
Tong = Tong + arr(i) ' Cộng lũy kế: Mới = Cũ + phát sinh
Next i
hoặc
PHP:
Dim sp
For each sp in arr
Tong = Tong + sp ' Cộng lũy kế: Mới = Cũ + phát sinh
Next i
 
tôi mới học VBA tới bài của bạn tôi viết 1 function nhưng tới đoạn tính tổng tôi không biết làm thế nào nữa, nhờ các bạn chỉ giúp.
Code của bạn chủ yếu là muốn làm gì? Cho biết từng bước một.
Tôi hói thế là vì nhìn code chả hiểu ý chính của bạn là muốn đầu vào và đầu ra là cái gì?
Tại sao hàm trả về trị (tổng) là một chuỗi thay vì số?

Code cộng tổng từ một chuỗi chỉ giản dị như vầy:
Tong = 0
For Each ve In Split(chuoi, "+")
Tong = Tong + Val(ve)
Next ve
' code này không bẫy lỗi nếu có con toán khác +. Tức các toán tử khác +
' ví dụ 10+1+3-4+5 sẽ cho ra 19 (-4 sẽ bị bỏ qua)


[về hàm Evaluate]

Cái hàm này xài trong VBA à bạn.
VBA là cách đơn giản nhất để xài hàm Evaluate. Trừ phi bạn có phiên bản 365, khi ấy Lambda đơn giản hơn.
Nhưng tôi không cho thớt code đâu vì tôi cảm thấy "cao nhơn" là còn dưới bậc mình và đâm ngại tranh cơm với đàn trẻ.
 
Lần chỉnh sửa cuối:
VBA là cách đơn giản nhất để xài hàm Evaluate
Bác viết VBA thật ngắn gọn, Em hỏi cái là sao cái hàm Evaluate này em xài trong workbook như hướng dẫn của các anh chị nó bị lỗi #Name nhỉ
Trên VBA thì viết 1 fuction Em thấy xài bình thường.

screenshot_1698911016.png
 
Bác viết VBA thật ngắn gọn, Em hỏi cái là sao cái hàm Evaluate này em xài trong workbook như hướng dẫn của các anh chị nó bị lỗi #Name nhỉ
Trên VBA thì viết 1 fuction Em thấy xài bình thường.

...
Evaluate là hàm của Macro 4.0 cũ.
MS không cho nó xài trực tiếp trên bảng tính (đừng hỏi tại sao). Nhưng vì nó là hàm Macro cho nên trong VBA thì nó có thể được gọi trực tiếp - các hàm bảng tính khác phải gọi qua đối tượng WorksheetFunction.

Vì vậy người ta có hai cách dùng:
1. mẹo gọi qua Name (đừng hỏi lý do, rất rất dài dòng và khó hiểu, đại khái thì name là một cách đi giữa bảng tính và macro)
2. viết một hàm UDF để gọi nó

Lưu ý rằng vì nó (Evaluate) là macro cho nên file phải save là xlsm.
 
em đang gặp thêm vấn đề là tính giá trị biểu thức của nhiều ô, nhờ các bác hỗ trợ có công thức nào rút gọn đc ko ạ,
quá trình làm sẽ phát sinh thêm nhiều cột nữa,
VBA em chưa biết 1 chút gì
Em cảm ơn!
 

File đính kèm

  • TInh tong KL.xlsx
    29.8 KB · Đọc: 10
Bác viết VBA thật ngắn gọn, Em hỏi cái là sao cái hàm Evaluate này em xài trong workbook như hướng dẫn của các anh chị nó bị lỗi #Name nhỉ
Trên VBA thì viết 1 fuction Em thấy xài bình thường.
trong name của bạn là "evalutae", sai chính tả.
 
trong name của bạn là "evalutae", sai chính tả.
Tay này là chuyên môn viết ẩu, tôi cũng chưa hiểu tại sao VBA nhận cái từ khóa "fuction"

...Em hỏi cái là sao cái hàm Evaluate này em xài trong workbook như hướng dẫn của các anh chị nó bị lỗi #Name nhỉ
Trên VBA thì viết 1 fuction Em thấy xài bình thường.
...
 
Em thấy tay này viết còn ngắn gọn hơn cả anh. Ngắn đến mức bỏ bớt cả chữ cái đi cho gọn hẳn.
Tay này là chuyên môn viết ẩu, tôi cũng chưa hiểu tại sao VBA nhận cái từ khóa "fuction"
Cái từ "function" này bỏ chữ "n" nên thành ra "fuction" nên nhiều người không hiểu. Nếu vẫn bỏ "n", nhưng thêm "k" vào, có lẽ đại đa số đều hiểu cả (dù VBA vẫn bó tay)
 
Xài tạm vậy ♥ . Nhiều cách khác

1703077853224.png[CODE]=SUM(VALUE(MID(SUBSTITUTE(B7,"+",""),SEQUENCE(LEN(SUBSTITUTE(B7,"+",""))),1)))[/CODE][ICODE]=SUM(VALUE(MID(SUBSTITUTE(B7,"+",""),SEQUENCE(LEN(SUBSTITUTE(B7,"+",""))),1))) [/ICODE]
 
Web KT
Back
Top Bottom