Программа обрабатывает форматный группы в два потока, каждый из них рассматривает свои форматные группы слева направо. В одном потоке обрабатываются обычные форматные группы, а в другом - форматные группы динамического форматирования.
Обычные форматные группы не содержат префикса (RL или CL), они предназначены для условного форматирования. Каждая обычная форматная группа может содержать одно или несколько условий, заключенных в символы [ и ] (квадратные скобки).
Обычные форматные группы рассматриваются по очереди слева направо до тех пор, пока не будет найдена форматная группа, условие которой выполнено. Когда такая группа будет найдена, выводимое число будет форматироваться в соответствии со спецификацией формата, заданной в этой группе.
Спецификация формата может содержать:
- символы #, 0, ?, вместо которых будут подставляться цифры выводимого числа символ, определяющий позицию разделителя целой и дробной части символ, определяющий применение разделителей тысяч символ для отказа от вывода знака минуса спецификацию цвета для шрифта для выводимых чисел (код цвета в квадратных скобках, например, [green] или [red]) дополнительный текст символ для вывода в процентной форме символы для масштабирования 1:1000, 1:1000000 и т. д.
Если имеется две обычных форматных группы, а условия в них не указаны, тогда для первой группы будет применятся условие [>=0], а для второй группы - условие [<0], то есть спецификации первой группы будут применяться для положительных чисел и нулей, а спецификации второй группы - для отрицательных чисел.
Если имеется три обычных форматных группы, а условия в них не указаны, тогда для первой группы будет применятся условие [>0] (положительные числа), для второй группы - условие [<0] (отрицательные числа), для третьей группы - нули.
Задавая условия для нулевых значений, следует помнить, что отображение нулевых значений может быть отменено настройкой форматирования таблицы. В то же время, если настройками форматирования таблицы отображение нулевых значений включено, его при желании можно подавить, применив пустой формат чисел в группе с условием [=0].
Форматные группы динамического форматирования также рассматриваются по очереди слева направо. Их спецификации действуют при определенных изменениях данных в ячейке, вызывая изменение цветового отображения (цвет шрифта, цвет фона) данных в этой ячейке либо во всей строке, в которой находится эта ячейка.
Программа обрабатывает все форматные группы динамического форматирования, т. е., в отличие от обычных форматных групп, обработка какой-либо из групп не приводит к отказу от рассмотрения других групп справа от неё. При срабатывании нескольких форматных групп динамического форматирования будут применяться настройки последней из обработанных групп, но форматирование для ячейки (группы с префиксом CL) является более приоритетным, чем форматирование для строки (группы с префиксом RL).
При настройке динамического форматирования следует учитывать, что при форматировании строки может одновременно (или почти одновременно, что всё равно будет зрительно восприниматься как одновременно) сработать несколько форматирований одной и той же строки, причем заранее предсказать, какое из них будет действовать, не представляется возможным.
Признаком форматных групп динамического форматирования является наличие у них префикса RL или CL. Для динамического форматирования надо в форматную строку добавить дополнительный блок (через точку с запятой), содержащий следующие синтаксические элементы:
- в начале блока должен стоять префикс RL (применять динамическое форматирование ко всей строке) или CL (применять динамическое форматирование к отдельной ячейке) длительность, в течение которой действует динамическое форматирование, задается в секундах, причем вместо 0 (нуля) надо использовать букву x (икс) после префикса RL или указывается длительность, в течение которого действует динамическое форматирование в первых квадратных скобках надо разместить условия изменения величины для активации динамического форматирования во вторых квадратных скобках надо указать цвет фона (т. е. цвет подсветки) в третьих квадратных скобках надо указать цвет для шрифта (т. е. цвет самих чисел при срабатывании динамического условного форматирования). Этот элемент необязателен.
В нижеприведенной таблице даны сводные данные о применении символов форматирования чисел:
Символы формата | Значение символа формата |
# | Заменяется на цифру, но незначащие нули не отображаются. В дробной части числа происходит округление до количества символов #. В целой части числа отображаются все значащие цифры, независимо от количества символов #, т. е. даже если их число значащих цифр больше количества символов #, цифры всё равно отображаются. Это сделано так, потому что отбрасывание крайних левых цифр в целой части числа недопустимо, т. к. оно очень сильно меняет число (по сравнению с тем, что отбрасывание крайних цифр в дробной части не сильно меняет число). |
В спецификации условия означает "не равно", эквивалентен сочетанию символов "<>". | |
0 (ноль) | Заменяется на цифру, незначащие нули отображаются. В остальном применяются те же правила, что и для символов #. Например, если нужно, чтобы число 8.9 отображалось как 8.90, задайте формат #.00. |
? (вопросительный знак) | Заменяется на цифру, но незначащие нули заменяются пробелами. В остальном применяются те же правила, что и для символов # и 0. Этот формат можно применить, если хочется выровнять числа по разделителю дробной и целой частей (чтобы десятки шли под десятками, единицы - под единицами, разряды 1/10 - под 1/10 и т. д.), но при этом потребуется еще задать моноширинный шрифт для выводимых чисел и выравнивание в ячейках по правому краю. Можно также использовать этот символ для рациональных дробей, имеющих различное число десятичных знаков. |
~ (тильда) | Убирает знак минуса у отрицательных чисел |
% | Преобразует число в проценты. Число умножается на 100 и добавляется знак %. |
. (точка) | Задает позицию разделителя целой и дробной частей (т. е. место, где будет находиться десятичная точка или десятичная запятая). Сам символ разделителя целой и дробной частей применяется в соответствии с настройками операционной системы (Microsoft Windows Control Panel > Regional Settings > Number) |
, (запятая) | Этот символ, окруженный с обоих сторон символами # или 0, означает необходимость применения разделителя тысяч. При отображении чисел группы из трех разрядов (тысячи, миллионы и т. д. разделяются разделителями тысяч, определенными в Microsoft Windows Control Panel > Regional Settings > Number). Символ "," достаточно указать в формате только один раз, для использования разделителей групп из 3 разрядов в отображении достаточно лишь единичного присутствия символа "," в записи формата. |
Если символ "," (запятая) следует после шаблона, то отображаемое число будет масштабироваться (округляться 1:1000). Две запятых подряд масштабируют 1:1000000 и т. д. Например:
| |
[знак_сравнения число] | Задает условие, при выполнении которого исполняется форматная группа. В обычных форматных группах происходит сравнение значения из проверяемой ячейки и указанного в условии числа. В форматных группах динамического форматирования происходит сравнение изменения значения из проверяемой ячейки и указанного в условии числа. Используются следующие знаки сравнения (для некоторых знаков имеется два варианта записи, чтобы не заставлять пользователя запоминать один правильный вариант) :
|
[код цвета] | Отображает символы заданным цветом. Имеются следующие коды цветов:
Код цвета можно указывать в любом регистре (т. е. можно с равным успехом использовать коды magenta, Magenta, MAGENTA или MAgenTa). Если форматирование цвета не задано или если код цвета указан с орфографической ошибкой, то применяется цвет, заданный в настройках для шрифта всей таблицы или колонки. |
RL длительность [условие] [фон] [шрифт] CL длительность [условие] [фон] [шрифт] | Спецификация динамического форматирования, применяемого ко всей строке либо только к проверяемой ячейке (задаются слитно без пробелов). В значении длительности вместо нулей ставится буква х (икс). Условие определяется для величины приращения числа в ячейке, например, [<0] означает отрицательное приращение, т. е. уменьшение числа в проверяемой ячейке. Примеры: #,###.00;RL1x[>0][Green]
0;CL5[>0][Red]
|
текст | Любой текст, стоящий до или после основных символов шаблона, отображается соответственно до или после числа. |
Примеры (таблица настроена так, чтобы нулевые числа отображались)
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |


