Hỏi về Format Cell (3 người xem)

Liên hệ QC

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

Cá ngừ F1

( ͡° ͜ʖ ͡°)
Thành viên BQT
Moderator
Tham gia
1/1/08
Bài viết
2,579
Được thích
3,723
Donate (Momo)
Donate
Giới tính
Nam
Nghề nghiệp
Quan hệ.. và quan hệ..
E có câu hỏi vể Format cell như sau:
1. E có 1 ô số gồm 16 số.
Nếu định dạng ô đó là dạng text thì số hiển thị đầy đủ. Tuy nhiên nếu ko định dạng text (number hoặc General) thì số cuối cùng lại biến thành 0. Ko hiểu lý do vì sao?
2. Làm sao để định dạng khi nhập đầy đủ thì định dạng thành #### xxxx xxxx ####
 

File đính kèm

E có câu hỏi vể Format cell như sau:
1. E có 1 ô số gồm 16 số.
Nếu định dạng ô đó là dạng text thì số hiển thị đầy đủ. Tuy nhiên nếu ko định dạng text (number hoặc General) thì số cuối cùng lại biến thành 0. Ko hiểu lý do vì sao?
2. Làm sao để định dạng khi nhập đầy đủ thì định dạng thành #### xxxx xxxx ####
Anh/chị có giải pháp giúp em không ạh... many tks!
 
E có câu hỏi vể Format cell như sau:
1. E có 1 ô số gồm 16 số.
Nếu định dạng ô đó là dạng text thì số hiển thị đầy đủ. Tuy nhiên nếu ko định dạng text (number hoặc General) thì số cuối cùng lại biến thành 0. Ko hiểu lý do vì sao?
2. Làm sao để định dạng khi nhập đầy đủ thì định dạng thành #### xxxx xxxx ####
Độ chính xác thập phân của Excel là 1 phần triệu tỷ, tức là từ số 16 trở đi sẽ không chính xác nữa.
Bạn nhập một con số đầy đủ rồi định dạng là Number thì cũng chỉ đúng 15 số đầu thôi, Excel quy định vậy rồi.
 
E có câu hỏi vể Format cell như sau:
1. E có 1 ô số gồm 16 số.
Nếu định dạng ô đó là dạng text thì số hiển thị đầy đủ. Tuy nhiên nếu ko định dạng text (number hoặc General) thì số cuối cùng lại biến thành 0. Ko hiểu lý do vì sao?
2. Làm sao để định dạng khi nhập đầy đủ thì định dạng thành #### xxxx xxxx ####

Excel chỉ xử lý hiển thị tối đa số có 15 chữ số, vậy giải pháp là chuyển thành text như bạn đã làm là được
 
Anh/chị có giải pháp giúp em không ạh... many tks!
1- Anh để chuột vào ô dạng số theo như bài của anh, dùng office 2007 trở đi vào mục home mục Number trên cái bảng có chữ general gõ vào chữ Number xuống dưới anh xem kết quả
2- chuột phải fomat cell, chọn tab number chọn Number định dạng
--------------------
Anh nhìn con số này ko quả là khủng khiếp
Mã:
1,000,000,000,000,000,000,000,000.00
--=0
 
Lần chỉnh sửa cuối:
Excel chỉ xử lý hiển thị tối đa số có 15 chữ số, vậy giải pháp là chuyển thành text như bạn đã làm là được
Ôi, dã man thật, phần số thẻ của Ngân hàng có 16 số, hjk..
Vậy thì câu 2 không giải được hả a? đành phải dùng thêm cột phụ nữa sao?
 
Ôi, dã man thật, phần số thẻ của Ngân hàng có 16 số, hjk..
Vậy thì câu 2 không giải được hả a? đành phải dùng thêm cột phụ nữa sao?
số cuối biến thành 0 trời e ko đọc kỹ
========================
Tại sao phải dùng dạng số mà anh ko dùng dạng text
 
Lần chỉnh sửa cuối:
1- Anh để chuột vào ô dạng số theo như bài của anh, dùng office 2007 trở đi vào mục home mục Number trên cái bảng có chữ general gõ vào chữ Number xuống dưới anh xem kết quả
2- chuột phải fomat cell, chọn tab number chọn Number định dạng
--------------------
Anh nhìn con số này ko quả là khủng khiếp
Mã:
1,000,000,000,000,000,000,000,000.00
--=0
Bạn thay số 0 cuối bằng số bất kỳ xem => nó trở về 0 ngay đó => mình còn chơi hẳn bộ office 2010 cơ, hì
 
Cột phụ là sao?

