Xử lý chuỗi: Bỏ dấu và khoảng trắng (space)?

  • Thread starter Thread starter khangia
  • Ngày gửi Ngày gửi
Liên hệ QC

khangia

Thành viên mới
Tham gia
12/3/07
Bài viết
10
Được thích
0
Thân chào anh chị ! Em là lính mới tìm mãi trong rum mà không thấy những bài em cần tham khảo , nên mạo muội viết hỏi anh chị

Em cần hướng dẫn sau :

Ô A1 nhập tựa sách ví dụ "Thép Đã Tôi Thế Đấy" Ô A2 làm công thức nào sẽ trích lấy những từ ở a1 "ThepDaToiTheDay"

Lưu ý : A2 không lấy dấu , không khoảng trắng

Cám ơn vì đã đọc tin
 
Chỉnh sửa lần cuối bởi điều hành viên:
Bỏ dấu http://www.giaiphapexcel.com/forum/showthread.php?t=576 Bỏ khoảng trắng:
PHP:
Function bokhoangtrang(cel As String) For i = 1 To Len(cel) If Asc(Mid(cel, i, 1)) = 32 Then temp = temp & Mid(cel, i + 1, 1) i = i + 1 Else temp = temp & Mid(cel, i, 1) End If Next bokhoangtrang = temp End Function
THân.
 
Lần chỉnh sửa cuối:
Thân chào anh chị ! Em là lính mới tìm mãi trong rum mà không thấy những bài em cần tham khảo , nên mạo muội viết hỏi anh chị

Em cần hướng dẫn sau :

Ô A1 nhập tựa sách ví dụ "Thép Đã Tôi Thế Đấy" Ô A2 làm công thức nào sẽ trích lấy những từ ở a1 "ThepDaToiDay"

Lưu ý : A2 không lấy dấu , không khoảng trắng

Cám ơn vì đã đọc tin
1/ A2=SUBSTITUTE($A1," ","") nghĩa là thay " " = ""
2/ Copy A2, dán giá trị lại A2
3/1 Nếu có UniKey nhấn Ctr Shift F6, và chọn lọai bỏ dấu. Chọn chuyển mã, dán lại vào A2
3/2 Nếu dùng Asap Ultilities thì vào AsapUltilities/ 8.Text/15. Replace Accented Characters ...Chọn vùng cần chuyển và OK.
Asap Ultilities vào Google mà kiếm.

Còn muốn dùng VBA thì kiếm bài của Thầy Phạm Duy Long.
 
Bạn vui lòng chỉ từ từ để mình học với.
Xin cảm thông nhe.
Thân
Cái hàm REPLACE này là dùng trong VBA chứ ko phải trong công thức đâu anh ơi! Tức thay vì dùng vòng lập For như bài #2 thì dùng hàm REPLACE sẽ nhanh hơn
(còn công thức cũng có hàm REPLACE nhưng trong trường hợp này sẽ ko dùng được)
Cụ thể UDF đó sẽ là:
PHP:
Function bokhoangtrang(cel As String) As String
  bokhoangtrang = Replace(cel, " ", "")
End Function
Gọn hơn nhiều (nhưng chả cần thiết vì SUBSTITUTE làm việc này còn ngon lành hơn)
 
Lần chỉnh sửa cuối:
To: Khangia
Gởi bạn file ví dụ theo yêu cầu loại bỏ dấu và khoảng cách
 

File đính kèm

To: Khangia
Gởi bạn file ví dụ theo yêu cầu loại bỏ dấu và khoảng cách
Gộp lại 2 code luôn.
PHP:
Const CodUni = "225  224  7843 227  7841 259  7855 7857 7859 7861 7863 226  7845 7847 7849 7851 7853 233  232  7867 7869 7865 234  7871 7873 7875 7877 7879 237  236  7881 297  7883 243  242  7887 245  7885 244  7889 7891 7893 7895 7897 417  7899 7901 7903 7905 7907 250  249  7911 361  7909 432  7913 7915 7917 7919 7921 253  7923 7927 7929 7925 273  193  193  192  192  7842 7842 195  195  7840 7840 258  258  7854 7854 7856 7856 7858 7858 7860 7860 7862 7862 194  194  7844 7844 7846 7846 7848 7848 7850 7850 7852 7852 201  201  200  200  7866 7866 7868 7868 7864 7864 202  202  7870 7870 7872 7872 7874 7874 7876 7876 7878 7878 205  204  7880 296  7882 211  211  210  210  7886 7886 213  213  7884 7884 212  212  7888 7888 7890 7890 7892 7892 7894 7894 7896 7896 416  7898 7898 7900 7900 7902 7902 7904 7904 7906 7906 218  218  217  217  7910 7910 360  360  7908 7908 431  7912 7912 7914 7914 7916 7916 7918 7918 7920 7920 221  221  7922 7922 7926 7926 7928 7928 7924 272  "
Const Str0dau = "aaaaaaaaaaaaaaaaaeeeeeeeeeeeiiiiiooooooooooooooooouuuuuuuuuuuyyyyydAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEEEEEEEEEEEEEEEEEEEEEIIIIIOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOUUUUUUUUUUUUUUUUUUUUUYYYYYYYYYD"
Private Function LoaiDauUni(Text As String) As String 'Ham loai bo dau : =loaidauUni()GPE.com.vn
Text = Text & " "
madau = " "
Dim NewText As String
For N = 1 To Len(Text) - 1
  kytu = Mid(Text, N, 1)
  codkytu = AscW(kytu) & String(5 - Len(CStr(AscW(kytu))), " ")
  vitri = (InStr(1, CodUni, codkytu, 0) + 4) / 5
  If vitri >= 1 Then
    NewText = NewText & Mid(Str0dau, vitri, 1)
  Else
    NewText = NewText & kytu
  End If
