7

Допустим, у меня есть список следующих чисел:

0.02
-0.25
-4.13
5.24
-11.36
40.61
-141.20

Как бы я выровнял их в столбце так, чтобы они выравнивались по левому краю в ячейке, а десятичные точки выравнивались?

Например,

|   0.02    |
|  -0.25    |
|  -4.13    |
|   5.24    |
| -11.36    |
|  40.61    |
|-141.20    |

У меня возникло желание использовать категорию "Бухгалтерский учет", но это изменило мои отрицательные значения, добавив скобки.

Я использую Excel для Mac 2011.

6 ответов6

11

После выравнивания по левому краю ячейки попробуйте этот числовой формат:

_-???0.0??;-???0.0??;

Чтобы применить его, щелкните правой кнопкой мыши ячейку, выберите "Формат ячеек", перейдите на вкладку "Число", перейдите к параметру формата "Пользовательский" и вставьте строку формата в поле «Тип:».

Как это устроено:

  • самый левый _- вставляет пробел, равный ширине символа "-";
  • ? занимает место, равное тому из числа, если число не присутствует;
  • точка с запятой делит формат для положительного числа (первая часть) от формата для отрицательного числа (вторая часть).

Больше в числовых форматах Excel: Коды числовых форматов.

Обратите внимание, что этот формат будет работать только для чисел длиной до 4 цифр слева от десятичной точки. Если у вас будут большие цифры, вам нужно будет добавить больше вопросительных знаков.

2

Я предлагаю:

Щелкните правой кнопкой мыши по ячейкам и выберите «Формат ячеек».

На вкладке Число:

Under Category select "Custom"

Under Type enter 0.0?;-0.0?

Выберите вкладку Alignment:

Set Horizontal to "Right (Indent)"

Set Indent to 1   (you can adjust later as desired)

Нажмите OK, чтобы покинуть окно формата вкладок.

Это заставит текст выглядеть следующим образом

-12.0

 -1.25

  2.23

123.78

  Test

Обратите внимание, что знак минуса всегда находится рядом с первой цифрой и что второе десятичное число пусто, если оно равно нулю, и что слово Test выровнено по правому краю со вторым десятичным знаком.

Надеюсь, это поможет.

1

Используйте "Tab", там есть специальная вкладка "Alignment", которая называется "Decimal". Это выровняет десятичное число в соответствии с положением вкладки.

0

Если я правильно понимаю, у вас должна быть возможность выровнять столбец вправо (чтобы выстроить десятичную дробь), а затем увеличивать отступ, пока максимально возможное число не будет "выровнено" по левой стороне. Таким образом, вам не придется беспокоиться о специальном форматировании.

0

Я не был уверен, должен ли я просто прокомментировать свой другой ответ, но я подумал, так как это новый ход мысли, я бы добавил новый ....

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

Вот правило условного форматирования, которое проверяет, находится ли значение в текущей ячейке между 0 и 9 [1 цифра num]:

=(INDIRECT(ADDRESS(ROW(),COLUMN()))>0)*(INDIRECT(ADDRESS(ROW(),COLUMN()))<10)

Обратите внимание, что с условным форматированием =AND() работает не так хорошо, как можно было бы подумать, поэтому умножение 2-х логических значений дает вам эквивалентное выражение (спасибо этому посту за этот совет)

0

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

Сначала вы создаете столбец, содержащий положение разделителя (это символ точки ".")

Предположим, что ваши цифры в столбце A:

B1 = find("."; A1)
B2 = find("."; A2)
...

В конце этого столбца, скажем, B20, вы ставите максимальное значение положения точки:

B20 = max(B1:B19)

Теперь давайте посчитаем, сколько места вам нужно для каждого числа. В этом разница между максимальной точкой и текущей точкой:

C1 = $B$20 - B1
C2 = $B$20 - B2
...

И, наконец, добавьте эти пробелы. Вот важная вещь: используйте шрифт с одинаковыми интервалами, например, "Lucida Console".

D1 = rept(" "; C1) & A1
D2 = rept(" "; C2) & A2
...

Конечно, вы можете попытаться собрать все это в одну формулу, но я постарался, чтобы это было хорошо объяснено. Вы можете, например, занять фиксированную максимальную точку, скажем, 10, и сделать:

= rept(" "; 10 - find("."; A1)) & A1

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .