Функция ТЕКСТ: различия между версиями

Материал из Planfix
Перейти к: навигация, поиск
Нет описания правки
Нет описания правки
 
(не показано 15 промежуточных версий 3 участников)
Строка 5: Строка 5:
|description=Функция ТЕКСТ
|description=Функция ТЕКСТ
}}
}}
С помощью функции ТЕКСТ() можно изменить представление числа, применив к нему форматирование. Это полезно в ситуации, когда нужно отобразить числа в удобочитаемом виде либо объединить их с текстом или символами.
С помощью функции ТЕКСТ() можно изменить представление числа или даты, применив форматирование.
 


== '''Форматирование чисел''' ==  
== '''Форматирование чисел''' ==  
Строка 13: Строка 12:
ТЕКСТ(A;".3f")
ТЕКСТ(A;".3f")


В результате получается строка "23,782".
В результате получается строка "23,783".




Строка 25: Строка 24:
'''Строка формата:'''
'''Строка формата:'''


Строка формата меет вид [flags][width][.precision]conversion  
Строка формата имеет вид [flags][width][.precision]conversion  
* [flags] — специальные символы для форматирования. Например, флаг "+" означает, что числовое значение должно включать знак +, флаг "-" означает выравнивание результата по левому краю, флаг «,» устанавливает разделитель тысяч у целых чисел. Не является обязательной частью инструкции.
* [flags] — специальные символы для форматирования. Например, флаг "+" означает, что числовое значение должно включать знак +, флаг "-" означает выравнивание результата по левому краю, флаг «,» устанавливает разделитель тысяч у целых чисел. Не является обязательной частью инструкции.
* [width] — положительное целое десятичное число, которое определяет минимальное количество символов, которые будут выведены.  Не является обязательной частью инструкции.
* [width] — положительное целое десятичное число, которое определяет минимальное количество символов, которые будут выведены.  Не является обязательной частью инструкции.
* [.precision] — не отрицательное целое десятичное число с точкой перед ним. Обычно используется для ограничения количества символов. Не является обязательной частью инструкции.
* [.precision] — неотрицательное целое десятичное число с точкой перед ним. Обычно используется для ограничения количества символов. Не является обязательной частью инструкции.
* conversion — это символ, указывающий, как число должно быть отформатирован. Допускается d для целых чисел, f для чисел с плавающей точкой. Является обязательной частью инструкции.
* conversion — это символ, указывающий, как число должно быть отформатировано. Допускается d для целых чисел, f для чисел с плавающей точкой. Является обязательной частью инструкции.


Например, в поле типа '''Число''' записано число 12.34:   
Например, в поле типа '''Число''' записано число 12.34:   
*ТЕКСТ(<nowiki>{{Задача.Поле типа число}}</nowiki>;"d") - результат 12
*ТЕКСТ(<nowiki>{{Задача.Поле типа число}}</nowiki>;"d") - результат 12
*ТЕКСТ(<nowiki>{{Задача.Поле типа число}}</nowiki>;"05d") - результат 00012
*ТЕКСТ(<nowiki>{{Задача.Поле типа число}}</nowiki>;"05d") - результат 00012
*ТЕКСТ(<nowiki>{{Задача.Поле типа число}}</nowiki>;"04.3f") - результат 0012.340
*ТЕКСТ(<nowiki>{{Задача.Поле типа число}}</nowiki>;"08.3f") - результат 0012.340
*ТЕКСТ(<nowiki>{{Задача.Поле типа число}}</nowiki>;".4f") - результат 12.3400
*ТЕКСТ(<nowiki>{{Задача.Поле типа число}}</nowiki>;".4f") - результат 12.3400


