Xin Hướng dẫn cách tách ký tự số (1 người xem)

  • Thread starter Thread starter NGOCTOAN
  • Ngày gửi Ngày gửi
Liên hệ QC

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

NGOCTOAN

Thành viên hoạt động
Tham gia
1/8/06
Bài viết
104
Được thích
33
Kính gửi : Các Anh Chi GPE

Em có 1 nhu cầu tách các ký tự số sang 1 cột như sau :

DVT yêu cầu lay ky tu so 1nos) 1 20pcs) 20 1pc) 1 1pc) 1 3pcs) 3 3pcs) 3 3pcs) 3 10kgs) 10 10kgs) ……. 30pcs) ………… 2.5m2) 2.5
Mong các anh chi chỉ giúp công thức hay phải code VBA.Em gửi file kèm

Xin cảm ơn./.

Ngoctoan
 

File đính kèm

Kính gửi : Các Anh Chi GPE

Em có 1 nhu cầu tách các ký tự số sang 1 cột như sau :

DVT yêu cầu lay ky tu so 1(nos) 1 20(pcs) 20 1(pc) 1 1(pc) 1 3(pcs) 3 3(pcs) 3 3(pcs) 3 10(kgs) 10 10(kgs) ……. 30(pcs) ………… 2.5(m2) 2.5
Mong các anh chi chỉ giúp công thức hay phải code VBA.Em gửi file kèm

Xin cảm ơn./.

Ngoctoan
Gởi Bạn NgocToan!
Bạn nên post lên diễn đàn 1 lần hỏi rồi sẽ có người giúp, chứ đừng post nhiều nơi -> Tốn công Bạn, tốn công BQT (phải xóa bài), tốn công những người giúp đỡ vì nếu giúp cũng bị xóa...
Còn dữ liệu của bạn không biết có những dấu "(" hay không?. Nếu có thì dùng hàm LEFT để lấy số được, còn không có thì phải nhờ các cao thủ dùng VBA để lấy thôi.
Nếu có dấu "(" Bạn dùng công thức sau:
VD: A2 có giá trị cần lấy
Mã:
B2 =LEFT(A2,FIND("(",A2)-1)
 
Gởi Bạn NgocToan!
Bạn nên post lên diễn đàn 1 lần hỏi rồi sẽ có người giúp, chứ đừng post nhiều nơi -> Tốn công Bạn, tốn công BQT (phải xóa bài), tốn công những người giúp đỡ vì nếu giúp cũng bị xóa...
Còn dữ liệu của bạn không biết có những dấu "(" hay không?. Nếu có thì dùng hàm LEFT để lấy số được, còn không có thì phải nhờ các cao thủ dùng VBA để lấy thôi.
Nếu có dấu "(" Bạn dùng công thức sau:
VD: A2 có giá trị cần lấy
Mã:
B2 =LEFT(A2,FIND("(",A2)-1)

Không thể dung ham left được vì cột DVT có thể có 3-4 hoặc 5 ký tự số, Vậy nhờ các cao thủ code dùm được không?

Vì dữ liệu rất nhiều nên mới nhờ các cao thủ vậy, Cảm ơn trước

Ngoctoan
 
Không thể dung ham left được vì cột DVT có thể có 3-4 hoặc 5 ký tự số, Vậy nhờ các cao thủ code dùm được không?

Vì dữ liệu rất nhiều nên mới nhờ các cao thủ vậy, Cảm ơn trước

Ngoctoan
Bạn hãy đưa file thực sự của Bạn lên đi, để mọi người có hướng tìm ra cách tốt nhất.
 
file đính kèm ở phái trên đấy bac CongMinh,
Bác có thể xem giúp em nhé.

Cảm ơn./.

Ngoctoan

Mới tập viết code, là Hàm tự tạo xài tạm thấy cũng được, Bạn thử xem.
PHP:
Public Function tachso(chuoi As String)
Dim i, n As Byte
Dim so, so1 As Double
n = Len(chuoi)
i = 1
Do While i <= n
so = Left(chuoi, i)
If IsNumeric(so) Then
so1 = so
Else
so1 = so1
End If
i = i + 1
Loop
tachso = so1
End Function
 

File đính kèm

Mới tập viết code, là Hàm tự tạo xài tạm thấy cũng được, Bạn thử xem.
PHP:
Public Function tachso(chuoi As String)
Dim i, n As Byte
Dim so, so1 As Double
n = Len(chuoi)
i = 1
Do While i <= n
so = Left(chuoi, i)
If IsNumeric(so) Then
so1 = so
Else
so1 = so1
End If
i = i + 1
Loop
tachso = so1
End Function

Oi, rât cảm ơn bac Bate, rất đúng ý của em rồi, hôm nay em sẽ lọc ra để thống kê cái file vật tư 15000 rów
Xin cảm ơn lần nữa.

Ngoctoan
 
Mới tập viết code, là Hàm tự tạo xài tạm thấy cũng được, Bạn thử xem.
PHP:
Public Function tachso(chuoi As String)
Dim i, n As Byte
Dim so, so1 As Double
n = Len(chuoi)
i = 1
Do While i <= n
so = Left(chuoi, i)
If IsNumeric(so) Then
so1 = so
Else
so1 = so1
End If
i = i + 1
Loop
tachso = so1
End Function
Ẹc... Ẹc... Ba Tê đã bắt đầu đi vào "con đường đau khổ" rồi nhỉ?
Rút gọn lại nha:
PHP:
Function GetNum(Text As String) As Double
  Dim i As Long
  If IsNumeric(Left(Text, 1)) Then
    Do
      i = i + 1
      GetNum = Left(Text, i)
    Loop Until IsNumeric(Left(Text, i + 1)) = False
  End If
End Function
------------------
Ngoài ra còn 1 cách dùng công thức:
- Đặt con trỏ chuột tại dòng 2
- Vào menu Insert\Name\Define và đặt 1 name có tên là Pos, có Refers to:
PHP:
=SUM(1*ISNUMBER(1*LEFT(Sheet1!$A2,ROW(INDIRECT("1:"&LEN(Sheet1!$A2))))))
- Tại cell B2, gõ công thức:
PHP:
=IF(Pos,1*LEFT(A2,Pos),"")
Chưa phải là chính xác lắm (với số có định dạng phân cách ngàn) nhưng Tạm dùng được
 

File đính kèm

Lần chỉnh sửa cuối:
Ẹc... Ẹc... Ba Tê đã bắt đầu đi vào "con đường đau khổ" rồi nhỉ?
Rút gọn lại nha:
Cũng biết là con đường đau khổ, nhưng chẳng lẽ cứ học mãi lớp Một, thử "leo" lên lớp Hai xem mình sẽ như thế nào, dĩ nhiên sẽ tiến bộ mau hơn nếu có các anh chị lớp 10, 12 "kèm cặp".
Rất mong các bạn hỗ trợ.

 
Lần chỉnh sửa cuối:
Ngoài ra còn 1 cách dùng công thức:
- Đặt con trỏ chuột tại dòng 2
- Vào menu Insert\Name\Define và đặt 1 name có tên là Pos, có Refers to:
PHP:
=SUM(1*ISNUMBER(1*LEFT(Sheet1!$A2,ROW(INDIRECT("1:"&LEN(Sheet1!$A2))))))
- Tại cell B2, gõ công thức:
PHP:
=IF(Pos,1*LEFT(A2,Pos),"")
Chưa phải là chính xác lắm (với số có định dạng phân cách ngàn) nhưng Tạm dùng được

Nhờ bác giúp em chuyển từ dạng số sang dạng tex, mà có dấu cách giữa hàng ngàn, triệu
 

File đính kèm

Nhờ bác giúp em chuyển từ dạng số sang dạng tex, mà có dấu cách giữa hàng ngàn, triệu
Chưa hiểu lắm
Số 13254 chuyển sang dạng Text trở thành 13.254
thế sao:
Số 7654235 chuyển sang dạng Text lại trở thành 7,654,235
Khi thì chấm, khi thì phẩy.. là sao?
 
Chưa hiểu lắm
Số 13254 chuyển sang dạng Text trở thành 13.254
thế sao:
Số 7654235 chuyển sang dạng Text lại trở thành 7,654,235
Khi thì chấm, khi thì phẩy.. là sao?

Khi mà chuyển từ dạng số sang dạng text thì có dấu phẩy(,) hoặc chấm (.) giữa các số hàng ngàn, triệu đó ạ
 
Khi mà chuyển từ dạng số sang dạng text thì có dấu phẩy(,) hoặc chấm (.) giữa các số hàng ngàn, triệu đó ạ
Ý tôi muốn hỏi là sao dòng trên là dấu chấm mà dòng dưới lại dấu phẩy? ---> Tóm lại bạn muốn dấu nào?
 
Bác có nhìn nhầm ko ạ? dòng bên dạng số thì là dấu (.) còn dòng bên dạng text là dấu (,)
bác lấy dấu (.) cho em đi
Thấy đơn giản thế chứ không dễ ăn đâu ---> Vấn đề nằm ở chổ: Cho dù mở file trên máy tính có định dạng trong Control Panel kiểu gì thì vẫn phải hiển thị dấu chấm là dấu phân cách ngàn
Phải dùng XL4 mới xử lý được bài này
1> Đặt name
PHP:
DigSym =INDEX(GET.WORKSPACE(37),1,4)
2> Công thức:
PHP:
=SUBSTITUTE(TEXT(A4,"#"&DigSym&"##0"),DigSym,".")
Bài này nhớ đã gữi 2 lần rồi, giờ chẳng biết nằm đâu
 

File đính kèm

Thấy đơn giản thế chứ không dễ ăn đâu ---> Vấn đề nằm ở chổ: Cho dù mở file trên máy tính có định dạng trong Control Panel kiểu gì thì vẫn phải hiển thị dấu chấm là dấu phân cách ngàn
Phải dùng XL4 mới xử lý được bài này
1> Đặt name
PHP:
DigSym =INDEX(GET.WORKSPACE(37),1,4)
2> Công thức:
PHP:
=SUBSTITUTE(TEXT(A4,"#"&DigSym&"##0"),DigSym,".")
Bài này nhớ đã gữi 2 lần rồi, giờ chẳng biết nằm đâu

Cám ơn bác, có cách nào mà dùng công thức, ko dùng Macro ko ạ?
 
Web KT

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

Back
Top Bottom