Định dạng một số có vị trí thập phân tùy chọn trong Excel


76

Tôi có số trong các ô trong Excel. Tôi muốn các số được định dạng sao cho nếu chúng có số thập phân, chúng hiển thị tối đa là hai và nếu chúng không có số thập phân thì nó không hiển thị bất kỳ số thập phân nào.

Ví dụ.

  • 15 nên được định dạng là 15, KHÔNG 15.00
  • 14.3453453 nên được định dạng là 14,35
  • 12.1 phải được định dạng là 12.1
  • 0 nên được định dạng là 0

Mã định dạng tùy chỉnh gần nhất mà tôi nghĩ ra là 0.##. Thật không may, định dạng này 15.0015. (lưu ý thêm dấu thập phân).

Để làm phức tạp thêm vấn đề, bảng tính là kết quả của việc xuất từ ​​Dịch vụ báo cáo SQL Server. Vì vậy, không có macro là có thể. Ồ, có vẻ như 0.##là đặt cược tốt nhất của tôi, và họ chỉ có thể sống với thời gian thêm.

Câu trả lời:


29

Ngoài ra, bạn có thể giải quyết vấn đề dấu thập phân "tùy chọn" bằng giải pháp sau:

Định dạng số: General;[Red](General)

Điều này sẽ thêm vị trí thập phân và giá trị phân số tương ứng, trong khi định dạng các số âm theo cách dễ đọc hơn.

Đối với câu hỏi ban đầu của người đăng, bạn vẫn cần làm tròn / cắt bớt các dấu thập phân "phụ" bằng công thức. Tuy nhiên, đây là một công thức đơn giản =ROUND(<value>,<desired decimal places>)mà không phải là cực kỳ tính toán.

Ví dụ:

2500 -> 2500
0.25 -> 0.25
-2500 -> (2500)
-0.25 -> (0.25)

3
Câu trả lời này xứng đáng được nâng cao hơn. Nó xử lý dấu thập phân một cách chính xác mà không sử dụng định dạng có điều kiện. Trong trường hợp cụ thể của tôi, tôi muốn hiển thị tất cả các vị trí thập phân, do đó tôi thậm chí không cần phải sửa đổi công thức.
wilson

1
Generalcó vấn đề đi vào ký hiệu khoa học nếu số có quá nhiều số thập phân, ví dụ 2.6532E-06thay vì 0.0000026532.
Dan Dascalescu

1 Lựa chọn). Mã định dạng $General\kđã làm điều đó một cách hoàn hảo!
Dan Henderson

17

Áp dụng định dạng có điều kiện cho các số không thập phân.

Ví dụ, A1 là ô mục tiêu.

  1. Định dạng A1 là "###, ###. 00". Điều này sẽ được sử dụng cho số thập phân.
  2. Xác định định dạng có điều kiện cho các số không thập phân.

    • Điều kiện: Giá trị ô bằng = TRUNC (A1).
    • Định dạng: ###,###

Dưới đây là kết quả:

12       =>  12
14.231   => 14.23
15.00000 => 15
17.3     => 17.30

Chỉ có một vấn đề với số 4.001, được làm tròn đến 4,00 trên màn hình, nhưng sẽ không thỏa mãn công thức định dạng có điều kiện (4.001 <> 4) và vẫn hiển thị là "4.". Tôi đã sử dụng công thức có điều kiện này để giải quyết nó: = ROUND ($ A1; 2) = TRUNC ($ A1)
leokhorn

14

Các định dạng tùy chỉnh Excel có thể cung cấp một câu trả lời một phần

Các định dạng tùy chỉnh cho các số trong Excel được nhập theo định dạng này:

  • định dạng số dương, định dạng số âm, định dạng không, định dạng văn bản

Một định dạng gần với yêu cầu của bạn, nhưng để ở vị trí thập phân cho các số không có số thập phân là:

  • , ##. ??; (#, ##. ??); 0

Thí dụ:

  • 15 được hiển thị là 15.
  • 14.3453453 được hiển thị là 14,35
  • 12.1 được hiển thị là 12.1
  • 0 được hiển thị là 0

Đây là câu trả lời tốt nhất.
KyloRen

4
Tuy nhiên, thực tế không cung cấp một giải pháp hợp lệ, hoặc thậm chí là một công việc khả thi xung quanh. Nó có thông tin hữu ích liên quan đến các định dạng số tùy chỉnh.
Bỏ qua

15 được hiển thị là, 15.
Roger Far

6

