Tách chuỗi dữ liệu ?

Liên hệ QC

laianhtu

Thành viên tiêu biểu
Tham gia
4/1/07
Bài viết
635
Được thích
858
Nghề nghiệp
Finance and Accountancy field, Tax consultant, tax
Xin chào các bạn,

Có cách nào để tách chuỗi dự liệu này không các bạn ?

Thanks.
Anh Tú.
"Love is beautiful when it's unconclusive"
 

File đính kèm

  • Data_chuoi.xls
    13.5 KB · Đọc: 476
Xin chào các bạn,

Có cách nào để tách chuỗi dự liệu này không các bạn ?

Thanks.
Anh Tú.
"Love is beautiful when it's unconclusive"
Tặng bạn file này nè
-------------
Tuy nhiên nếu dùng VBA thì bài này sẽ đơn giản hơn rất nhiều đấy!
 

File đính kèm

  • TachSo.xls
    14 KB · Đọc: 830
Cái này trên diễn đàn nói nhiều rồi. Bạn có thể dùng add-ins sau nhé.
1/Muốn tách số
tachso(ô bạn muốn tách)
2/Muốn tách chữ
tachchu(ô bạn muốn tách)
 

File đính kèm

  • tachso va tachchu.rar
    5.3 KB · Đọc: 933

File đính kèm

  • Tachso_06.xls
    16.5 KB · Đọc: 445
  • Tach_so_chuoi.xls
    15.5 KB · Đọc: 504
Lần chỉnh sửa cuối:
Thêm 1 file nữa, tách số ra 1 cột, tách chuổi ra 1 cột
Hay tuyệt, nhưng mà hỏi bác ndu một câu bác đừng cười nhá, công thức trong name em không nhìn thấy hết được làm sao để thấy hết được công thức đây
 
Hay tuyệt, nhưng mà hỏi bác ndu một câu bác đừng cười nhá, công thức trong name em không nhìn thấy hết được làm sao để thấy hết được công thức đây
Thì bạn dùng chuột quét chọn công thức trong name, xong paste ra 1 cell nào đó mà nghiên cứu

attachment.php


-------------------------
Bạn bấm F3 và bấm nút paste list nhé.
Chiêu này khiến tôi nghĩ ra 1 đoạn code dùng để Get List Name
PHP:
Sub GetListNames()
  Range("E1").ListNames
End Sub
Nhanh gọn... Ẹc... Ẹc...
 

File đính kèm

  • untitled.JPG
    untitled.JPG
    21.9 KB · Đọc: 1,482
Lần chỉnh sửa cuối:
Thì bạn dùng chuột quét chọn công thức trong name, xong paste ra 1 cell nào đó mà nghiên cứu
Nghĩ cũng buồn cười thật dùng cóp dán nhiều rồi mà lại không nghĩ ra vấn đề này. Mà cũng lạ ở chỗ dùng shift +end để chọn hết công thức chả được trong hộp thoại define name dùng chuột phải để chọn copy cũng chả được ai . Ai ngờ chọn công thức dùng phím không được nhưng lại dùng chuột được, còn cóp py công thức dùng chuột không được nhưng lại dùng tổ hợp phím được. Khó hiểu+-+-+-+
 
Nghĩ cũng buồn cười thật dùng cóp dán nhiều rồi mà lại không nghĩ ra vấn đề này. Mà cũng lạ ở chỗ dùng shift +end để chọn hết công thức chả được trong hộp thoại define name dùng chuột phải để chọn copy cũng chả được ai . Ai ngờ chọn công thức dùng phím không được nhưng lại dùng chuột được, còn cóp py công thức dùng chuột không được nhưng lại dùng tổ hợp phím được. Khó hiểu+-+-+-+
Ấy dùng bàn phím được đấy ---> Đây cũng thuộc tuyệt chiêu mà ít người biết
- Khi bạn đặt con trỏ chuột vào khung Refer to, nếu dùng phím mũi tên dịch chuyển thì lập tức công thức sẽ sai tùm lum luôn
- Để có thể dùng phím mũi tên (và các phím khác) trong khung Refer to này, bạn phải bấm F2 trước đó
----------------
Nói thêm:
Khung Refer to của Define Name là 1 dang RefEdit Control ---> Mà Control này luôn có 2 chế độ: Enter Mode và Edit Mode ---> Mặc định nó ở Enter Mode (dùng chuột để chọn Range) ---> Bấm phím F2 là để chuyển RefEdit về Edit Mode (có thể chỉnh sửa được bằng bàn phím)
----------------
Vậy theo yêu cầu của bạn thì ta làm như sau:
- Đặt con trỏ chuột vào vùng Refer to (trước dấu =)
- Bấm phím F2
- Bấm Shift + End rồi Ctrl + C
Thử và.. cảm nhận xem (có xứng là tuyệt chiêu hay không?)
Ẹc... Ẹc...
 
Lần chỉnh sửa cuối:
Đúng là bác NDU sở hữu nhiều tuyệt chiêu và độc chiêu quá, đúng là dùng F2 chuyển sang edit có thể dùng phím chọn công thức được nhưng vẫn không dùng chuột để cóp py công thức được . Mỗi ngày học thêm được một món khoái thật.TKS BÁC NHIỀU
 
Nhờ ACE dùng hàm để tách hộ em các chuỗi ngăn cách bởi ký tự ";"
VD: A1= Tiến88;Tùng90;Tuấn88;Hùng;Hải thành từng cột: B1=Tiến88 , C1=Tùng90, D1=Tuấn88, E1=Hùng, F1=Hải

