2008-08-22 04:31:59 +0000 2008-08-22 04:31:59 +0000
77
77

Отформатировать число с необязательными десятичными разрядами в Excel

У меня есть номера в ячейках в Excel. Я хочу, чтобы числа были отформатированы так, чтобы если у них есть десятичные разряды, то они показывали максимум два, а если нет, то ни одного.

Например.

  • 15 должны быть отформатированы как 15, NOT 15.00
  • 14.3453453 должны быть отформатированы как 14.35
  • 12.1 должны быть отформатированы как 12.1
  • 0 должны быть отформатированы как 0

& Ближайший код пользовательского формата, который я придумал, это 0.##. К сожалению, он форматирует 15.00 как 15. (обратите внимание на дополнительную десятичную точку).

Чтобы еще больше усложнить проблему, электронная таблица является результатом экспорта из SQL Server Reporting Services. Таким образом, макросы невозможны. Что ж, похоже, что 0.## - это мой лучший вариант, и они могут просто жить с дополнительным периодом.

Ответы (9)

33
33
33
2012-05-08 18:16:49 +0000

В качестве альтернативы можно решить “необязательную” задачу с десятичной точкой, используя следующее решение: Формат

Число: General;[Red](General)

Это добавит десятичный разряд и дробное значение соответственно, при этом форматирование отрицательных чисел будет более удобочитаемым.

Что касается исходного вопроса плаката, вам все равно нужно округлить/удалить “лишние” десятичные знаки, используя формулу. Однако, это простая формула =ROUND(<value>,<desired decimal places>), которая не является чрезвычайно дорогостоящей с точки зрения вычисления.

Примеры:

2500 -> 2500
0.25 -> 0.25
-2500 -> (2500)
-0.25 -> (0.25)
15
15
15
2008-09-07 17:09:26 +0000

Пользовательские форматы Excel могут обеспечить частичный ответ 0x2 и 0x2. В этом формате вводятся пользовательские форматы для номеров в Excel:

  • формат положительных чисел;формат отрицательных чисел;формат нулевых чисел;текстовый формат

Один формат, который близок к вашему требованию, но оставляет в десятичном значении для чисел без десятичных знаков:

  • #,##…?;(#,##…?);

Пример:

  • 15 отображается как 15.
  • 14.3453453 отображается как 14.35
  • 12.1 отображается как 12.1
  • 0 отображается как 0
5
5
5
2011-08-26 00:28:32 +0000

Вот один метод, использующий условное форматирование.

  1. Щелкните правой кнопкой мыши по ячейке, выберите “Отформатировать ячейку”
  2. Выберите “Пользовательский”
  3. Введите “0.####” (добавьте больше или меньше #s для управления максимальным количеством знаков после запятой)
  4. Щелкните OK
  5. Если ячейка все еще выбрана, используйте “Условное форматирование” (может быть пунктом меню в Формате или кнопкой в Home, в зависимости от версии Excel)
  6. Добавьте новое правило, основанное на формуле “=MOD(H32,1)=0”

  7. Для формата этого правила выберите закладку с номерами, выберите “Custom”

  8. На этот раз введите формулу “0”

  9. Нажмите OK достаточно раз, чтобы вернуться на лист (различается в разных версиях excel)

Вот так, наслаждайтесь ответственно! Если вы хотите скопировать формат в другие ячейки, помните, что вы можете скопировать ячейку и использовать “Вставить специальный” с опцией “Формат”.

5
5
5
2010-02-03 17:31:42 +0000

Недавно я столкнулся с этим в Excel 2007 и только что использовал функцию ‘TRUNC’ в ячейках значений:

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

Работал именно так, как я хотел…

2
2
2
2012-03-01 20:57:08 +0000

Помните, что в службе Reporting Services вы можете написать выражение и для форматирования номера. В своей ситуации я использовал

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

в качестве выражения для форматирования чисел. В результате получился файл Excel с форматом двух ячеек, выбранным в зависимости от того, было ли значение целым числом или нет.

1
1
1
2018-02-12 01:45:01 +0000

Мой ответ удаляет десятичную точку AND Удаляет 0 значение

при записи в условном формате:

General;#;;@

Это должно помочь.

1
1
1
2013-12-04 16:57:19 +0000

Это не обязательно должно быть так сложно - это можно сделать исключительно с помощью условного форматирования. У меня есть Excel 2010, так что это может не сработать для более ранних версий.

  1. Форматировать ячейки, чтобы быть общими. Количество десятичных разрядов для некоторых чисел может быть очень большим.
  2. Выделите ячейку и нажмите Условное Форматирование. Нажмите Новое правило, затем “Использовать формулу”.
  3. Используйте формулу =(B1-INT(B1))>0 (где B1 - ячейка, которую вы форматируете)
  4. Нажмите кнопку Формат и выберите Пользовательский. Введите [=0]0;.## в поле Type.
  5. Нажмите Enter несколько раз.
  6. Нажмите кнопку Условный формат еще раз, нажмите Управление правилами и отредактируйте только что созданное правило. Измените диапазон в поле “Применяется к”, чтобы покрыть тот диапазон, который вы хотите покрыть.

Все готово.

0
0
0
2014-01-17 17:34:13 +0000

Похоже, что это самый простой способ показать десятичное число, когда есть дробные числа - и нет десятичного числа для целых чисел:

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

или со ссылками на ячейки:

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

дает

15 = 15 9.23432234 = 9.23

0
0
0
2013-06-04 11:16:43 +0000
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.##"))

Больше никаких сиротских десятичных знаков.

Похожие вопросы

6
13
9
10
1