HÀM TÁCH CHUỖI (1 người xem)

Liên hệ QC

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

trinhvinhtai

Thành viên hoạt động
Tham gia
13/12/16
Bài viết
166
Được thích
5
chào mọi người,

giúp em 1 công thức mới. như bên dưới với ạ.

nếu e dùng =LEFT(C2,SEARCH("-",C2,1)-1) em dùng cái này thi nó hiểu cái "-" đầu tiên không hiểu nếu dữ liệu có 2"-" có thể nào công thức hiểu nếu 2"-" thì cắt dữ liệu ờ gạch "-" thứ 2. em cam ơn
du lieuket qua 1
01/19DY-0501/19DY
01/2019-HF-0101/2019-HF
 
chào mọi người,

giúp em 1 công thức mới. như bên dưới với ạ.

nếu e dùng =LEFT(C2,SEARCH("-",C2,1)-1) em dùng cái này thi nó hiểu cái "-" đầu tiên không hiểu nếu dữ liệu có 2"-" có thể nào công thức hiểu nếu 2"-" thì cắt dữ liệu ờ gạch "-" thứ 2. em cam ơn
du lieuket qua 1
01/19DY-0501/19DY
01/2019-HF-0101/2019-HF
ý nghĩ có hạn mình chỉ làm tới đây thôi.
=LEFT(A1,LEN(A1)-LEN(RIGHT(A1,3)))
 
Thử
Mã:
=IF(LEN(A2)-LEN(SUBSTITUTE(A2,"-",""))>1,LEFT(A2,FIND("|",SUBSTITUTE(A2,"-","|",2)) - 1),A2)
anh ơi công thức này áp dụng cho trường hợp có 2 "-" còn trường hợp có 1"-" thì không được
Bài đã được tự động gộp:

ý nghĩ có hạn mình chỉ làm tới đây thôi.
=LEFT(A1,LEN(A1)-LEN(RIGHT(A1,3)))
ĐÚNG Ý E RỒI CAM ƠN NHÉ A
 
