Tách chuỗi dữ liệu bởi dấu /

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

dinhnhat143

Thành viên mới
Tham gia
6/9/12
Bài viết
8
Được thích
0
Chào các bác,

1. Em có 1 đoạn chuỗi dữ liệu để mở 1 file .pdf như sau.
E:\2023\Data From\2023.04.28\TCQ 15\TCQ15\1166-LLP-MEP-Tender Clarification No.15.pdf
2. Em đang cần tách tách thành đường dẫn như sau.
E:\2023\Data From\2023.04.28\TCQ 15\TCQ15
Các bác có cách nào tách nhanh mục 2 giúp em được không ạ? Em cám ơn.
 
Chào các bác,

1. Em có 1 đoạn chuỗi dữ liệu để mở 1 file .pdf như sau.
E:\2023\Data From\2023.04.28\TCQ 15\TCQ15\1166-LLP-MEP-Tender Clarification No.15.pdf
2. Em đang cần tách tách thành đường dẫn như sau.
E:\2023\Data From\2023.04.28\TCQ 15\TCQ15
Các bác có cách nào tách nhanh mục 2 giúp em được không ạ? Em cám ơn.
Bạn tìm hiểu Flash fill xem sao.
 
Bạn thử đi theo hướng, lấy code vba tìm tên file pdf, xong lấy hàm left trừ len của tên file vừa tìm sẽ ra link thư mục này.
1 cách nữa dùng công thức nhưng hơi cồng kềnh.
Tìm số lượng \ trong link.
Dùng hàng substitute để replace dấu \ cuối cùng thành #. xong dùng hàm right-find (#) để lấy đoạn code sau dấu # được tạo bởi substitute
Hàm loằng ngoằng, đợi cao nhân nào đó viết ngắn gọn hơn
 
Lần chỉnh sửa cuối:
Đường dẫn thư mục =TRIM(LEFT(SUBSTITUTE(A1,"\",REPT(" ",500),LEN(A1)-LEN(SUBSTITUTE(A1,"\",""))),300))

Tên tập tin =TRIM(RIGHT(SUBSTITUTE(A1,"\",REPT(" ",500),LEN(A1)-LEN(SUBSTITUTE(A1,"\",""))),300))
 
Dùng Ctrl+H: Chuỗi + "*" thử đi bác
 
=LEFT(A1,FIND("*",SUBSTITUTE(A1,"\","*",LEN(A1)-LEN(SUBSTITUTE(A1,"\",""))))-1)
Bạn thử xem nhé. Lưu ý : A1 là nơi chứa đường dẫn gốc
 
Yêu cầu gốc tại tiêu đề:

Tách chuỗi dữ liệu bởi dấu /​

Mà chuỗi lại là:
E:\2023\Data From\2023.04.28\TCQ 15\TCQ15\1166-LLP-MEP-Tender Clarification No.15.pdf

Dấu "xuyệc" 1 cái đá trái 1 cái đá phải nên các kết quả phía trên là sai hết nhé.
 
Chia buồn là Windows nhận "\" và "/" như nhau. Hoặc song kiếp hợp bích một lúc cả 2 đều được luôn.

E:\2023\Data From/2023.04.28/TCQ 15\TCQ15/1166-LLP-MEP-Tender Clarification No.15.pdf
Chép vào Run hay ở đâu đều vẫn mở lên bình thường.


Trước khi làm bài thì replace \ thành / là được. Ha ha.
 
\ và /
Người hỏi bài (viết tiêu đề) là dân Unix, hỏi bài giùm cho bạn (người viết nội dung câu hỏi) là dân DOS.
 
Đường dẫn thư mục =TRIM(LEFT(SUBSTITUTE(A1,"\",REPT(" ",500),LEN(A1)-LEN(SUBSTITUTE(A1,"\",""))),300))

Tên tập tin =TRIM(RIGHT(SUBSTITUTE(A1,"\",REPT(" ",500),LEN(A1)-LEN(SUBSTITUTE(A1,"\",""))),300))
Cách này khá hay, thay toàn bộ phần tên sau "\" cuối cùng thành chuỗi rất nhiều blank và lấy 300 ký tự để không dính tên file. Hàm trim sẽ loại bỏ 2 lần dấu cách
Nhược điểm là nếu tên dường link cũng có 2 dấu cách thì coi như tèo
 

File đính kèm

  • 1683194889112.png
    1683194889112.png
    6.2 KB · Đọc: 8
Ồ, giờ mới hiểu đối số thứ 4 của hàm SUBSTITUTE. Trước giờ cứ tưởng nó có 3 đối số thôi.
Bá đạo thật. _)(#; _)(#; _)(#;
 
Cách này khá hay, thay toàn bộ phần tên sau "\" cuối cùng thành chuỗi rất nhiều blank và lấy 300 ký tự để không dính tên file. Hàm trim sẽ loại bỏ 2 lần dấu cách
Nhược điểm là nếu tên dường link cũng có 2 dấu cách thì coi như tèo
Nhược điểm 1: nếu tên dường link cũng có 2 dấu cách thì coi như tèo.
Nhược điểm 2: tư duy hẹp quá cho nên kiến thức về hàm chuỗi như hạch. Gặp có cái "nhược điểm 1" nhỏ nhoi mà đã than "tèo" rồi.

Nếu không có cái nhược điểm 2 thì 1 không thể là nhược điểm.
 
Nhược điểm 1: nếu tên dường link cũng có 2 dấu cách thì coi như tèo.
Nhược điểm 2: tư duy hẹp quá cho nên kiến thức về hàm chuỗi như hạch. Gặp có cái "nhược điểm 1" nhỏ nhoi mà đã than "tèo" rồi.

Nếu không có cái nhược điểm 2 thì 1 không thể là nhược điểm.
Chưa hiểu ý bác muốn truyền tải ở Nhược điểm 2 là gì.
Không phải ai cũng giỏi hàm, để fix được lỗi
Mình thử và thấy có lỗi với trường hợp đó, điều đó có gì sai không bạn?
 
Chưa hiểu ý bác muốn truyền tải ở Nhược điểm 2 là gì.
Học thêm về các hàm chuỗi.

Không phải ai cũng giỏi hàm, để fix được lỗi
Tôi cũng không có khả năng "fix" lỗi. Tôi chỉ "correct/rectify" những công thức có thể gây lỗi thôi.

Mình thử và thấy có lỗi với trường hợp đó, điều đó có gì sai không bạn?
Một khi bạn muốn lý sự kiểu này thì từ "sai" chỉ là chủ quan và tương đối.
"điều đó có gì sai không" do bạn tự quyết lấy.
 
=LEFT(A1,FIND("*",SUBSTITUTE(A1,"\","*",LEN(A1)-LEN(SUBSTITUTE(A1,"\",""))))-1)
Bạn thử xem nhé. Lưu ý : A1 là nơi chứa đường dẫn gốc

Bạn có thể chuyển đổi công thức để lấy tên folder "TCQ15"
từ đường dẫn này giúp mình ??
E:\2023\Data From\2023.04.28\TCQ 15\TCQ15

Mình cũng chỉnh sửa lệnh của bạn nhưng chưa làm được (do chưa hiểu hết ý nghĩa công thức :d )
 
Web KT
Back
Top Bottom