Function Tach(ByVal Mystr As String) As String
Mystr = Trim(Mystr)
If InStr(1, Mystr, "/") = 0 Then Tach = Mystr: Exit Function
Tach = Left(Mystr, InStr(1, Mystr, "/") - 1)
Newstr = Right(Mystr, Len(Mystr) - InStr(1, Mystr, "/"))
End Function
Function SuperT(Mystr As String, num As Byte) As String
If num > Len(Mystr) - Len(Replace(Mystr, "/", "")) + 1 Then SuperT = "": Exit Function
If num = 1 Then
SuperT = Tach(Mystr)
Exit Function
Else
Tmp = Left(Tach(Mystr), Len(Tach(Mystr)) - 2)
Newstr = Mystr
For i = 1 To num
Tmp2 = Tach(Newstr)
Next
SuperT = Tmp & Tmp2
End If
Newstr = ""
End Function
Anh dùng thử hàm củ chuối này xemMong các anh em trên GPE xem và giúp 1 hàm tự tạo dùng để tách số hóa đơn. Yêu cầu cụ thể được ghi trong file đính kèm. Xin được cám ơn trước.
Function MyFunction(Str As String, C As String, i As Long)
Dim MyList As Variant
MyList = Split(Str, C)
If i > UBound(MyList) + 1 Then
MyFunction = ""
Exit Function
End If
MyFunction = Left(MyList(0), Len(MyList(0)) - Len(MyList(i - 1))) & MyList(i - 1)
End Function
Mong các anh em trên GPE xem và giúp 1 hàm tự tạo dùng để tách số hóa đơn. Yêu cầu cụ thể được ghi trong file đính kèm. Xin được cám ơn trước.
=IF(OR(A4="",LEFT(A4,5)&RIGHT($A4,2)=A4),"",LEFT($A4,5)&MID(SUBSTITUTE($A4,"/",""),COLUMN()*2+2,2))
Function Func1(Str As String, i As Long) As String
Dim HDs As Variant
Str = Replace(Str, ",", "/")
HDs = Split(Str, "/")
If i <= UBound(HDs) + 1 Then Func1 = Left(HDs(0), Len(HDs(0)) - Len(HDs(i - 1))) & HDs(i - 1)
End Function
Function Func2(Str As String, Cs As Variant, i As Long) As String
Dim HDs As Variant
For Each C In Cs
Str = Replace(Str, C, "/")
Next
HDs = Split(Str, "/")
If i <= UBound(HDs) + 1 Then Func2 = Left(HDs(0), Len(HDs(0)) - Len(HDs(i - 1))) & HDs(i - 1)
End Function
Mong các anh em trên GPE xem và giúp 1 hàm tự tạo dùng để tách số hóa đơn. Yêu cầu cụ thể được ghi trong file đính kèm. Xin được cám ơn trước.
Do không biết VBA, sử dụng một dòng phụ, ẩn đi khi không xài, dùng công thức thấy dễ hơn!Mong các anh em trên GPE xem và giúp 1 hàm tự tạo dùng để tách số hóa đơn. Yêu cầu cụ thể được ghi trong file đính kèm. Xin được cám ơn trước.
Làm được đến đó rồi thì làm luôn chứ ---> Text to Columns làm chiThực ra có một cách đơn giản và thủ công hơn là dùng VBA hay là tổ hợp các hàm dài
Dùng: =SUBSTITUTE(A4,"/","/"&LEFT(A4,5)) tại một cột nào đó, rồi fill xuống -> Copy & Paste Special -> Values
Sau đó dùng Text to Columns ngay cột đó là sẽ ra thôi (tùy dấu phân cách là / , hay các ký tự khác...)
Nếu 5 số đầu của hóa đơn giống nhau thì dùng Find and Replace
Tmp =EVALUATE("{"&SUBSTITUTE(SUBSTITUTE($A4,"/","/"&LEFT($A4,5)),"/",",")&"}")
=IF(COUNTA(Tmp)<COLUMNS($A:A),"",INDEX(Tmp,,COLUMNS($A:A)))
Làm được đến đó rồi thì làm luôn chứ ---> Text to Columns làm chi
- Đặt con trỏ chuột tại dòng 4 và đặt 1 name
- Công thức tại cell B4PHP:Tmp =EVALUATE("{"&SUBSTITUTE(SUBSTITUTE($A4,"/","/"&LEFT($A4,5)),"/",",")&"}")
Kéo fill sang phảiPHP:=IF(COUNTA(Tmp)<COLUMNS($A:A),"",INDEX(Tmp,,COLUMNS($A:A)))
Giải thuật này tương đương với Split trong VBA
Ẹc... Ẹc... chắc vậy (dài hơn)
---Thực ra có một cách đơn giản và thủ công hơn là dùng VBA hay là tổ hợp các hàm dài
Dùng: =SUBSTITUTE(A4,"/","/"&LEFT(A4,5)) tại một cột nào đó, rồi fill xuống -> Copy & Paste Special -> Values
Sau đó dùng Text to Columns ngay cột đó là sẽ ra thôi (tùy dấu phân cách là / , hay các ký tự khác...)
Nếu 5 số đầu của hóa đơn giống nhau thì dùng Find and Replace