Next
LoaiDauUni = Replace(NewText, " ", "")
End Function
 
Hay quá Mymichau ui ! Cám ơn nhiều nha ! vì công viêc mình là đặt tên sách và đặt tên fie hình sau khi scan . . . mà file hình có khoảng trắng và dấu thì add lên web nó không show hình ra . TKS all


Sẵn cho em hỏi . . . đoạn code trên làm sao để chạy ? vui lòng cho em các đường link những bài viết về add đoạn code vào excel nha các anh chị !

Chúc anh chị may mắn sức khỏe !
 
Gộp lại 2 code luôn.
PHP:
Const CodUni = "225  224  7843 227  7841 259  7855 7857 7859 7861 7863 226  7845 7847 7849 7851 7853 233  232  7867 7869 7865 234  7871 7873 7875 7877 7879 237  236  7881 297  7883 243  242  7887 245  7885 244  7889 7891 7893 7895 7897 417  7899 7901 7903 7905 7907 250  249  7911 361  7909 432  7913 7915 7917 7919 7921 253  7923 7927 7929 7925 273  193  193  192  192  7842 7842 195  195  7840 7840 258  258  7854 7854 7856 7856 7858 7858 7860 7860 7862 7862 194  194  7844 7844 7846 7846 7848 7848 7850 7850 7852 7852 201  201  200  200  7866 7866 7868 7868 7864 7864 202  202  7870 7870 7872 7872 7874 7874 7876 7876 7878 7878 205  204  7880 296  7882 211  211  210  210  7886 7886 213  213  7884 7884 212  212  7888 7888 7890 7890 7892 7892 7894 7894 7896 7896 416  7898 7898 7900 7900 7902 7902 7904 7904 7906 7906 218  218  217  217  7910 7910 360  360  7908 7908 431  7912 7912 7914 7914 7916 7916 7918 7918 7920 7920 221  221  7922 7922 7926 7926 7928 7928 7924 272  "
Const Str0dau = "aaaaaaaaaaaaaaaaaeeeeeeeeeeeiiiiiooooooooooooooooouuuuuuuuuuuyyyyydAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEEEEEEEEEEEEEEEEEEEEEIIIIIOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOUUUUUUUUUUUUUUUUUUUUUYYYYYYYYYD"
Private Function LoaiDauUni(Text As String) As String 'Ham loai bo dau : =loaidauUni()GPE.com.vn
Text = Text & " "
madau = " "
Dim NewText As String
For N = 1 To Len(Text) - 1
  kytu = Mid(Text, N, 1)
  codkytu = AscW(kytu) & String(5 - Len(CStr(AscW(kytu))), " ")
  vitri = (InStr(1, CodUni, codkytu, 0) + 4) / 5
  If vitri >= 1 Then
    NewText = NewText & Mid(Str0dau, vitri, 1)
  Else
    NewText = NewText & kytu
  End If
Next
LoaiDauUni = Replace(NewText, " ", "")
End Function


Chào ThuNghi !

Giúp em tạo một file vidu bằng excel nhé . . . em copy đoạn code trên về làm mà không được . . . nếu giúp em tạo file thì em dựa đó mà add in thì đuợc . . . giúp đỡ cho nguời mới nha các anh chị TKS
 
Chào ThuNghi !

Giúp em tạo một file vidu bằng excel nhé . . . em copy đoạn code trên về làm mà không được . . . nếu giúp em tạo file thì em dựa đó mà add in thì đuợc . . . giúp đỡ cho nguời mới nha các anh chị TKS
Giống vầy nè!
Mở file lên, bấm Alt + F11 để xem code!
 

File đính kèm

Gởi bạn file ví dụ theo yêu cầu loại bỏ dấu và khoảng cách
Thật tuyệt, mình cũng đã hỏi vấn đề trên ở đây
http://www.giaiphapexcel.com/forum/showthread.php?t=13529
nhưng ko ai trả lời, cần gấp nên đành phải dùng Unikey
Cám ơn mymichau lần nữa.

Thực ra nếu có thể tổng quát hơn loại bỏ dấu chỉ để lại các mã ASCII (< 256 ?) chuẩn thôi thì thật hay
 
xử lý chuỗi ký tự

Giúp em với!
nếu em có một chuỗi ký tự gồm các ký tự có dấu "-" như sau: 12-34, 1-23, 0-12
làm thế nào để chuyển thành số toán học và ngược lại.
tức là có các số (<=4 số): 1234, 123, 12, 1 làm thế nào để chuyển thành: 12-34, 1-23, 0-12, 0-01
 
Lần chỉnh sửa cuối:
Giúp em với!
nếu em có một chuỗi ký tự gồm các ký tự có dấu "-" như sau: 12-34, 1-23, 0-12
làm thế nào để chuyển thành số toán học và ngược lại.
tức là có các số (<=4 số): 1234, 123, 12, 1 làm thế nào để chuyển thành: 12-34, 1-23, 0-12, 0-01
Tóm lại bạn muốn chuyển 12-34 thành 1234 hay ngược lại? Phần "nếu" và phần "tức là" mâu thuẫn quá
 
Giúp em với!
1./nếu em có một chuỗi ký tự gồm các ký tự có dấu "-" như sau: 12-34, 1-23, 0-12
làm thế nào để chuyển thành số toán học và ngược lại.
tức là có các số (<=4 số):2./ 1234, 123, 12, 1 làm thế nào để chuyển thành: 12-34, 1-23, 0-12, 0-01
1./ Dùng hàm =SUBSTITUTE("12-34","-","") =>1234
2./ Dùng hàm =TEXT(1234,"0-00") => 12-34
 
Web KT

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

Back
Top Bottom