Em đã dùng phương pháp text to columns và ghi lại thành macro tự động tại sheet1. Nhưng cho em hỏi tại sao khi em thay đổi ở Cell A1 mà macro không tự động chạy mà em phải kích sang sheet2 rồi kích quay lại Sheet1 mới thấy macro chạy?
(có file đính kèm)
Private Sub Worksheet_Activate()

'
' Macro1 Macro
'
Application.ScreenUpdating = False
'

Range("B1:Z1").ClearContents

Range("B1").Value = Range("A1").Value
Range("B1").Select

Selection.TextToColumns Destination:=ActiveCell, DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:=";", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, _
1)), TrailingMinusNumbers:=True

Application.ScreenUpdating = True

End Sub

Nhờ các ACE giúp đỡ xử lý theo 2 cách hàm và code VBA. Em cám ơn.
 
Lần chỉnh sửa cuối:
Cám ơn các thầy ndu96081631, ptm0412
Em vừa xem bài: http://www.giaiphapexcel.com/forum/showthread.php?39714-Private-Sub-Worksheet_-%28%29-%C3%9D-ngh%C4%A9a-T%C3%A1c-d%E1%BB%A5ng-v%C3%A0-c%C3%A1ch-d%C3%B9ng
và đã tự sửa lại được như mình muốn
Private Sub Worksheet_Change(ByVal Target As Range)




If Target.Address = "$A$1" Then
'
Range("B1:Z1").ClearContents
Range("B1").Value = Range("A1").Value
Range("B1").Select
Selection.TextToColumns Destination:=ActiveCell, DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:=";", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, _
1)), TrailingMinusNumbers:=True
End If

End Sub

Giờ em nhờ các ACE giúp em viết hàm để tách để em học hỏi thêm. EM cám ơn
 
Cám ơn các thầy ndu96081631, ptm0412
Em vừa xem bài: http://www.giaiphapexcel.com/forum/showthread.php?39714-Private-Sub-Worksheet_-%28%29-%C3%9D-ngh%C4%A9a-T%C3%A1c-d%E1%BB%A5ng-v%C3%A0-c%C3%A1ch-d%C3%B9ng
và đã tự sửa lại được như mình muốn
Private Sub Worksheet_Change(ByVal Target As Range)




If Target.Address = "$A$1" Then
'
Range("B1:Z1").ClearContents
Range("B1").Value = Range("A1").Value
Range("B1").Select
Selection.TextToColumns Destination:=ActiveCell, DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:=";", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, _
1)), TrailingMinusNumbers:=True
End If

End Sub

Giờ em nhờ các ACE giúp em viết hàm để tách để em học hỏi thêm. EM cám ơn
Bạn thử function này:
PHP:
Option Explicit
Public Function tach(vung As Range, vt As Long) As String
Dim arr
arr = Split(vung.Value, ";")
tach = arr(vt - 2)
End Function

Tại B1 bạn gõ công thức
Mã:
=IFERROR(tach($A1,COLUMN()),"")
Sau đó Fill sang phải
 
Lần chỉnh sửa cuối:
Nhờ ACE giúp em với
Em dùng code này để tự động ẩn dòng trống và dòng có giá trị bằng 0
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
 ActiveSheet.Unprotect ("Learning_Excel")
 Rows("1:10").Hidden = False
Dim Rng As Range
 Application.ScreenUpdating = False
  If Target.Column = 1 Then    
For Each Rng In [C1:C10]     
If Rng.Value = "" Or Rng.Value = 0 Then Rng.EntireRow.Hidden = True
      Next Rng
End If 
Application.ScreenUpdating = True
End Sub
Em để điều kiện thay đổi ở ô A1 của file DL1 thì sẽ tự động ẩn dòng. Nhưng em muốn điều khiển từ ô A1 của file DL2 nhưng code trên không chạy vì theo code trên thì phải thay đổi trực tiếp tại ô A1 của file DL1.Nhờ các ACE giúp em với. Em cũng nghĩ đến dùng sự kiện Worksheet_calculate. Nhưng không biết làm thế nào. thử thì file bị treo luôn. hjx
 

File đính kèm

  • DL.rar
    20.3 KB · Đọc: 13
Lần chỉnh sửa cuối:
Nhờ các ACE giúp bài này với ạ.
 
Nhờ ACE giúp em với
Em dùng code này để tự động ẩn dòng trống và dòng có giá trị bằng 0
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
 ActiveSheet.Unprotect ("Learning_Excel")
 Rows("1:10").Hidden = False
Dim Rng As Range
 Application.ScreenUpdating = False
  If Target.Column = 1 Then    
For Each Rng In [C1:C10]     
If Rng.Value = "" Or Rng.Value = 0 Then Rng.EntireRow.Hidden = True
      Next Rng
End If 
Application.ScreenUpdating = True
End Sub
Em để điều kiện thay đổi ở ô A1 của file DL1 thì sẽ tự động ẩn dòng. Nhưng em muốn điều khiển từ ô A1 của file DL2 nhưng code trên không chạy vì theo code trên thì phải thay đổi trực tiếp tại ô A1 của file DL1.Nhờ các ACE giúp em với. Em cũng nghĩ đến dùng sự kiện Worksheet_calculate. Nhưng không biết làm thế nào. thử thì file bị treo luôn. hjx
Nhờ các ACE trên diễn đàn giúp em với ạ !!!
 
Web KT
Back
Top Bottom