Tìm vị trí chữ số trong text

Liên hệ QC

Phamanh1998

Thành viên thường trực
Tham gia
12/6/20
Bài viết
267
Được thích
41
Giới tính
Nữ
Em chào anh chị ạ. Hiện nay em đang có một số chuỗi văn bản cần xử lý tìm vị trí của giá trị số cuối cùng xuất hiện trong chuỗi. Chi tiết em đính kèm trong file. Em mong được anh chị hỗ trợ ạ. Em cảm ơn anh chị
 

File đính kèm

  • Tách chuỗi.xlsx
    8.9 KB · Đọc: 31
Thử:

=AGGREGATE(14,6,ROW(INDIRECT("1:"&LEN(A4)))/ISNUMBER(--MID(A4,ROW(INDIRECT("1:"&LEN(A4))),1)),1)
 
Em chào anh chị ạ. Hiện nay em đang có một số chuỗi văn bản cần xử lý tìm vị trí của giá trị số cuối cùng xuất hiện trong chuỗi. Chi tiết em đính kèm trong file. Em mong được anh chị hỗ trợ ạ. Em cảm ơn anh chị
Nếu dữ liệu không có gì thay đổi thì bằng đúng độ dài chuỗi đó trừ đi 4 ký tự " VNĐ" thôi mà :D
 
Thử:

=AGGREGATE(14,6,ROW(INDIRECT("1:"&LEN(A4)))/ISNUMBER(--MID(A4,ROW(INDIRECT("1:"&LEN(A4))),1)),1)
Dạ em cảm ơn anh ạ, với dữ liệu ở trên em test đã thành công ạ.
Nếu dữ liệu không có gì thay đổi thì bằng đúng độ dài chuỗi đó trừ đi 4 ký tự " VNĐ" thôi mà :D
Dạ nhiều khi thay đổi bằng các kí tự đồng tiền khác anh ạ. Em xin lỗi vì không thêm dữ liệu trường hợp đó làm anh hiểu nhầm ạ
 
Em chào anh chị ạ. Hiện nay em đang có một số chuỗi văn bản cần xử lý tìm vị trí của giá trị số cuối cùng xuất hiện trong chuỗi. Chi tiết em đính kèm trong file. Em mong được anh chị hỗ trợ ạ. Em cảm ơn anh chị
Thử cách khác (dữ liệu chắc mỗi ô không quá 1000 ký tự đâu nhỉ)
Mã:
=LOOKUP(2,(MID(A1,ROW($1:$1000),1)+1)^0,ROW($1:$1000))
 
MATCH chắc ngắn hơn :)
 
Mà CSE thì có vấn đề gì nhỉ.
Vì có nhiều người không biết về công thức mảng, mà mở file lên hay có thói quen click đúp vào công thức để xem, sau đó lại ấn enter và tưởng như là nó không có vấn đề gì. Phòng trường hợp đó thôi anh
 
Bác rút gọn em học hỏi với, em có nghĩ ra lookupvalue là số đủ lớn thì lookup vector phải là dãy thứ tự. viết được nhưng không gọn hơn bao nhiêu. Không biết bác làm thế nào
Bỏ lũy thừa
=LOOKUP(1,-MID(A4,ROW($1:$1000),1),ROW($1:$1000))
 
Lần chỉnh sửa cuối:
Bỏ lũy thừa
=LOOKUP(9,--MID(A4,ROW($1:$1000),1),ROW($1:$1000))
Công thức chắc chắn sai ví dụ với A4 = Abcde 8.000 z 9.000.000 VNĐ
----------
Nếu muốn lấy kết quả cuối cùng thì Giá trị tìm phải > "giá trị lớn nhất có thể có trong dãy". Không thể là Giá trị tìm = "giá trị lớn nhất có thể có trong dãy". Tôi đã viết một lần rồi khi bàn về cấu trúc kiểu như =LOOKUP(2; 1/(A$1:A$10 = "hic hic");B$1:B$10).

Nếu là =LOOKUP(1; 1/(A$1:A$10="hic hic");B$1:B$10) thì với dữ liệu nào đó của A1:A10 kết quả sẽ sai.
 
