Xin công thức tách chuỗi ký tự (1 người xem)

Liên hệ QC

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

Backy1990

Thành viên mới
Tham gia
25/6/11
Bài viết
27
Được thích
2
Nghề nghiệp
Kế toán
Chào cả nhà!
Làm ơn cho tôi xin công thức tách lấy chuỗi con bắt đầu từ 1 ký tự có trong chuỗi lớn.
(Ký tự này chỉ xuất hiện 1 lần trong chuỗi nhưng ở 1 vị trí bất kỳ)
Trong file gửi kèm là ký tự "-". Kết quả trả về là các chuỗi con từ ký tự "-" về đầu hoặc cuối chuỗi.
Cảm ơn thật nhiều!
 

File đính kèm

Chào cả nhà!
Làm ơn cho tôi xin công thức tách lấy chuỗi con bắt đầu từ 1 ký tự có trong chuỗi lớn.
(Ký tự này chỉ xuất hiện 1 lần trong chuỗi nhưng ở 1 vị trí bất kỳ)
Trong file gửi kèm là ký tự "-". Kết quả trả về là các chuỗi con từ ký tự "-" về đầu hoặc cuối chuỗi.
Cảm ơn thật nhiều!
Làm được nhưng hơi lằng ngoằng thí.
Tham khảo file nhé
 

File đính kèm

Chào cả nhà!
Làm ơn cho tôi xin công thức tách lấy chuỗi con bắt đầu từ 1 ký tự có trong chuỗi lớn.
(Ký tự này chỉ xuất hiện 1 lần trong chuỗi nhưng ở 1 vị trí bất kỳ)
Trong file gửi kèm là ký tự "-". Kết quả trả về là các chuỗi con từ ký tự "-" về đầu hoặc cuối chuỗi.
Cảm ơn thật nhiều!
Bạn xem lại hàng thứ 3 và thứ 8 kết quả nó phải như vậy không? vì tôi thấy 2 hàng đó nó không có cái gì chung để làm hết
nếu hàng 3 là 641 111
và hàng 8 là 8211 3334
thì bạn sẽ kết hợp hàm If- hàm Find và hàm Left thì kết quả như mong muốn
 
Lần chỉnh sửa cuối:
Công thức tại ô C3:

PHP:
IF(LEFT(A3,3)="333",LEFT(TRIM(LEFT(SUBSTITUTE(A3,"-",REPT(" ",255)),255)),4),LEFT(TRIM(LEFT(SUBSTITUTE(A3,"-",REPT(" ",255)),255)),3))

Công thức tại ô D3:

PHP:
=IF(LEFT(TRIM(MID(SUBSTITUTE(A3,"-",REPT(" ",255)),255,255)),3)="333",LEFT(TRIM(MID(SUBSTITUTE(A3,"-",REPT(" ",255)),255,255)),4),LEFT(TRIM(MID(SUBSTITUTE(A3,"-",REPT(" ",255)),255,255)),3))

Sau đó bạn kéo xuống các ô còn lại
 
Làm được nhưng hơi lằng ngoằng thí.
Tham khảo file nhé

Đâu mà dài dòng vậy!
Bài toán tách chuổi dựa vào dấu phân cách nào đó đã post đầy trên diễn đàn rồi còn gì
Hơn nữa tác giả có nói
Ghi chú : Tài khoản thuế (3 ký tự đầu là 333) kết quả lấy 4 ký tự. Còn lại lấy 3 ký tự
nên kết quả của bạn chưa đúng
Tôi làm như sau:
- Công thức tại C3:
PHP:
=LEFT(TRIM(LEFT(SUBSTITUTE(TRIM($A3),"-",REPT(" ",255)),255)),IF(COUNTIF($A3,"333*"),4,3))
- Công thức tại D3:
PHP:
=LEFT(TRIM(RIGHT(SUBSTITUTE(TRIM($A3),"-",REPT(" ",255)),255)),IF(COUNTIF($A3,"*-333*"),4,3))
 

File đính kèm

Lần chỉnh sửa cuối:
Hôm nay học được sư phụ về sử dụng Countif rất hay, em xin có thêm phương án

Công thức cho ô C3 là:
PHP:
=LEFT(A3;IF(COUNTIF(A3;"333*");4;3))

Công thức cho ô D3 là:

PHP:
=MID(A3;FIND("-";A3)+1;IF(COUNTIF(A3;"*-333*");4;3))
 

File đính kèm

Lần chỉnh sửa cuối:
Hôm nay học được sư phụ về sử dụng Countif rất hay, em xin có thêm phương án

Công thức cho ô C3 là:
PHP:
=LEFT(A3;IF(COUNTIF(A3;"333*");4;3))

Giải pháp đơn giản vậy mà nhiều khi suy nghĩ nhiều quá đâm ra... phát khùng
Ẹc... Ẹc...
--------------------
Ah! Mà có khi nào chuổi có dạng 333-141 không ta? Khi ấy công thức sẽ sai
Xin lỗi, tôi không rành kế toán nên không biết mấy vụ này
 
Lần chỉnh sửa cuối:
Ah! Mà có khi nào chuổi có dạng 333-141 không ta? Khi ấy công thức sẽ sai
Xin lỗi, tôi không rành kế toán nên không biết mấy vụ này

Em nghĩ chắc là không đâu thày ah, bởi đầu bài tác giả đã muốn nếu là 333 sẽ lấy 4 ký tự --> 333 dù đánh ở bên phải (hoặc bên trái) dấu trừ (-) thì dữ liệu đầu vào cũng phải đánh ít nhất 4 con số (333 + một số khác)
 
Em nghĩ chắc là không đâu thày ah, bởi đầu bài tác giả đã muốn nếu là 333 sẽ lấy 4 ký tự --> 333 dù đánh ở bên phải (hoặc bên trái) dấu trừ (-) thì dữ liệu đầu vào cũng phải đánh ít nhất 4 con số (333 + một số khác)
Nói không thì không đúng vì trong thực tế cặp tài khoản đối ứng này vẫn có thể xáy ra. Thực tế phức tạp hơn nhiều bạn ạ, có lẽ hãy để tác giả tự tìm câu trả lời vì họ mới là người hạch toán chứ k phải chúng ta.
Thanks!
 

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

Back
Top Bottom