Sau đó copy down công thức xuống dưới nhé.=SUMPRODUCT(--MID(A3,ROW(INDIRECT("1:"&LEN(A3))),1))
Cú pháp:Function Tongso(So)
Tong = 0
For i = 1 To Len(So)
Tong = Tong + Mid(So, i, 1)
Next
Tongso = Tong
End Function
UDF mà dùng như vầy mới độc đáo nè:Hoặc dùng Function
Cú pháp:
=Tongso(cell)
Public Function SumString(Num As String) As Long
On Error Resume Next
SumString = Evaluate(Join(Split(StrConv(Num, 64), Chr(0)), "+") & "0")
End Function
- Loại số 10 ra khỏi chuổi đồng thời cũng "nhớ" xem có bao nhiêu số 10 đã bị loạimình muốn nhập điểm trong đó có cả điểm 10 VD: HS có 3 điểm là 7, 8, 10 khi nhập vào
ô A2 sẽ là 7810 hoặc 1078 hoặc 7108 dùng code hay CT nào để ô B2 luôn được tổng = 25
các bạn giúp mình nhé! Trân trọng cảm ơn!
Sử dụng thử code nàymình muốn nhập điểm trong đó có cả điểm 10 VD: HS có 3 điểm là 7, 8, 10 khi nhập vào
ô A2 sẽ là 7810 hoặc 1078 hoặc 7108 dùng code hay CT nào để ô B2 luôn được tổng = 25
các bạn giúp mình nhé! Trân trọng cảm ơn!
Public Function tong(Vung As Range) As Integer
Dim I As Integer, J As Integer, Tam As Integer
For I = Len(Vung) To 1 Step -1
J = Val(Mid(Vung, I, 1))
If J = 0 Then
Tam = Tam + 9
Else
Tam = Tam + J
End If
Next
tong = Tam
End Function
Chơi vậy sao "đẹp" anh Cò ơi!Phải chắc chắn không cho điểm "zero"
Public Function SumString(Num As String) As Long
Dim Tmp As Long
On Error Resume Next
Tmp = (Len(Num) - Len(Replace(Num, 10, ""))) / 2
SumString = Tmp * 9 + Evaluate(Join(Split(StrConv(Num, 64), Chr(0)), "+") & "0")
End Function
Theo thuật toán của bác, dùng công thức sauChơi vậy sao "đẹp" anh Cò ơi!
Em nghĩ có thể "chấp" luôn việc nhập số 0 đấy
Ẹc... Ẹc...
Em làm vầy:
Như thuật toán đã nói ở trênPHP:Public Function SumString(Num As String) As Long Dim Tmp As Long On Error Resume Next Tmp = (Len(Num) - Len(Replace(Num, 10, ""))) / 2 SumString = Tmp * 9 + Evaluate(Join(Split(StrConv(Num, 64), Chr(0)), "+") & "0") End Function
Và còn nữa: Dùng công thức chắc cũng không có vấn đề ---> Ai rảnh thử xem!
Nhấn Ctr+Shift+Enter=(LEN(A3)-LEN(SUBSTITUTE(A3,10,"")))*5+SUMPRODUCT((--MID(SUBSTITUTE(A3,10,""),ROW(INDIRECT("1:"&LEN(SUBSTITUTE(A3,10,"")))),1)))
Đoạn này (LEN(A3)-LEN(SUBSTITUTE(A3,10,"")))/2 là tính xem có bao nhiêu số 10 tại cell A3Theo thuật toán của bác, dùng công thức sau
Nhấn Ctr+Shift+EnterPHP:=(LEN(A3)-LEN(SUBSTITUTE(A3,10,"")))*5+SUMPRODUCT((--MID(SUBSTITUTE(A3,10,""),ROW(INDIRECT("1:"&LEN(SUBSTITUTE(A3,10,"")))),1)))
=(LEN(A3)-LEN(SUBSTITUTE(A3,10,"")))*9/2+SUMPRODUCT(--MID(A3,ROW(INDIRECT("1:"&LEN(A3))),1))
Đoạn này (LEN(A3)-LEN(SUBSTITUTE(A3,10,"")))/2 là tính xem có bao nhiêu số 10 tại cell A3
Chỉ cần lấy kết quả trên nhân cho 9 rồi cộng với công thức của cadafi là được rồi
Tức
Enter bình thườngPHP:=(LEN(A3)-LEN(SUBSTITUTE(A3,10,"")))*9/2+SUMPRODUCT(--MID(A3,ROW(INDIRECT("1:"&LEN(A3))),1))
=SUMPRODUCT(--MID(SUBSTITUTE(A3,10,19),ROW(INDIRECT("1:"&LEN(SUBSTITUTE(A3,10,19)))),1))
=SUMPRODUCT(--MID(SUBSTITUTE(A3,10,28),ROW(INDIRECT("1:"&LEN(A3))),1))
Cho hỏi:Mình đã hiểu được cảm ơn các bạn rất nhiều. nhưng mình còn bài toán tính tổng các điểm viết có cả điểm không làm tròn.
VD: HS có 6 điểm: 7; 6,5; 10; 6; 8; 8,5 đại khái là khi nhập vào một ô là co cả dấu (,) như 76,510688,5
mình không áp dụng được để tính tổng ô này. Làm phiền các bạn giúp mình lần nữa.
VD: HS có 6 điểm: 7; 6,5; 10; 6; 8; 8,5
nhập vào một ô là co cả dấu (,) như 76,510688,5
mình không áp dụng được để tính tổng ô này. Làm phiền các bạn giúp mình lần nữa.
Nhiều khi "lười" ấy màKhông thể hình dung nổi trường nào, phòng nào, sở nào lại cho phép giáo viên nhập điểm theo kiểu này
Tôi cũng chỉ quan tâm đến THUẬT TOÁN thôi (còn mục đích của bạn là gì thì... kệ bạn)... Vì vậy vui lòng trả lời câu hỏi ở bài 13 trước đã nhéBạn thật đúng là người không hiểu j rồi. Đây là điều tôi quan tâm đến thuật toán thôi.
Bạn thật đúng là người không hiểu j rồi. Đây là điều tôi quan tâm đến thuật toán thôi.