lọc số "hợp đồng" trong chuỗi câu "diễn giải" (2 người xem)

Liên hệ QC

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

Tôi tuân thủ nội quy khi đăng bài

Linnnn

Thành viên mới
Tham gia
20/5/25
Bài viết
3
Được thích
1
dạ 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"1747735366728.png
 
Lần chỉnh sửa cuối:
Bạn muốn nhờ những người trên diễn đàn thì phải gửi cái file lên để người khác viết công thức cho bạn, bạn chụp gửi mỗi cái hình để làm gì.
 
Bạn copy phần có số hợp đồng màu đỏ ra file mới và gởi lên nhóm để test công thức
 
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))
 

File đính kèm

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 ạ, 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 ạ
 

File đính kèm

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ý.
 

File đính kèm

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ý.
dạ em cảm ơn nhiều ạ
 
Mình hỏi 3 câu:
1- Trường hợp có HĐ và PLHĐ thì sao, lấy cả 2 hay chỉ lấy HĐ?
"Cước thuê dịch vụ Internet leased line tháng 04/2025 theo HĐ: 140622-1/HCM-BR/HDHT/VTQT-ICSP và PL: 140622-1/HCM-BR/HDHT/VTQT/PL01 ký ngày 14/06/2022"
(Ô A12)
2- Số HĐ bôi đỏ là có sẵn hay là bạn tô đỏ để thuyết minh thôi?
3- Muốn đáp ứng tận gốc, hoặc cho phạm vi yêu cầu rộng hơn, thì dùng UDF (VBA code) là phương án tối ưu nhất. Bạn có chấp nhận không?
Bài đã được tự động gộp:

Hỏi thêm 1 câu:
4- Nếu tôi định nghĩa số HĐ là chuỗi ký tự dính liền có độ dài tương đối cao nhất trong ô (Phía trước có thể có chữ HĐ hay PLHĐ hay không), thì bạn thấy thế nào? Dùng UDF là 1 phát ăn ngay.
 
Mình test đại, dùng UDF, theo ý tại số 4 câu hỏi trên của mình
Click chuột phải vào tên sheet, ViewCode/ Insert/Module, xong dán code này vào:
Mã:
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
Tại sheet, bạn dùng công thức:
Mã:
=sohopdong(A3)
Kéo xuống
File lưu dưới dạng .xlsm
 

File đính kèm

Web KT

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

Back
Top Bottom