tieutuvodanh192
Thành viên thường trực
- Tham gia
- 25/3/19
- Bài viết
- 289
- Được thích
- 322
Thử:Xin chào các Anh/Chị thành viên GPE,
Nhờ các Anh/Chị xem giúp em công thức có thể tìm chính xác được vị trí của khoảng trắng nhỏ hơn và gần với ký tự thứ 35 nhất. Xin cảm ơn.
C2=LEFT(A2,-LOOKUP(,-TEXT(SEARCH(" ",A2,30+{1;2;3;4;5}),"[<37];\0;")))
Dạ vâng cảm ơn anh, em sẽ cố gắng đọc hiểu công thức của anh.Thử:
Enter. Fill xuống.Mã:C2=LEFT(A2,-LOOKUP(,-TEXT(SEARCH(" ",A2,30+{1;2;3;4;5}),"[<37];\0;")))
Thân
Xem từng phần công thức như file kèmDạ vâng cảm ơn anh, em sẽ cố gắng đọc hiểu công thức của anh.
Cũng có thể giản lược bớt trong hàm Text() như sau:Dạ vâng cảm ơn anh, em sẽ cố gắng đọc hiểu công thức của anh.
Dạ vâng cảm ơn anh rất nhiều, em có thấy rằng nếu chuỗi ký tự < 35 ký tự thì công thức sẽ báo lỗi, như vậy chèn thêm 1 điều kiện IFERROR nữa là chính xác.Xem từng phần công thức như file kèm
Thân
Bài đã được tự động gộp:
Cũng có thể giản lược bớt trong hàm Text() như sau:
C2=LEFT(A2,-LOOKUP(,-TEXT(SEARCH(" ",A2,30+{1;2;3;4;5}),"[<37]")))
Thân
Công thức ngon lành. @Phan Thế Hiệp giải thích thêm giúp.Thử:
Enter. Fill xuống.Mã:C2=LEFT(A2,-LOOKUP(,-TEXT(SEARCH(" ",A2,30+{1;2;3;4;5}),"[<37];\0;")))
Thân
Công thức ngon lành. @Phan Thế Hiệp giải thích thêm giúp.
+ Chữ dài nhất trong tiếng Việt là chữ "Nghiêng" 7 ký tự thì có nên từ 1 đến 6 ?
+ Và [<37] là sao nhỉ ?
Tôi đâu nghĩ sâu xa như các bạn vậy! Các bạn nghĩ đến chữ "nghiêng" 7 ký tự là giỏi hơn tôi rồi!Anh cho em hỏi thêm tại sao anh xét điều kiện <37, có phải vì từ dài nhất trong tiếng việt có 7 ký tự là "nghiêng" phải không ạ.
Theo tôi hiểu thì bạn muốn cắt 35 ký tự đầu, nếu vị trí cắt ở giữa một chữ thì bỏ chữ đó.Xin chào các Anh/Chị thành viên GPE,
Nhờ các Anh/Chị xem giúp em công thức có thể tìm chính xác được vị trí của khoảng trắng nhỏ hơn và gần với ký tự thứ 35 nhất. Xin cảm ơn.
=VLOOKUP("* ",LEFT(A2&" .",{37,36}-ROW($1:$35)),2,)
Tạo mảng quá hay!Theo tôi hiểu thì bạn muốn cắt 35 ký tự đầu, nếu vị trí cắt ở giữa một chữ thì bỏ chữ đó.
Mã:=VLOOKUP("* ",LEFT(A2&" .",{37,36}-ROW($1:$35)),2,)
Hình như công thức này dùng mảng 1 chiều cũng được:Theo tôi hiểu thì bạn muốn cắt 35 ký tự đầu, nếu vị trí cắt ở giữa một chữ thì bỏ chữ đó.
Mã:=VLOOKUP("* ",LEFT(A2&" .",{37,36}-ROW($1:$35)),2,)
Dư khoản trắng ở cuối (và bị lỗi nếu chuỗi ngắn hơn 30 ký tự - chỗ này tùy yêu cầu của chủ topic)Hình như công thức này dùng mảng 1 chiều cũng được:
=VLOOKUP("* ",LEFT(A2&" .",37-ROW($1:$6)),1,)
Còn thiếu sót gì so với yêu cầu của thớt không nhỉ!?
Thêm một công thức cho bạn tham khảo:Xin chào các Anh/Chị thành viên GPE,
Nhờ các Anh/Chị xem giúp em công thức có thể tìm chính xác được vị trí của khoảng trắng nhỏ hơn và gần với ký tự thứ 35 nhất. Xin cảm ơn.
=LEFT(A2,-1-LOOKUP(,-ROW($1:$36)/(MID(A2,ROW($1:$36),1)=" ")))
Công thức của anh rất hay, nhưng còn bất tiện nếu chuỗi ngắn hơn 31 hoặc chứa từ tiếng anh dài (không có dấu space) trong khoảng vị trí từ 31-36C2=LEFT(A2,-LOOKUP(,-TEXT(SEARCH(" ",A2,30+{1;2;3;4;5}),"[<37];\0;")))
Nếu đúng theo yêu cầu này thì có thể dùng công thức này.xác được vị trí của khoảng trắng nhỏ hơn và gần với ký tự thứ 35 nhất
=LOOKUP(34,FIND(" ",A2,ROW($1:$34)))
Nếu sau đó dùng kết quả này để dò tìm dữ liệu thì dùng hàm TRIM có vẻ không ổn.Hình như đang phức tạp hóa vấn đề.
=TRIM(LEFT(SUBSTITUTE(TRIM(A1)," ",REPT(" ", 2000),35),1000))
Nếu sau đó dùng kết quả này để dò tìm dữ liệu thì dùng hàm TRIM có vẻ không ổn.
Em cần ngắt đúng chuỗi ký tự, cụ thể chính xác như anh Hữu Thắng đã mô tả: cắt 35 ký tự đầu, nếu vị trí cắt ở giữa một chữ thì bỏ chữ đó.Thớt cần ngắt dòng để đỡ tràn khỏi trang in thôi anh.
Các ý tưởng lóe lên được úp lên diễn đàn đều tuyệt vời, và họ không bao giờ chịu cất giấu cái ý tưởng đó đi để nêu bài toán của mình.
Vậy nên trước khi trả lời thường phải đi ngược về quá khứ xem thớt đã và đang làm cái gì.