Tôi đã gặp vấn đề này gần đây trong Excel 2007 và cuối cùng đã sử dụng hàm 'TRUNC' trong các ô giá trị:

  value  =TRUNC(B5,1)
      0      0
      5      5
    5.4    5.4
  65.43   65.4
765.432  765.4

Hoạt động chính xác theo cách tôi muốn ...


3
Có, cả TRUNC (x, 2) và ROUND (x, 2) sẽ thực hiện công việc (tùy thuộc vào loại phương pháp làm tròn mà bạn theo sau). Sau đó, bạn chỉ cần đặt định dạng ô thành "Chung" và các vị trí thập phân sẽ chỉ được hiển thị nếu cần. (Tôi bỏ phiếu để đánh dấu bài đăng của Droj là câu trả lời.)
Simon East

5

Đây là một phương pháp sử dụng định dạng có điều kiện.

  1. Nhấp chuột phải vào ô của bạn, chọn "Định dạng ô"
  2. Chọn "Tùy chỉnh"
  3. Nhập "0. ####" (thêm nhiều hoặc ít #s để kiểm soát số lượng vị trí thập phân tối đa)
  4. Nhấn vào OK
  5. Với ô vẫn được chọn, hãy sử dụng "Định dạng có điều kiện" (có thể là một mục menu trong Định dạng hoặc nút trong Trang chủ tùy thuộc vào phiên bản Excel của bạn)
  6. Thêm quy tắc mới, dựa trên công thức "= MOD (H32,1) = 0"

    chỉnh sửa - công thức tốt hơn là "= MOD (ROUND (H32,2), 1) = 0" với '2' là số vị trí thập phân mong muốn. công thức trước để lại dấu thập phân theo sau nếu số làm tròn thành một số nguyên.

    Thay thế H32 trong công thức bằng ID của ô của bạn, nhưng HÃY ĐẢM BẢO KHÔNG CÓ DẤU HIỆU $! (Không có dấu $ đảm bảo rằng bạn sao chép định dạng sang các ô khác)

  7. Đối với định dạng của quy tắc này, chọn tab số, chọn "Tùy chỉnh"

  8. Lần này, nhập công thức "0"
  9. Nhấp vào OK đủ số lần để quay lại trang tính (khác nhau giữa các phiên bản excel)

Có bạn đi, thưởng thức có trách nhiệm! Nếu bạn muốn sao chép định dạng sang các ô khác, hãy nhớ rằng bạn có thể sao chép ô đó và sử dụng "Dán đặc biệt" với tùy chọn "Định dạng".


Bạn có thể làm rõ nếu điều này chỉ áp dụng cho một số (hoặc các phiên bản gần đây hơn) của Excel không? Tôi vẫn đang sử dụng 2003 (và tôi cũng nghi ngờ có một số lượng đáng xấu hổ khác) và khi tôi đi đến định dạng có điều kiện, tôi không có tùy chọn để sửa đổi định dạng số, chỉ có Phông chữ, Đường viền và Mẫu. Cảm ơn
SSilk

Tôi vừa thử phương pháp này trên Excel 2010 và nó hoạt động tốt. Nó sẽ không hoạt động với các phiên bản Excel trước đó (ít nhất đó là trình kiểm tra "chế độ tương thích" trong Excel 2010 cho tôi biết).
barfuin

2

Hãy nhớ rằng trong Dịch vụ báo cáo, bạn cũng có thể viết biểu thức cho định dạng số. Trong tình huống của tôi, tôi đã sử dụng

iif(floor(Fields!numericFieldName.Value)=Fields!numericFieldName.Value,"0","0.##")

như biểu thức định dạng số. Điều này tạo ra một tệp Excel có hai định dạng ô, được chọn bởi giá trị có phải là số nguyên hay không.


1

Bạn / người dùng của bạn nhập giá trị trực tiếp vào các ô hay chúng đang được tạo bởi một công thức hoặc macro?

Nếu các ô không được tạo ra trực tiếp bởi con người, bạn có thể lưu trữ các giá trị được tính toán trong một phạm vi ẩn và sau đó hiển thị văn bản được định dạng cho người dùng với công thức như sau:

=IF(ROUND(A1,2)=INT(A1),TEXT(A1,"0"),TEXT(A1,"0.0#"))

(trong đó 'A1' là ô được tham chiếu)

Công thức sẽ hiển thị các giá trị như thế này:

 -------------------------
 |Original     |Formatted|
 |-------------+---------|
 |         15  |       15|
 | 14.3453453  |    14.35|
 |       12.1  |     12.1|
 |          0  |        0|
 |    -15.123  |   -15.12|
 |      1.004  |        1|
 -------------------------

NB: Đầu ra công thức là một chuỗi văn bản, không phải là một số, vì vậy:

  • Đầu ra mặc định được căn trái.
  • Bạn không thể sử dụng đầu ra trong bất kỳ tính toán nào khác (thay vào đó, bạn nên sử dụng ô ban đầu được tham chiếu)

1

Định dạng ô là 'Chung' sau đó theo xác thực dữ liệu giới hạn giá trị thành số thập phân


Nếu bạn cần tránh thêm các công thức (và có thể là một cột mới) vào bảng tính của mình thì đề xuất của Fred có thể là tốt nhất.
Simon East

1
Điều này sẽ không cho phép mọi người nhập các số có nhiều hơn giới hạn trực quan của các chữ số thập phân.
barfuin

1

Điều này không phải quá phức tạp - nó có thể được thực hiện riêng với Định dạng có điều kiện. Tôi có Excel 2010, vì vậy điều này có thể không hoạt động cho các phiên bản trước.

  1. Định dạng các ô là Chung. Số lượng vị trí thập phân cho một số số có thể rất cao.
  2. Đánh dấu một ô và bấm Định dạng có điều kiện. Nhấp vào Quy tắc mới, sau đó "Sử dụng công thức".
  3. Sử dụng công thức = (B1-INT (B1))> 0 (trong đó B1 là ô bạn định dạng)
  4. Nhấp vào nút Định dạng và chọn Tùy chỉnh. Nhập [= 0] 0 ​​;. ## vào trường Loại.
  5. Nhấn Enter nhiều lần.
  6. Nhấp vào Định dạng có điều kiện một lần nữa, nhấp Quản lý quy tắc và Chỉnh sửa quy tắc bạn vừa tạo. Thay đổi phạm vi trong trường "Áp dụng cho" để bao phủ phạm vi bạn muốn bảo hiểm.

Tất cả đã được làm xong.


1

Câu trả lời của tôi xóa dấu thập phân xóa giá trị 0

trong định dạng có điều kiện viết:

General;#;;@

Cái này cần phải dùng mẹo.


Điều này hiển thị số không dưới dạng các ô trống.
lolmaus - Andrey Mikhaylov

0

Hơn nữa với câu trả lời tuyệt vời của Luke ở trên đây là một biến thể dựa trên công việc của anh ấy. Tôi không muốn có số 0 trong ô nếu không có giá trị. Để định dạng ô của bạn là chung và sử dụng công thức này:

=IF((A1=""), "",IF(ROUND(A1,2)=INT(A1),TEXT(A1,"0"),TEXT(A1,"0.0#")))

Một lần nữa trong đó A1 là ô được tham chiếu.


0

Sử dụng Roundchức năng để cung cấp số liệu quan trọng. Điều này không thay đổi số lượng vị trí thập phân được hiển thị tuy nhiên. Chỉ cần định dạng ô với generalđịnh dạng số mặc dù.

ROUND(MyValue,Sig.figs - 1 - INT(LOG10(ABS(MyValue)))

Tại sao tất cả các công thức INT (LOG ... phức tạp? Tại sao không chỉ ROUND (giá trị, 2) và định dạng là Chung?
Simon East

0
B1=IF(ROUND(A1,2)=INT(A1),TEXT(A1,"0"),TEXT(A1,"0.##"))
C1=IF(ROUND(B1,2)=INT(B1),TEXT(B1,"0"),TEXT(B1,"0.##"))

Không còn điểm thập phân mồ côi.


0

Đây dường như là cách đơn giản nhất để hiển thị Số thập phân khi có các số phân số - và Không hiển thị số thập phân cho toàn bộ số:

=TEXT(ROUND(Base_Number,Max_Decimal_Places),"general")

hoặc với các tham chiếu ô:

=TEXT(ROUND(A1,2),"general")

Tặng

15 = 15
9.23432234 = 9,23


Chào mừng bạn đến với SuperUser @lookingforsame. Chỉ cần một lưu ý để xem các chi tiết ẩn của câu hỏi mặc dù. Trong trường hợp này, op nói rằng đầu ra là từ SQL, nếu macro không thể, các công thức có thể không phải là một trong hai. Đôi khi đáng để đặt một câu hỏi như một nhận xét trước khi trả lời. Thật tốt khi thấy một người mới, vui vẻ trả lời!
Julian Knight
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.