Trang 1 của 2 12 CuốiCuối
Kết quả 1 đến 10 của 16

Chủ đề: tách 1 số thành từng chữ số riêng biệt

  1. #1
    Alpenliebe Guest

    tách 1 số thành từng chữ số riêng biệt

    Mọi người giúp mình ví dụ này

    A1=1234.56
    mình muốn có kết quả từng ô thế này
    A2=1 ===> (chữ số hàng nghìn)
    A3=2 ===> (chữ số hàng trăm)
    A4=3 ===> (chữ số hàng chục)
    A5=4 ===> (chữ số hàng đơn vị)
    A6=1 ===> (chữ số hàng phần 10)

    => Tách đến đây không có vấn đề gì. Nhưng tại ô A7 muốn tách ra chữ số hàng % thì gán A7 với hàm Vlookup không nhận được (có thể áp dụng công thức không chuẩn), không hiểu lí do tại sao ???
    VD: B1=0 B2=1 ... B9=8 B10=9
    C1=A C2=B ... C9=I C10=J
    A8=VLOOKUP(A7,B1:C10,2,0) => #N/A (LẼ RA PHẢI CHO KẾT QUẢ LÀ I)

    mình có thể dùng tại a7=value(right(a1,1)) nhưng với trương hợp a1=1234.50 thì lại không được
    mong mọi người có thể giúp và post file cho ví dụ đơn giản này
    THS!

  2. #2
    Ngày tham gia
    Aug 2015
    Bài viết
    4
    Bạn có thể đưa file cụ thể bạn đang làm và ghi rõ kết quả mong muốn vào đó để mọi người dễ hiểu hơn không?




    mình có thể dùng tại a7=value(right(a1,1)) nhưng với trương hợp a1=1234.50 thì lại không được
    Vậy bạn thử dùng:

    Mã nguồn PHP:
    A7=RIGHT(TEXT(A1,"#.#0"))  

  3. #3
    ngoctran89 Guest
    Dùng Mid kết hợp Find như file này được không?

  4. #4
    hungnd Guest
    Trích dẫn Gửi bởi duchuynh103
    Dùng Mid kết hợp Find như file này được không?
    Bạn xem lại công thức xem sao, vì mình mở file của bạn lên thì công thức bị #Value.

    Tuy nhiên xem qua công thức mình nghĩ bạn có thể thực hiện như sau:
    Giả sử Ô A1=12345.67891
    Ô B1 gõ: B1 = MID($A$1,ROWS($1:1),1)

    Sau đó copy down công thức xuống dưới là xong.

  5. #5
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Trích dẫn Gửi bởi ca_dafi
    Bạn xem lại công thức xem sao, vì mình mở file của bạn lên thì công thức bị #Value.

    Tuy nhiên xem qua công thức mình nghĩ bạn có thể thực hiện như sau:
    Giả sử Ô A1=12345.67891
    Ô B1 gõ: B1 = MID($A$1,ROWS($1:1),1)

    Sau đó copy down công thức xuống dưới là xong.
    Chưa thử, nhưng ngó sơ qua công thức thì thấy kết quả ở ô B6 sẽ là 1 dấu chấm (.)
    Không biết là như thế thì tác giả topic này có hài lòng không?

  6. #6
    nghidinh24 Guest
    mình thực hiện theo các ban không được.
    xin chỉ dẫn thêm
    Ý của mình là thế này:
    - Mình có 1 giá trị < 10000 có dạng 1234,56
    Yêu cầu: tách riêng được từng chữ số và kết hợp được từng chữ số đó vơi vlookup.
    làm theo cách của 2 bạn đều không được. (báo #N/A)

  7. #7
    niemtin259 Guest
    Trích dẫn Gửi bởi phantuanviet
    mình thực hiện theo các ban không được.
    xin chỉ dẫn thêm
    Ý của mình là thế này:
    - Mình có 1 giá trị < 1000 có dạng 1234,56
    Yêu cầu: tách riêng được từng chữ số và kết hợp được từng chữ số đó vơi vlookup.
    làm theo cách của 2 bạn đều không được. (báo #N/A)
    Một con số < 1000 thì không thể có dạng 1234,56 được! 1234,56 là một con số > 1000 mà?

  8. #8
    linhvnpt Guest
    Mình đánh nhầm
    số nhỏ hơn 10000 và có 2 chữ số phần thập phân
    tách ra được nhưng không kết hợp với vlookup được ???
    Xin giúp đỡ

  9. #9
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Trích dẫn Gửi bởi phantuanviet
    Mình đánh nhầm
    số nhỏ hơn 10000 và có 2 chữ số phần thập phân
    tách ra được nhưng không kết hợp với vlookup được ???
    Xin giúp đỡ
    Bạn dùng cái này thử xem:

    Mở VBE (Alt+F11), Insert một Module, rồi trong Module đó gõ cái này vào:

    Mã nguồn PHP:
    Function TachSo(ConSo, Optional Vitri = 1) If Len(Int(ConSo)) > 4 Then TachSo = "Incorect Number!": Exit Function If Len(ConSo) = Len(Int(ConSo)) Then If Vitri > Len(Int(ConSo)) Then TachSo = "Missing Number!": Exit Function Else If Vitri > Len(ConSo) - 1 Then TachSo = "Missing Number!": Exit Function If Vitri >= WorksheetFunction.Find(".", ConSo) Then Vitri = Vitri + 1 End If TachSo = Mid(ConSo, Vitri, 1) * 1 End Function  
    Ra ngoài bảng tính, ví dụ con số bạn đang để ở ô A1, và bạn muốn tách con số này ra từng con số bắt đầu từ hàng thứ 2 (từ ô A2), tại ô A2 bạn gõ công thức:
    40pxRồi kéo xuống dưới.

    Nếu như kết quả bạn nhận được là "Missing Number!" thì đó là đã hết giới hạn chiều dài con số của bạn. Bạn xóa mấy cái ô đó đi là xong. Còn nếu như kết quả bạn nhận được là "Incorrect Number!" thì đó là do bạn đã xài một con số > 9999.

    Nói thêm: Công thức này chỉ chạy đúng nếu như định dạng số bạn đang dùng là kiểu Mỹ (dấu phân cách hàng nghìn là dấu chấm). Lỡ như bạn dùng định dạng số kiểu Việt Nam (dấu phân cách hàng nghìn là dấu phẩy), thì bạn sửa cái dấu chấm của hàm FIND trong cái code của TachSo thành dấu phẩy:

    Mã nguồn PHP:
    If Vitri >= WorksheetFunction.Find(",", ConSo) Then Vitri = Vitri + 1  

  10. #10
    mobilecity Guest
    Trích dẫn Gửi bởi phantuanviet
    Mọi người giúp mình ví dụ này

    A1=1234.56
    mình muốn có kết quả từng ô thế này
    A2=1 ===> (chữ số hàng nghìn)
    A3=2 ===> (chữ số hàng trăm)
    A4=3 ===> (chữ số hàng chục)
    A5=4 ===> (chữ số hàng đơn vị)
    A6=1 ===> (chữ số hàng phần 10)

    => Tách đến đây không có vấn đề gì. Nhưng tại ô A7 muốn tách ra chữ số hàng % thì gán A7 với hàm Vlookup không nhận được (có thể áp dụng công thức không chuẩn), không hiểu lí do tại sao ???
    VD: B1=0 B2=1 ... B9=8 B10=9
    C1=A C2=B ... C9=I C10=J
    A8=VLOOKUP(A7,B1:C10,2,0) => #N/A (LẼ RA PHẢI CHO KẾT QUẢ LÀ I)

    mình có thể dùng tại a7=value(right(a1,1)) nhưng với trương hợp a1=1234.50 thì lại không được
    mong mọi người có thể giúp và post file cho ví dụ đơn giản này
    THS!
    Mời mọi người xem file. Trong file là hai cách làm. Một cách dùng công thức tính toán với số nguồn đề lấy ra từng chữ số. Một cách chuyển số nguồn sang chuỗi và dùng Mid().

Trang 1 của 2 12 CuốiCuối

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •