Chính là anh em ở đây phải xin bạn chỉ dẫn để hiểu yêu cầu mới đúng. Bạn chỉ dẫn sơ sài, sau đó thay đổi cấu trúc file (từ 1 sheet thành 2 sheet), khiến cho các bạn ở đây, người thì code không đáp ứng được biến thiên dữ liệu, người thì phải code lại.
Tôi thấy
Bạn cần đăng nhập để thấy link
đã giải quyết rồi nên tôi không code nữa. Tôi đưa vài bình luận như dưới đây, hi vọng giúp ích cho bạn.
Nói về thuật toán,
đầu tiên nói về yêu cầu. Nên viết làm sao để người code dễ nắm bắt thông tin.
INPUT:
Cấu trúc file gồm 2 sheet :
data,
kq
Có một danh sách trên sheet
data
Bạn cần đăng nhập để thấy đính kèm
Người dùng nhập keyword (từ khóa) trên sheet
kq vào ô
A2 :
Bạn cần đăng nhập để thấy đính kèm
Output:
Ghi kết quả vào sheet
kq
Bạn cần đăng nhập để thấy đính kèm
Trình bày như trên thì người code sẽ dễ hiểu hơn. Bạn nên sử dụng hình vẽ minh họa trong bài viết. Cách post hình trên diễn đàn thì bạn tham khảo ở đây:
Bạn cần đăng nhập để thấy link
Về thuật toán: Tôi nghĩ có nhiều cách giải quyết bài toán này, vì nó không khó. Dựa theo những gì các bạn trong topic này đã trình bày, tôi trình bày như sau:
Bạn cần đăng nhập để thấy đính kèm
Đầu tiên cần xây dựng đường ngang 1,2,3,4...
Nhìn vào input đầu vào, có thể thấy dãy số này là các số ký tự cuối cùng sau dấm chấm.
Việc lấy ký tự cuối cùng sau dấu chấm thì có nhiều cách.
Trên data input, có thể thấy danh sách ký tự cuối cùng này bị trùng lặp, mà chúng ta chỉ cần lấy một lần thôi.
Ví dụ sau khi lấy 1,2,3,4-ở các dòng tiếp theo nếu nhìn thấy 1,2,3,4 thì thôi không lấy nữa vì đã có rồi.
Như vậy ở bước lấy ký tự cuối cùng này cần phải kiểm tra, trước đó ta đã lấy ký tự cuối cùng nào giống lần này hay không.
-Dựa vào dữ liệu mô tả này thì:
+)Nếu ký tự cuối cùng là
1 (vd: A1.1.1 hoặc A1.2.1 ) thì sẽ được ghi ở cột B (cột
2) trên sheet kq.
+)Nếu ký tự cuối cùng là
2 (vd: A1.1.2 hoặc A1.2.2 ) thì sẽ được ghi ở cột C (cột
3) trên sheet kq.
...
Từ đây đã có thể thấy, dựa vào ký tự cuối cùng ta có thể tính được là nó sẽ được ghi ở vị trí cột nào trên sheet kq.
INPUT (ký tự cuối cùng) | OUTPUT (vị trí cột ghi kết quả) |
1 | 2 |
2 | 3 |
Khi ghi kết quả thì tất nhiên sẽ xác định dòng cuối là dòng nào, và lùi xuống một dòng để viết.
Bạn cần đăng nhập để thấy đính kèm