Xin các Pro chỉ giúp có cách nào cộng dãy số trong 1 chuỗi không (1 người xem)

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

meodenxiii

Thành viên mới
Tham gia
2/4/09
Bài viết
3
Được thích
0
Mình có 1 chuỗi ký tự bao gồm các số và text. Bài toán đặt ra là chỉ cộng tổng các số lại thì liệu có hàm nào có thể làm được không vậy. Có cả hàng trăm cột kiểu này mà cộng tay chắc chết luôn. Nhờ các bác giúp xem có cách nào nhanh hơn không, hix. **~**

Vd chuỗi :

máytính,290687,chuột,28510,bànphím,2600912,mànhình,1000000,vỏcây,500000,tainghe,1000,ổcứng,167000,ổcd,167000


Kết quả ra được : 290678 + 28510 ...+ 167000 =
 
Bạn dùng Text to column với điều kiện là dấu phẩy sau đó sum lại bình thường nhé.
 
Bạn hướng dẫn kỹ hơn giúp mình được không? Mình vẫn chưa hiểu lắm, hix +-+-+-+

Mình gửi clip hướng dẫn vào email bạn đăng ký tại diễn đàn rồi nhé...Tài khoản tại you tube của mình bị lỗi chút xíu, mai mình up lên đây lại, trước mắt mình gửi vào email của bạn..
 
Lần chỉnh sửa cuối:
Hic, Bạn xem hướng dẫn dưới đây nhé.


[video=youtube_share;W0j1wOxhIoo]http://youtu.be/W0j1wOxhIoo[/video]
 
Lần chỉnh sửa cuối:
Mình có 1 chuỗi ký tự bao gồm các số và text. Bài toán đặt ra là chỉ cộng tổng các số lại thì liệu có hàm nào có thể làm được không vậy. Có cả hàng trăm cột kiểu này mà cộng tay chắc chết luôn. Nhờ các bác giúp xem có cách nào nhanh hơn không, hix. **~**

Vd chuỗi :

máytính,290687,chuột,28510,bànphím,2600912,mànhình,1000000,vỏcây,500000,tainghe,1000,ổcứng,167000,ổcd,167000

Kết quả ra được : 290678 + 28510 ...+ 167000 =


Nếu biết xài VBA thì cái này sẽ là giải pháp

PHP:
Public Function congso(cell As Range) As Long
Dim i, kq, tam
For i = 1 To Len(cell) + 1
  If IsNumeric(Mid(cell, i, 1)) Then
    tam = tam & Mid(cell, i, 1)
  Else
    kq = kq + Val(tam)
    tam = 0
  End If
Next
congso = kq
End Function
 
Nếu biết xài VBA thì cái này sẽ là giải pháp

PHP:
Public Function congso(cell As Range) As Long
Dim i, kq, tam
For i = 1 To Len(cell) + 1
  If IsNumeric(Mid(cell, i, 1)) Then
    tam = tam & Mid(cell, i, 1)
  Else
    kq = kq + Val(tam)
    tam = 0
  End If
Next
congso = kq
End Function

Chuẩn, OK mình sử dụng được rồi, cảm ơn 2 bạn quanghai1969 và xuan.nguyen82 rất nhiều nhé @$@!^%
 
Nếu biết xài VBA thì cái này sẽ là giải pháp

PHP:
Public Function congso(cell As Range) As Long
Dim i, kq, tam
For i = 1 To Len(cell) + 1
  If IsNumeric(Mid(cell, i, 1)) Then
    tam = tam & Mid(cell, i, 1)
  Else
    kq = kq + Val(tam)
    tam = 0
  End If
Next
congso = kq
End Function
Thế sao không dùng VBScript.RegExp cho nó khỏe?
 
Em chưa có quen xài VBScript.RegExp nên không tự tin lắm, cũng đang nghiên cứu. Khi nào thấy an toàn mới dám xài anh ơi
Bài toán này đơn giản mà
Với Pattern = "[^0-9]" sẽ Match bất cứ thứ gì không phải là ký tự số
Vậy bạn suy nghĩ sẽ .Replace(...gì gì đó..) để có thể dùng Evaluate là được rồi
(xem lại bài SumDigits đi)
 

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

Back
Top Bottom