Em chào anh chị ạ. Hiện nay em đang có một số chuỗi văn bản cần xử lý tìm vị trí của giá trị số cuối cùng xuất hiện trong chuỗi. Chi tiết em đính kèm trong file. Em mong được anh chị hỗ trợ ạ. Em cảm ơn anh chị
tham khảo công thức mảng =MAX(IFERROR(ROW(INDIRECT("1:"&LEN(A4)))/ISNUMBER(VALUE(MID(A4;ROW(INDIRECT("1:"&LEN(A4)));1)));0))
Bài đã được tự động gộp:

Em chào anh chị ạ. Hiện nay em đang có một số chuỗi văn bản cần xử lý tìm vị trí của giá trị số cuối cùng xuất hiện trong chuỗi. Chi tiết em đính kèm trong file. Em mong được anh chị hỗ trợ ạ. Em cảm ơn anh chị
nếu dữ liệu đề có quy luật là số - dấu cách - đơn vị tiền tệ thì tham khảo công thức =SEARCH(TRIM(RIGHT(SUBSTITUTE(A4;" ";REPT(" ";LEN(A4)));LEN(A4)));A4)-2
 
Lần chỉnh sửa cuối:
Công thức chắc chắn sai ví dụ với A4 = Abcde 8.000 z 9.000.000 VNĐ
----------
Nếu muốn lấy kết quả cuối cùng thì Giá trị tìm phải > "giá trị lớn nhất có thể có trong dãy". Không thể là Giá trị tìm = "giá trị lớn nhất có thể có trong dãy". Tôi đã viết một lần rồi khi bàn về cấu trúc kiểu như =LOOKUP(2; 1/(A$1:A$10 = "hic hic");B$1:B$10).

Nếu là =LOOKUP(1; 1/(A$1:A$10="hic hic");B$1:B$10) thì với dữ liệu nào đó của A1:A10 kết quả sẽ sai.
Rút ngắn công thức thêm
=LOOKUP(1,-MID(A4,ROW($1:$1000),1),ROW($1:$1000))
 
Em chào anh chị ạ. Hiện nay em đang có một số chuỗi văn bản cần xử lý tìm vị trí của giá trị số cuối cùng xuất hiện trong chuỗi. Chi tiết em đính kèm trong file. Em mong được anh chị hỗ trợ ạ. Em cảm ơn anh chị
Không biết bạn cần tìm vị trí của giá trị số cuối cùng để làm gì?
Tôi nghĩ bạn cần lấy số tiền ra, nếu đúng vậy thì có thể sử dụng Find and Replace với vài thao tác là được kết quả cho cả cột.
 
Công thức chắc chắn sai ví dụ với A4 = Abcde 8.000 z 9.000.000 VNĐ
----------
Nếu muốn lấy kết quả cuối cùng thì Giá trị tìm phải > "giá trị lớn nhất có thể có trong dãy". Không thể là Giá trị tìm = "giá trị lớn nhất có thể có trong dãy". Tôi đã viết một lần rồi khi bàn về cấu trúc kiểu như =LOOKUP(2; 1/(A$1:A$10 = "hic hic");B$1:B$10).

Nếu là =LOOKUP(1; 1/(A$1:A$10="hic hic");B$1:B$10) thì với dữ liệu nào đó của A1:A10 kết quả sẽ sai.
Rút ngắn công thức thêm
=LOOKUP(1,-MID(A4,ROW($1:$1000),1),ROW($1:$1000))
Để khỏi mập mờ thì tôi giải thích thêm cho những ai không tự hiểu được.
Công thức =LOOKUP(1,-MID(A4,ROW($1:$1000),1),ROW($1:$1000)) không có lỗi vì dãy, tức tham số thứ 2, chỉ có thể chứa các giá trị không dương -9, -8, ..., -1, 0. Tức thỏa mãn điều kiện mà tôi đã nêu ra:
Giá trị tìm phải > "giá trị lớn nhất có thể có trong dãy"
Ở đây ta có 1 > 0 = max(-9, ..., -1, 0)

Trong công thức mà tôi lấy làm vd. =LOOKUP(1; 1/(A$1:A$10="hic hic");B$1:B$10) có lỗi vì dãy, tức tham số thứ 2, chỉ chứa toàn số 1. Tức không thỏa mãn điều kiện mà tôi đưa ra. Ở đây ta có 1 = 1 = max(1, ..., 1)
 
Web KT

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

Back
Top Bottom