Công thức lấy xen kẽ ký tự trong một dãy ký tự .... (1 người xem)

Liên hệ QC

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

thamkt82

Thành viên mới
Tham gia
31/10/09
Bài viết
7
Được thích
0
Các bác vui lòng giúp đỡ nhé .... ví dụ mình có dãy số : 7X8Y9Z789123456 mình muốn lấy ra cá ký tự xen kẻ như 78979246 thì dùng công thức thế nào .... Thông cảm vì gà nhé ....
 
Không bác nào giúp được mình à .... Các cao thủ đâu hết rồi nhỉ .....
 
Các bác vui lòng giúp đỡ nhé .... ví dụ mình có dãy số : 7X8Y9Z789123456 mình muốn lấy ra cá ký tự xen kẻ như 78979246 thì dùng công thức thế nào .... Thông cảm vì gà nhé ....

1/ Không biết chuỗi dãy số của bạn có cố định số lượng ký tự kg? ví dụ: 7X8Y9Z789123456 là 15 ký tự. Nếu số lượng ký tự cố định thì công thức đơn giản hơn bạn dùng hàm MID và CONCATENATE để thực hiện
VD: cell A1 có chuỗi 7X8Y9Z78 thì dùng cthức
PHP:
=CONCATENATE(MID(A1;1;1);MID(A1;3;1);MID(A1;5;1);MID(A1;7;1))
Nếu chuỗi của bạn kg cố định số lượng ký tự thì nhờ các Thành viên viết code giùm!
 
bạn có thể dùng VBA tạo hàm tách số như sau :


Function TachSo(Cell As Range) As Double
Set Temp = CreateObject("VBScript.RegExp")
Temp.Global = True
Temp.Pattern = "[^0-9]"
TachSo = Temp.Replace(Cell, "")
End Function
 
bạn có thể dùng VBA tạo hàm tách số như sau :


Function TachSo(Cell As Range) As Double
Set Temp = CreateObject("VBScript.RegExp")
Temp.Global = True
Temp.Pattern = "[^0-9]"
TachSo = Temp.Replace(Cell, "")
End Function

Bạn xem lại yêu cầu của bài #1 là
ví dụ mình có dãy số : 7X8Y9Z789123456 mình muốn lấy ra cá ký tự xen kẻ như 78979246
Thân!
 
Các bác vui lòng giúp đỡ nhé .... ví dụ mình có dãy số : 7X8Y9Z789123456 mình muốn lấy ra cá ký tự xen kẻ như 78979246 thì dùng công thức thế nào .... Thông cảm vì gà nhé ....
Bạn thử Code này
Function tach_lay_so(chuoi As Range)
Dim i As Long, n As Long
n = Len(chuoi)
For i = 1 To n
If IsNumeric(Mid(chuoi, i, 1)) Then
so = so & Mid(chuoi, i, 1)
End If
Next
tach_lay_so = Val(so)
End Function
Mình đang dùng add in này. Có thể tách số bất kỳ tại bất kỳ vị trí nào!
 
Bạn thử Code này
Function tach_lay_so(chuoi As Range)
Dim i As Long, n As Long
n = Len(chuoi)
For i = 1 To n
If IsNumeric(Mid(chuoi, i, 1)) Then
so = so & Mid(chuoi, i, 1)
End If
Next
tach_lay_so = Val(so)
End Function
Mình đang dùng add in này. Có thể tách số bất kỳ tại bất kỳ vị trí nào!
Lạc đề giống bài #4!
 
các pác xem code này đã ổn chưa !

PHP:
Public Function tach_so(chuoi As String) As String
    Dim A() As String, kqua As String   
 ReDim A(1 To Len(chuoi))    
 For i = 1 To Len(chuoi) Step 2        
     A(i) = Mid(chuoi, i, 1)    
Next  
     tach_so = Join(A(), "")
End Function
 
Lạc đề giống bài #4![/QUOTE
Bài #1 chẳng có quy luật nào cả mà!

Nguyên văn bởi thamkt82 Các bác vui lòng giúp đỡ nhé .... ví dụ mình có dãy số : 7X8Y9Z789123456 mình muốn lấy ra cá ký tự xen kẻ như 78979246 thì dùng công thức thế nào .... Thông cảm vì gà nhé ....
Đọc các số màu đỏ chữ màu xanh!
 
Nói như bạn Hong.van là chuẩn nhưng không có công thứ nào hả các bác vì mình gà chẳng biết dùng code ....
 
Nói như bạn Hong.van là chuẩn nhưng không có công thứ nào hả các bác vì mình gà chẳng biết dùng code ....

Công thức đây, chỉ cần dùng Sumproduct là ghép được:

=SUMPRODUCT(MID(A1,ROW(INDIRECT("1:"&INT((LEN(A1)+1)/2)))*2-1,1)*10^(INT((LEN(A1)+1)/2)-ROW(INDIRECT("1:"&INT((LEN(A1)+1)/2)))))


với giả định dữ liệu cần tách đặt tại cell A1
 
Nói như bạn Hong.van là chuẩn nhưng không có công thứ nào hả các bác vì mình gà chẳng biết dùng code ....

Bạn cũng nên tập làm quen với code vì code giải quyết được những vấn đề mà nếu dùng công thức thì nhức đầu lắm
Mã:
Function tach(cell As Range) As Long
Dim i, kq
For i = 1 To Len(cell) Step 2
   kq = kq & Mid(cell, i, 1)
Next
tach = Val(kq)
End Function
 
Sẳn đây các bác cho minh hỏi tại sao mình sử dụng of2010 khi đánh số nhiều hơn nghìn tỷ thì các số sao biến thành số 0 hết ....
 
Web KT

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

Back
Top Bottom