Строка 90: Строка 89:
|Дни
|Дни
|1-31
|1-31
|"Д"
|"D"
|ТЕКСТ(A;"Д")
|ТЕКСТ(A;"D")
|12
|12
|-
|-
|Дни
|Дни
|01-31
|01-31
|"ДД"
|"DD"
|ТЕКСТ(A;"ДД")
|ТЕКСТ(A;"DD")
|12
|12
|-
|-
|Дни
|Дни
|Пн-Вс
|Пн-Вс
|"ДДД"
|"DDD"
|ТЕКСТ(A;"ДДД")
|ТЕКСТ(A;"DDD")
|Ср
|Ср
|-
|-
|Дни
|Дни
|понедельник-воскресенье
|понедельник-воскресенье
|"ДДДД"
|"DDDD"
|ТЕКСТ(A;"ДДДД")
|ТЕКСТ(A;"DDDD")
|среда
|среда
|-
|-
|Годы
|Годы
|00-99
|00-99
|"ГГ"
|"YY"
|ТЕКСТ(A;"ГГ")
|ТЕКСТ(A;"YY")
|16
|16
|-
|-
|Годы
|Годы
|1900-9999
|1900-9999
|"ГГГГ"
|"YYYY"
|ТЕКСТ(A;"ГГГГ")
|ТЕКСТ(A;"YYYY")
|2016
|2016
|}
|}
Для того, чтобы  функция просклоняла месяц в родительном падеже, используйте следующий синтаксис:
ТЕКСТ(Число; "[$-FCxx]Формат даты")
где:
xx — это язык:
:*19 — русский
:*22 — украинский
Пример:
<nowiki>ТЕКСТ({{Системные.Сегодня}}; "[$-FC19]DD MMMM YYYY")</nowiki>
Результат:
14 июня 2022




Строка 139: Строка 156:
|Часы
|Часы
|0-23
|0-23
|"ч"
|"H"
|ТЕКСТ(A;"ч")
|ТЕКСТ(A;"H")
|14
|14
|-
|-
|Часы
|Часы
|00-23
|00-23
|"чч"
|"HH"
|ТЕКСТ(A;"чч")
|ТЕКСТ(A;"HH")
|14
|14
|-
|-
|Минуты
|Минуты
|0-59
|0-59
|"м"
|"m"
|ТЕКСТ(A;"м")
|ТЕКСТ(A;"m")
|10
|22
|-
|-
|Минуты
|Минуты
|00-59
|00-59
|"мм"
|"mm"
|ТЕКСТ(A;"мм")
|ТЕКСТ(A;"mm")
|10
|22
|-
|-
|Секунды
|Секунды
|0-59
|0-59
|"с"
|"s"
|ТЕКСТ(A;"с")
|ТЕКСТ(A;"s")
|44
|44
|-
|-
|Секунды
|Секунды
|00-59
|00-59
|"сс"
|"ss"
|ТЕКСТ(A;"сс")
|ТЕКСТ(A;"ss")
|44
|44
|-
|-
|Время
|Время
|14:00
|14:00
|"чч:00"
|"HH:00"
|ТЕКСТ(A;"чч:00")
|ТЕКСТ(A;"HH:00")
|14:00
|14:00
|-
|-
|Время
|Время
|14:22
|14:22
|"чч:мм"
|"HH:mm"
|ТЕКСТ(A;"чч:мм")
|ТЕКСТ(A;"HH:mm")
|14:22
|14:22
|-
|-
|Время
|Время
|14:22:44
|14:22:44
|"чч:мм:сс"
|"HH:mm:ss"
|ТЕКСТ(A;"чч:мм:сс")
|ТЕКСТ(A;"HH:mm:ss")
|14:22:44
|14:22:44
|-
|-
Строка 194: Строка 211:
|14:22:44,11
|14:22:44,11
|"чч:мм:сс,00"
|"чч:мм:сс,00"
|ТЕКСТ(A;"чч:мм:сс,00")
|ТЕКСТ(A;"HH:mm:ss,00")
|14:22:44,11
|14:22:44,11
|-
|-
|Затраченное время (часов и минут)
|Затраченное время (часов и минут)
|1:02
|1:02
|"[ч]:мм"
|"[H]:mm"
|ТЕКСТ(A;"[ч]:мм")
|ТЕКСТ(A;"[H]:mm")
|1:02
|1:02
|-
|-
|Затраченное время (минут и секунд)
|Затраченное время (минут и секунд)
|62:16
|62:16
|"[мм]:сс"
|"[mm]:ss"
|ТЕКСТ(A;"[мм]:сс")
|ТЕКСТ(A;"[mm]:ss")
|62:16
|62:16
|-
|-
|Затраченное время (секунд и сотых доль)
|Затраченное время (секунд и сотых доль)
|3735,80
|3735,80
|"[сс],00"
|"[ss],00"
|ТЕКСТ(A;"[сс],00")
|ТЕКСТ(A;"[ss],00")
|3735,80
|3735,80
|}
|}
Строка 218: Строка 235:


