Không có file để test, nên kết quả hên xui:dạ a/c cho em hỏi có cách nào mình lọc được số hợp đồng (tô đỏ) trong diễn giải sang cột kế bên dựa vào cột "Hợp đồng bán ra"
=TEXTBEFORE(TEXTAFTER(D2,"hợp đồng số ")," ")
dạ em cảm ơn ạ, mà đối với mấy hợp đồng không có ":" trong diễn giải, thì em có đổi ":" thành "số" mà sao nó không chạy được công thức ạ. Với lại cho em hỏi nếu có 2 Trường hợp ":"; "số" nếu em chèn thêm hàm IF chứa ký tự ":" thì ra kết quả nếu không có ký tự ":" thì ra kết quả như công thức "số" thì cho em hỏi mình IF điều kiện ntn ạ, em cảm ơn ạGiải thích:
1. Quan sát dữ liệu
- Dấu 2 chấm ":" chỉ có 1 và phía trước không có
- Sau dấu ":" là ký tự trắng (khoảng cách ngắt từ)
- Mã Hợp Đồng là chuỗi dính liền
- Phía sau mã hợp đồng có là ký tự trắng (khoảng cách ngắt từ)
Công thức cần tìm vị trí của dấu ":" và ký tự trắng sau mã hợp đồng
1. Tìm vị trí dấu ":"
=FIND(":",B2)
2. Tìm ký tự trắng sau mã hợp đồng
=FIND(" ",B2,FIND(":",B2)+2)
3. Số lượng ký tự của Mã Hợp Đồng
=(FIND(" ",B2,FIND(":",B2)+2)-1)-(FIND(":",B2)+1)
Như vậy chỉ cần dùng Hàm MID để lấy Mã Hợp Đồng là được
=MID(B3,FIND(":",B3)+1,(FIND(" ",B3,FIND(":",B3)+2)-1)-(FIND(":",B3)+1))
dạ em cảm ơn nhiều ạBạn kiểm tra sơ lại xem, làm chung 1 công thức thì được nhưng tôi làm từng bước nhỏ.
Bảng phụ lục hợp đồng của bạn có quá nhiều thay đổi ký tự (lúc thì PLHĐ số, hợp đồng: , HĐ sốv.v.... nên tôi làm ra các bước nhỏ để xử lý.
Option Explicit
Function sohopdong(ByVal cell As Range) As String
Dim i&, max&, sp, st$
sp = Split(cell)
For i = 0 To UBound(sp)
If Len(sp(i)) > max Then
max = Len(sp(i))
st = sp(i)
End If
Next
sohopdong = Replace(st, ",", "")
End Function
=sohopdong(A3)