Các bác cho em hỏi hàm tình tổng trong Exel này ạ. (1 người xem)

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

Tôi tuân thủ nội quy khi đăng bài

NguyenNT85

Thành viên mới
Tham gia
21/1/26
Bài viết
1
Được thích
0
em làm diễn giải khối lượng trong một ô của xel , các bác chỉ giúp em làm sao tính tổng của nó với ạ.
 

File đính kèm

  • Screenshot 2026-01-21 222921.png
    Screenshot 2026-01-21 222921.png
    93.4 KB · Đọc: 38
nếu có hàm texsplit thì =SUM(VALUE(TEXTSPLIT(C46;"+")))
nếu không có hàm texsplit thì vẫn có cách nhưng tôi lười quá
 
em làm diễn giải khối lượng trong một ô của xel , các bác chỉ giúp em làm sao tính tổng của nó với ạ.
Tham khảo cách làm sau của anh @quanghai
Hy vọng giúp được bạn.
Hình như là có 1 cách khác (làm bằng VBA) của anh @siwtom. Cách này thì trong ô cần tính có cả chuỗi cũng tính được thì phải.
 

File đính kèm

Tham khảo cách làm sau của anh @quanghai
Hy vọng giúp được bạn.
Hình như là có 1 cách khác (làm bằng VBA) của anh @siwtom. Cách này thì trong ô cần tính có cả chuỗi cũng tính được thì phải.
Bạn chủ thớt nếu nuốn dùng VBA (hàm UDF) thì có thể tham khảo:
Ví dụ B5=Lien1 1+2+3 Và C5= 1Huong1 111,111+222.222+333*2+444/4 Lien1 555+111 ;2.An1 678+321 Tien1: C4=(5*2+5*4)*2*0,3

E5= TongChuoi(B5:C5,C4) hoặc E5=TongChuoi(B5,C5,C4) . "," hay ";" tùy theo máy
Enter là thu được kết quả.
Nếu chỉ cần tính cho C5 thì chỉ cần
E5= TongChuoi(C5)
Enter là thu được kết quả.
Mã:
Function TongChuoi(ParamArray Vung() As Variant) As Double
    Dim i&, j&, t&, k&, ktu As String, txt, Chuoi$
    Dim Text  As String
For t = LBound(Vung) To UBound(Vung)
    For Each cell In Vung(t)
            S = cell.Value
            Text = ""
        For i = 1 To Len(S) + 1
             If i <= Len(S) Then ktu = Mid(S, i, 1)
             If (ktu = " " Or ktu = ";" Or ktu = ":") Or i = Len(S) + 1 Then
                If Not IsNumeric(Text) Then
                    For j = 1 To Len(Text)
                        txt = Mid(Text, j, 1): code = AscW(txt)
                        If code < 48 Or code > 57 Then
                            If MaChrW(txt) = False Then Text = Empty: k = 0: Exit For
                        Else
                            k = 1
                        End If
                    Next j
                End If
            Else
                If ktu = "," Then ktu = "."
                Text = Text & ktu
            End If
                
               If k = 1 Then
                    If Chuoi = Empty Then Chuoi = Text Else Chuoi = Chuoi & "+" & Text                     ' tong
                    Text = Empty: k = 0
               End If
        Next i
    Next cell
Next t
    TongChuoi = Application.Evaluate(Chuoi)
End Function
'-------
Function MaChrW(ByVal txt As String) As Boolean
    Dim ops As Variant, i As Long
    ops = Array("+", "-", "*", "/", "=", "%", "^", "(", ")", "[", "]", "{", "}", ".")
    For i = LBound(ops) To UBound(ops)
        If txt = ops(i) Then MaChrW = True: Exit For
    Next i
End Function
 
Nếu chuỗi tính toán bao gồm ký tự chữ cái thì chỉ cần loại chữ cái ra rồi tính bằng hàm Evaluate. À, loại cả khoảng trắng.
Chẳng hạn định nghĩa 1 biến gồm các ký tự giữ lại gồm đóng mở ngoặc, ký hiệu toán tử, các con số. Ký tự nào trong chuỗi không có trong biến này thì loại ra.
 
Hàm : Expression.Evaluate()
Dành cho các bạn mới tìm hiểu về Query ngâm cứu :
Mã:
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    RemovedOtherColumns = Table.SelectColumns(Source,{"BieuThuc"}),
    ReplacedValue = Table.ReplaceValue(RemovedOtherColumns,",",".",Replacer.ReplaceText,{"BieuThuc"}),
    CotMoi = Table.AddColumn(ReplacedValue, "KetQua", each try Expression.Evaluate([BieuThuc]) otherwise null),
    SelectColumn = Table.SelectColumns(CotMoi,{"KetQua"})
in
    SelectColumn
 

File đính kèm

  • Untitled.png
    Untitled.png
    240.1 KB · Đọc: 18
Lần chỉnh sửa cuối:

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

Back
Top Bottom