== Важно ==
== Важно ==
*Время и Дата разделаются пробелом обязательно.
*Время и Дата разделяются пробелом обязательно.
*Время разделяется знаком ":"  и "," для миллисекунд 23:15:41,456.
*Время разделяется знаком ":"  и "," для миллисекунд 23:15:41,456.
*Дата разделяется одним из символов "." "/" "-".
*Дата разделяется одним из символов "." "/" "-".
Строка 226: Строка 243:
*Год из двух цифр считается как год 21 века.
*Год из двух цифр считается как год 21 века.
*Если в строке формата нужен обратный слеш "\" , то его необходимо экранировать — "\\". Это особенно важно, если он в конце строки.
*Если в строке формата нужен обратный слеш "\" , то его необходимо экранировать — "\\". Это особенно важно, если он в конце строки.
*Если формат заканчивается на d/f и при этом нужна дата, необходимо экранировать d/f. Например, ТЕКСТ("12.05.2018"; "Hellow worl\d").
*Если формат заканчивается на d/f и при этом нужна дата, необходимо экранировать d/f. Например, ТЕКСТ("12.05.2018"; "\Hello worl\d") получим в поле такое значение: Hello world.





Текущая версия от 14:57, 24 октября 2023

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

Форматирование чисел

Функция ТЕКСТ() форматирует число в соответствии с заданным форматом. Например, если в столбце A находится число 23,7825 и его необходимо отформатировать до трех знаков после запятой:

ТЕКСТ(A;".3f")

В результате получается строка "23,783".


Формат:

ТЕКСТ(число;строка_формата)

TEXT(число;строка_формата)


Строка формата:

Строка формата имеет вид [flags][width][.precision]conversion

  • [flags] — специальные символы для форматирования. Например, флаг "+" означает, что числовое значение должно включать знак +, флаг "-" означает выравнивание результата по левому краю, флаг «,» устанавливает разделитель тысяч у целых чисел. Не является обязательной частью инструкции.
  • [width] — положительное целое десятичное число, которое определяет минимальное количество символов, которые будут выведены. Не является обязательной частью инструкции.
  • [.precision] — неотрицательное целое десятичное число с точкой перед ним. Обычно используется для ограничения количества символов. Не является обязательной частью инструкции.
  • conversion — это символ, указывающий, как число должно быть отформатировано. Допускается d для целых чисел, f для чисел с плавающей точкой. Является обязательной частью инструкции.

Например, в поле типа Число записано число 12.34:

  • ТЕКСТ({{Задача.Поле типа число}};"d") - результат 12
  • ТЕКСТ({{Задача.Поле типа число}};"05d") - результат 00012
  • ТЕКСТ({{Задача.Поле типа число}};"08.3f") - результат 0012.340
  • ТЕКСТ({{Задача.Поле типа число}};".4f") - результат 12.3400


Примеры:

ТЕКСТ(A;".3f")

ТЕКСТ({{Задача.Поле типа число}};".3f")

ТЕКСТ(1234567; ",.2f") - результат: 12 345,67


Форматирование дат

Таблица с формулами для форматирования дат. Рассмотрен пример форматирования даты: 12.10.2016.