Nếu là loại bỏ những ký tự sau dấu "-" cuói cùng thì có thể dùng phương pháp tách chuỗi lấy phần cuối ấy. Sau đó lấy Left trừ đi độ dài phần cuối.
(ý giống như bài #3, chỉ không bị giới hạn số ký tự của phần cuối)
 
Nếu là loại bỏ những ký tự sau dấu "-" cuói cùng thì có thể dùng phương pháp tách chuỗi lấy phần cuối ấy. Sau đó lấy Left trừ đi độ dài phần cuối.
(ý giống như bài #3, chỉ không bị giới hạn số ký tự của phần cuối)
đúng nhé a. vẫn chưa đúng ví dụ 01/19FA2-002 thì nó cắt 01/19FA2- dư dấu -. a có giải pháp gì mới không
Bài đã được tự động gộp:

ý nghĩ có hạn mình chỉ làm tới đây thôi.
=LEFT(A1,LEN(A1)-LEN(RIGHT(A1,3)))
vẫn chưa đúng ví dụ 01/19FA2-002 thì nó cắt 01/19FA2- dư dấu -. a có giải pháp gì mới không
 
đúng nhé a. vẫn chưa đúng ví dụ 01/19FA2-002 thì nó cắt 01/19FA2- dư dấu -. a có giải pháp gì mới không
Bài đã được tự động gộp:


vẫn chưa đúng ví dụ 01/19FA2-002 thì nó cắt 01/19FA2- dư dấu -. a có giải pháp gì mới không
Bạn thử:
=LEFT(A1,SEARCH("-",A1,1)-1)
 
đúng nhé a. vẫn chưa đúng ví dụ 01/19FA2-002 thì nó cắt 01/19FA2- dư dấu -. a có giải pháp gì mới không
...
Bạn hỏi người ta thì tránh viết tắt. Tôi tập trung 100% não của tôi vào việc giải bài rồi, không còn dư một phần trăm nào để đoán mấy từ vết tắt.
 
Bạn thử:
=LEFT(A1,SEARCH("-",A1,1)-1)
VẪN CHƯA ĐÚNG BẠN AK. MÌNH CẦN THỎA MÃN 3 ĐIỀN KIỆN DƯỚI
Du lieuket qua
01/19DY-0501/19DY
01/2019-HF-0101/2019-HF
01/20/UV-00101/20/UV
Bài đã được tự động gộp:

Bạn hỏi người ta thì tránh viết tắt. Tôi tập trung 100% não của tôi vào việc giải bài rồi, không còn dư một phần trăm nào để đoán mấy từ vết tắt.
EM CẦN THỎA MÃN 3 ĐIỀN KIỆN DƯỚI NHÉ ANH
Du lieuket qua
01/19DY-0501/19DY
01/2019-HF-0101/2019-HF
01/20/UV-00101/20/UV
 
=LEFT($A2, LEN($A2)-1-LEN(TRIM(RIGHT(SUBSTITUTE($A2,"-", REPT(" ", 50)), 50))))

Tôi chỉ giới thiệu thuật toán 1 lần thôi. Đọc bài của thớt mỏi mắt quá.
 
VẪN CHƯA ĐÚNG BẠN AK. MÌNH CẦN THỎA MÃN 3 ĐIỀN KIỆN DƯỚI
Du lieuket qua
01/19DY-0501/19DY
01/2019-HF-0101/2019-HF
01/20/UV-00101/20/UV
Bài đã được tự động gộp:


EM CẦN THỎA MÃN 3 ĐIỀN KIỆN DƯỚI NHÉ ANH
Du lieuket qua
01/19DY-0501/19DY
01/2019-HF-0101/2019-HF
01/20/UV-00101/20/UV
Bạn thử công thức này:
=LEFT(A1,LOOKUP(100,FIND("-",A1,ROW($1:$100)))-1)
 
Bạn thử:
=LEFT(A1,SEARCH("-",A1,1)-1)
VẪN CHƯA ĐÚNG BẠN AK. MÌNH CẦN THỎA MÃN 3 ĐIỀN KIỆN DƯỚI
Du lieuket qua
01/19DY-0501/19DY
01/2019-HF-0101/2019-HF
01/20/UV-00101/20/UV
Bài đã được tự động gộp:


EM CẦN THỎA MÃN 3 ĐIỀN KIỆN DƯỚI NHÉ ANH
Du lieuket qua
01/19DY-0501/19DY
01/2019-HF-0101/2019-HF
01/20/UV-00101/20/UV
Tức là bỏ dấu "-" cuối cùng và các ký tự phía sau, vậy thì:
=LEFT(A1,FIND("@",SUBSTITUTE(A1,"-","@",(LEN(A1)-LEN(SUBSTITUTE(A1,"-","")))/LEN("-")))-1)
 
Lần chỉnh sửa cuối:
Bạn thử công thức này:
=LEFT(A1,LOOKUP(100,FIND("-",A1,ROW($1:$100)))-1)
Công thức độc đáo. Tôi có cảm tưởng là công thức này có thể nới thêm ra để chỉ thẳng vào dấu "-" thứ nth (1st, 2nd, 3rd,...), thay vì dấu cuối cùng.
Bạn có thể nới thêm?
 
Do chủ Topic hỏi không cụ thể, rõ ràng. Vì vậy, để hiểu rỏ hơn các bạn tải File trong bài viết ở Link sau: Hàm đếm tăng dần theo điều kiện , có xem File thì mới hiểu hết ý định của chủ Topic.
 
Công thức độc đáo. Tôi có cảm tưởng là công thức này có thể nới thêm ra để chỉ thẳng vào dấu "-" thứ nth (1st, 2nd, 3rd,...), thay vì dấu cuối cùng.
Bạn có thể nới thêm?
Xác định dấu cuối cùng còn thêm cách là FIND kết hợp SUBSTITUTE: =LOOKUP("ZZ",LEFT(A1,FIND("@",SUBSTITUTE(A1,"-","@",ROW(1:100)))-1)), tôi dùng FIND vì ngắn hơn. Còn nếu xác định vị trí n thì dùng FIND kết hợp SUBSTITUTE sẽ ngắn hơn: LEFT(A1,FIND("@",SUBSTITUTE(A1,"-","@",n))-1)
 
Xác định dấu cuối cùng còn thêm cách là FIND kết hợp SUBSTITUTE: =LOOKUP("ZZ",LEFT(A1,FIND("@",SUBSTITUTE(A1,"-","@",ROW(1:100)))-1)), tôi dùng FIND vì ngắn hơn. Còn nếu xác định vị trí n thì dùng FIND kết hợp SUBSTITUTE sẽ ngắn hơn: LEFT(A1,FIND("@",SUBSTITUTE(A1,"-","@",n))-1)
Xin lỗi. Có lẽ tôi vắn tắt quá. Để giải thích lại.
Ý định chính thức là:
FIND("-","a-b-c-de-01-02",ROW($1:$100))) trả về mảng { 2, 2, 4, 4, 6, 6, 9, 9, 9, 12, 12, 12, #NA, ... }
làm cách nào [index-kiểu-gì-đó](mảng, 1) -> 2; [index-kiểu-gì-đó](mảng, 4) -> 9 ?

Nhưng mà thôi, không quan trọng lắm. Biết cũng chả thấy ứng dụng chỗ nào.
 
Xin lỗi. Có lẽ tôi vắn tắt quá. Để giải thích lại.
Ý định chính thức là:
FIND("-","a-b-c-de-01-02",ROW($1:$100))) trả về mảng { 2, 2, 4, 4, 6, 6, 9, 9, 9, 12, 12, 12, #NA, ... }
làm cách nào [index-kiểu-gì-đó](mảng, 1) -> 2; [index-kiểu-gì-đó](mảng, 4) -> 9 ?

Nhưng mà thôi, không quan trọng lắm. Biết cũng chả thấy ứng dụng chỗ nào.
Như tôi nói ở trên tìm vị trí n thì FIND kết hợp SUBSTITUTE sẽ ngắn hơn, còn vẫn muốn dựa trên mảng do FIND tạo thì vẫn sẽ xác định được nhưng công thức sẽ dài hơn: LEFT(A1,AGGREGATE(15,6,MATCH(ROW($1:$100),FIND("-",A1&"-",ROW($1:$100)),),n+1)-2)
 
Như tôi nói ở trên tìm vị trí n thì FIND kết hợp SUBSTITUTE sẽ ngắn hơn, còn vẫn muốn dựa trên mảng do FIND tạo thì vẫn sẽ xác định được nhưng công thức sẽ dài hơn: LEFT(A1,AGGREGATE(15,6,MATCH(ROW($1:$100),FIND("-",A1&"-",ROW($1:$100)),),n+1)-2)
Cảm ơn. Chủ ý của tôi là tìm cách "trim" một cái mảng. Có lẽ lạc đề hơi xa.
 
Web KT

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

Back
Top Bottom