xem microsoft hướng dẫn với credit card, trong đó có cả phần dấu number đi, chỉ hiện 4 số cuối
http://office.microsoft.com/en-001/...s-as-credit-card-numbers-HA010236840.aspx#BM1
Dạ, e thêm cột phụ và dùng hàm replace(A1,5,8,"xxxx") ạh
Theo đường link a gửi họ dùng hàm =CONCATENATE(REPT("****-",3), RIGHT(B2,4))
P/S: do tính bảo mật nên Ngân hàng chỉ lấy 4 số đầu và 4 số cuối để giao dịch ạh..
 
Lần chỉnh sửa cuối:
Dạ, e thêm cột phụ và dùng hàm replace(A1,5,8,"xxxx") ạh
Theo đường link a gửi họ dùng hàm =CONCATENATE(REPT("****-",3), RIGHT(B2,4))
P/S: do tính bảo mật nên Ngân hàng chỉ lấy 4 số đầu và 4 số cuối để giao dịch ạh..

đằng nào mất công vậy sao không cho định dạng vào luôn
=LEFT(A1,4)&"-xxxx-xxxx-"&RIGHT(A1,4)

(ở đây dùng dấu "-" để phân cách bạn có thể thay lại dấu khác cho thích hợp)

-----------còn muốn định dạng luôn tại ô gõ vào theo dạng ####-####-####-#### thì chắc dùng VBA với worksheet_change là hợp lý
 
A giúp e theo ý này với ạh?

Nháy phải lên tab sheet cần nhập --> chọn view code vào rùi dán đoạn code này vào

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count = 1 Then
        If Not Intersect([B3:B65000], Target) Is Nothing Then
            On Error GoTo 1
            Application.EnableEvents = False
            Dim s As String
            s = Trim(Target.Value): s = Replace(s, Space(1), ""): s = Replace(s, "-", "")
            Target.Value = Format((Left(s, Len(s) - 1)), "0000-0000-0000-000") & Right(s, 1)
1:          Application.EnableEvents = True
        End If
    End If
End Sub

với giả thiết
- vùng nhập mã đó là [B3:B65000] - thay đổi cho phù hợp vùng cần nhập cho hợp lý
- chỉ đúng với trường hợp nhập 1 ô 1 (chắc là nhập mã credit card thì nhập từng ô 1 rùi khôgn có thì nhầm nguy)
- chấp nhận cả người nhập nhầm chứa dấu cách, dấu "-"
- hiện dấu phân cách là "-" muốn dấu khác thì thay đổi ở "0000-0000-0000-000"


vậy thử xem
 
Lần chỉnh sửa cuối:
Cá ngừ F1 nhớ copy code mới tôi mới sửa lại trên

mới thay code mới có space(1) lỗi khoảng trắng diễn đàn nên cần thay cái này, nếu ai đã dùng thì paste lại code mới cho chuẩn
 
Anh ơi, hình như code ko chạy..
E thử đánh 16 số 1 thì kết quả là 0000-0000-0000-0115
hoặc đánh 16 số khác nó nhẩy kết quả không khớp ạh
Bạn nhập 15 số trước\Enter\chọn lại ô\nhấn F2 nhập tiếp số thứ 16
Hi chiêu này để ô nhận định dạng trước đã
 

File đính kèm

Bạn nhập 15 số trước\Enter\chọn lại ô\nhấn F2 nhập tiếp số thứ 16
Hi chiêu này để ô nhận định dạng trước đã

Ai mà làm kỳ cục vậy
Có chăng là vầy:
1> Thêm sự kiện SelectionChange để định dạng text trước
Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Not Intersect([B3:B65000], Target) Is Nothing Then
    If Target.Cells.Count = 1 Then Target.NumberFormat = "@"
  End If
End Sub
2> Sửa code Change:
Đoạn: s = Trim(Target.Value) sửa thành s = Trim(Target.Text)
 
Ai mà làm kỳ cục vậy
Có chăng là vầy:
1> Thêm sự kiện SelectionChange để định dạng text trước
Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Not Intersect([B3:B65000], Target) Is Nothing Then
    If Target.Cells.Count = 1 Then Target.NumberFormat = "@"
  End If
End Sub
2> Sửa code Change:
Đoạn: s = Trim(Target.Value) sửa thành s = Trim(Target.Text)
Cứ gọi là nhanh ạh. tks thày..
 
Ai mà làm kỳ cục vậy
Có chăng là vầy:
1> Thêm sự kiện SelectionChange để định dạng text trước
Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Not Intersect([B3:B65000], Target) Is Nothing Then
    If Target.Cells.Count = 1 Then Target.NumberFormat = "@"
  End If
End Sub
2> Sửa code Change:
Đoạn: s = Trim(Target.Value) sửa thành s = Trim(Target.Text)
Thầy không những sản xuất được Ôto thầy còn sửa được cả Ôto
em đã làm theo và nhập được
Tại vì lúc em nhập thấy nhỏ hơn 16 số thì Ok và sửa lại thêm số thì vẫn đúng nên phát biểu liều vậy
 
Web KT

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

Back
Top Bottom