Что отобразить Как Формат Формула Результат
Месяцы 1-12 "M" ТЕКСТ(A;"M") 10
Месяцы 01-12 "MM" ТЕКСТ(A;"MM") 10
Месяцы янв-дек "MMМ" ТЕКСТ(A;"MMM") окт
Месяцы Январь-Декабрь "MMМM" ТЕКСТ(A;"MMMМ") Октябрь
Месяцы Я-Д "MMМMM" ТЕКСТ(A;"MMMМM") О
Дни 1-31 "D" ТЕКСТ(A;"D") 12
Дни 01-31 "DD" ТЕКСТ(A;"DD") 12
Дни Пн-Вс "DDD" ТЕКСТ(A;"DDD") Ср
Дни понедельник-воскресенье "DDDD" ТЕКСТ(A;"DDDD") среда
Годы 00-99 "YY" ТЕКСТ(A;"YY") 16
Годы 1900-9999 "YYYY" ТЕКСТ(A;"YYYY") 2016


Для того, чтобы функция просклоняла месяц в родительном падеже, используйте следующий синтаксис:

ТЕКСТ(Число; "[$-FCxx]Формат даты")

где:

xx — это язык:

  • 19 — русский
  • 22 — украинский

Пример:

ТЕКСТ({{Системные.Сегодня}}; "[$-FC19]DD MMMM YYYY")

Результат:

14 июня 2022


Форматирование значения времени

Таблица с формулами для форматирования значения времени. Рассмотрен пример форматирования времени: 14:22:44.

Что отобразить Как Формат Формула Результат
Часы 0-23 "H" ТЕКСТ(A;"H") 14
Часы 00-23 "HH" ТЕКСТ(A;"HH") 14
Минуты 0-59 "m" ТЕКСТ(A;"m") 22
Минуты 00-59 "mm" ТЕКСТ(A;"mm") 22
Секунды 0-59 "s" ТЕКСТ(A;"s") 44
Секунды 00-59 "ss" ТЕКСТ(A;"ss") 44
Время 14:00 "HH:00" ТЕКСТ(A;"HH:00") 14:00
Время 14:22 "HH:mm" ТЕКСТ(A;"HH:mm") 14:22
Время 14:22:44 "HH:mm:ss" ТЕКСТ(A;"HH:mm:ss") 14:22:44
Время 14:22:44,11 "чч:мм:сс,00" ТЕКСТ(A;"HH:mm:ss,00") 14:22:44,11
Затраченное время (часов и минут) 1:02 "[H]:mm" ТЕКСТ(A;"[H]:mm") 1:02
Затраченное время (минут и секунд) 62:16 "[mm]:ss" ТЕКСТ(A;"[mm]:ss") 62:16
Затраченное время (секунд и сотых доль) 3735,80 "[ss],00" ТЕКСТ(A;"[ss],00") 3735,80


Важно

  • Время и Дата разделяются пробелом обязательно.
  • Время разделяется знаком ":" и "," для миллисекунд 23:15:41,456.
  • Дата разделяется одним из символов "." "/" "-".
  • Если не указана дата, то вместо нее будет 01.01.1900.
  • Строка формата для дат довольно гибкая (вводим любую строку и в ней заменятся определенные символы на единицы времени). Специальные символы — D,M,Y,H,m,s — необходимо экранировать, чтобы отобразить как букву, а не время.
  • Можно выводить длительность в часах/минутах/секундах (если указана только дата, то выведется кол-во времени с 31.12.1899, то есть длительность в часах для 01.01.1900 = 24).
  • Год из двух цифр считается как год 21 века.
  • Если в строке формата нужен обратный слеш "\" , то его необходимо экранировать — "\\". Это особенно важно, если он в конце строки.
  • Если формат заканчивается на d/f и при этом нужна дата, необходимо экранировать d/f. Например, ТЕКСТ("12.05.2018"; "\Hello worl\d") получим в поле такое значение: Hello world.


Перейти