ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 04.12.2019
Просмотров: 4045
Скачиваний: 5
121
5.
Операторы
и
наиболее
употребительные
функции
,
используемые
в
формулах
расчёта
значений
столбцов
,
определяемых
пользователем
Операторы
+
,
–
,
*
,
/
,
^
—
арифметические
операторы
:
сложение
,
вычита
-
ние
,
умножение
,
деление
,
возведение
в
степень
.
\
—
целочисленное
деление
(
остаток
отбрасывается
).
MOD
—
остаток
от
деления
.
Например
,
значение
выраже
-
ния
8 MOD 3
равно
2.
&
—
конкатенация
(
объединение
)
двух
текстовых
строк
.
=
,
<>
,
<
,
>
,
>=
,
<=
—
операторы
сравнения
(
результат
имеет
значения
«
истина
»
или
«
ложь
»)
1
.
AND
,
OR
,
NOT
—
логические
операции
"
и
", "
или
", "
не
".
Математические
функции
sqr
(
x
),
log
(
x
),
exp
(
x
)
—
x
, ln(
x
),
e
x
.
sin
(
x
),
cos
(
x
),
tan
(
x
),
atn
(
x
) — sin(
x
), cos(
x
), tg(
x
), arctg(
x
).
abs
(
x
) —
|
x
|.
fix
(
x
) —
округление
отбрасыванием
дробной
части
.
sgn
(
x
) —
1,
если
x
> 0; 0,
если
x
= 0; –1,
если
x
< 0.
rnd
() —
равномерно
распределённая
случайная
величина
в
интервале
[0; 1).
Значение
обновляется
при
ка
-
ждом
пересчёте
модели
проекта
.
Логические
функции
isnumeric
(
x
) —
«
истина
»,
если
аргумент
числовой
;
иначе
«
ложь
».
isdate
(
x
) —
«
истина
»,
если
аргумент
—
дата
;
иначе
«
ложь
»
2
.
isnull
(
x
) —
«
истина
»,
если
аргументу
не
присвоено
никакое
значение
;
иначе
«
ложь
».
iif
(
x,y,z
) —
y
,
если
x
имеет
значение
«
истина
»;
в
противном
случае
—
z
.
choose
(
i,x
1
,x
2
…
) —
возвращает
значение
x
i
.
1
Эти
операторы
могут
использоваться
для
сравнения
не
только
чисел
и
дат
,
но
и
текстовых
строк
(
в
лексикографическом
порядке
).
Регистр
символов
учитывается
.
2
В
справочной
системе
программы
Microsoft Project
эта
функция
отнесена
к
числу
функций
даты
и
времени
.
122
switch
(
c
1
,x
1
,c
2
,x
2
…
) —
аргументы
c
i
содержат
логические
условия
,
x
i
—
некоторые
значения
.
Результат
—
первое
слева
значение
x
i
,
для
которого
соответствующее
c
i
принимает
значение
«
истина
».
Функции
даты
и
времени
К
календарным
значениям
можно
прибавлять
и
вычитать
вещественные
числа
,
трактуемые
в
этом
случае
как
число
дней
(
возможно
,
дробное
)
согласно
астрономическому
времени
.
В
столбцах
для
представления
календарных
значений
могут
отображать
-
ся
только
даты
в
интервале
с
1
января
1984
г
.
по
31
декабря
2049
г
.
now
() —
текущие
дата
и
время
по
системным
часам
ком
-
пьютера
(
обновляются
при
каждом
пересчёте
модели
проекта
).
date
() —
текущая
дата
по
системным
часам
компьютера
.
cdate
(
x
) —
преобразование
текстового
значения
к
типу
«
да
-
та
».
dateserial
(
y,mn,d
),
timeserial
(
h,m,s
) —
формирование
календарного
значе
-
ния
из
номеров
года
y
,
месяца
mn
и
числа
d
;
но
-
меров
часа
h
,
минуты
m
и
секунды
s
.
Например
,
чтобы
сформировать
календарное
значение
,
со
-
ответствующее
моменту
h
часов
15
минут
30
секунд
17
июня
y
-
го
г
.,
можно
записать
dateserial(y,6,17)
+
timeserial(h,15,30).
dateadd
(
u,n,d
) —
дата
,
отстоящая
от
даты
d
(
возможно
её
задание
в
форме
текста
)
на
n
периодов
,
специфицирован
-
ных
аргументом
u
.
Последняя
может
принимать
одно
из
следующих
значений
:
"h"
,
"d"
,
"m"
,
"y"
,
что
означает
соответственно
часы
,
дни
,
ме
-
сяцы
и
годы
.
Время
астрономическое
.
Например
,
результат
вычисления
функции
dateadd("m",1,"23.05.2006")
— 23
ию
-
ня
2006
г
.
datediff
(
u,d
1
,d
2
) —
число
полных
и
неполных
периодов
заданной
продолжительности
между
двумя
указанными
датами
d
1
и
d
2
(
возможно
их
задание
в
форме
текста
по
образцу
"23.05.2006 23:59"
).
Пе
-
риод
задаётся
аргументом
u
,
который
может
принимать
значения
"h"
,
"d"
,
"w"
,
"m"
(
часы
,
123
дни
,
недели
,
месяцы
).
Если
d
1
>
d
2
,
результат
от
-
рицательный
.
datepart
(
u,d,f
) —
в
зависимости
от
значения
аргумента
u
выдаёт
:
"h"
—
час
,
"d"
—
календарное
число
,
"m"
—
номер
месяца
,
"w"
—
номер
дня
недели
,
"y"
—
номер
дня
в
году
,
соответствующие
дате
d
(
дата
может
задаваться
как
календарным
значением
,
так
и
текстом
по
образцу
"23.05.2006
23:59"
).
Аргумент
f
используется
только
при
u
=
"w"
:
если
он
равен
0,
первым
днём
недели
считается
понедельник
,
если
1 —
воскресенье
.
В
других
случаях
он
игнорируется
и
может
быть
опущен
.
З а м е ч а н и е
.
Результат
вычислений
функций
datediff
и
date-
part
является
числом
,
а
не
календарным
значением
(
датой
).
Попытка
ото
-
бражения
числового
значения
в
календарных
столбцах
,
определяемых
пользователем
,
вызовет
сообщение
об
ошибке
.
year
(
d
) —
номер
года
,
соответствующий
дате
d
.
month
(
d
) —
равносильно
datepart
(
"m",d
).
weekday
(
d,f
) —
равносильно
datepart
(
"w",d,f
).
day
(
d
) —
равносильно
datepart
(
"d",d
).
hour
(
d
) —
равносильно
datepart
(
"h",d
).
minute
(
d
) —
минута
,
соответствующая
дате
d
(
например
,
для
даты
"17.06.2006 9:15"
результат
равен
15
).
projdateadd
(
d,n,c
) —
дата
,
отстоящая
от
даты
d
на
период
рабочего
времени
n
согласно
календарю
c
.
Дата
задаётся
календарным
или
текстовым
(
например
,
"17.06.2006 9:15"
)
значением
.
Кален
-
дарь
—
именем
.
Период
может
задаваться
чис
-
лом
(
обозначающим
число
минут
)
или
текстовой
строкой
со
спецификацией
периода
:
например
,
"3m"
— 3
минуты
;
"4h"
— 4
часа
;
"5d"
—
5
рабочих
дней
;
"6w"
— 6
рабочих
недель
;
"7mon"
—
7
рабочих
месяцев
;
"8ed"
—
8 24-
часовых
периодов
рабочего
времени
;
"9ew"
— 9 168-
часовых
периодов
рабочего
вре
-
мени
;
"10emon"
— 10 720-
часовых
периодов
рабочего
времени
.
Продолжительность
рабочего
124
дня
,
рабочей
недели
и
рабочего
месяца
устанав
-
ливается
параметрами
текущего
проекта
(
Tools
→
Options…
→
Calendar
).
Если
агрумент
c
опущен
,
используются
календари
,
назначенные
текущей
строке
таблицы
работ
или
ресурсов
,
а
при
отсутствии
таковых
—
календарь
проекта
.
projdatesub
(
d,n,c
) —
функция
аналогична
projdateadd
,
но
вычисляется
дата
,
предшествующая
d
на
период
n
.
projdurvalue
(
n
) —
вычисляет
продолжительность
периода
n
,
задан
-
ного
так
же
,
как
в
функции
projdateadd
, —
в
минутах
.
projdatediff
(
d
1
,d
2
,c
) —
количество
минут
рабочего
времени
между
дата
-
ми
d
1
и
d
2
согласно
календарю
c
.
Если
аргумент
c
опущен
,
используются
календари
,
назначенные
текущей
строке
таблицы
работ
или
ресурсов
,
а
при
отсутствии
таковых
—
календарь
проекта
.
projdurconv
(
n,f
) —
вычисляет
продолжительность
периода
n
,
задан
-
ного
так
же
,
как
в
функции
projdateadd
,
в
еди
-
ницы
,
заданные
флагом
f
.
Флаг
должен
содер
-
жать
целое
значение
.
Нечётные
значения
от
3
до
11
обозначают
единицы
рабочего
времени
—
минуты
,
часы
,
дни
,
недели
,
месяцы
.
Чётные
от
4
до
12 —
соответствующие
единицы
астроно
-
мического
времени
.
Текстовые
функции
format
(
x,f
) —
отображение
числа
или
даты
x
по
формату
f
.
Например
:
♦
функция
format(cdate("15.1.04 10:30"), "hh
ч
. mm
мин
. d mmmm yyyy
г
.")
выдаст
текст
"10
ч
. 30
мин
. 15
января
2006
г
."
;
♦
функция
format(cdate("5.1.06 10:30"), "dd mmm yy
г
.
в
hh:mm")
выдаст
текст
"05
янв
04
г
.
в
10:30"
;
♦
функция
format(3.14159, "#.###")
выдаст
текст
"3.142"
;
♦
функция
format(0.14159, "#.###")
выдаст
текст
".142"
;
♦
функция
format(3.14, "000.000")
выдаст
текст
"003.140"
.
instr
(
n,b,s,c
) —
номер
символа
,
начиная
с
которого
в
строке
b
со
-
держится
строка
s
,
или
0.
Аргумент
c
определяет
правила
сравнения
:
с
учётом
регистра
(
0
)
или
без
учёта
(4).
125
len
(
s
) —
число
символов
в
строке
s
.
lcase
(
s
),
ucase
(
s
), —
перевод
текста
s
в
строчной
и
заглавный
регистры
соответственно
.
ltrim
(
s
),
rtrim
(
s
) —
возвращают
исходный
текст
(
s
),
удалив
соответ
-
ственно
начальные
или
конечные
пробелы
(
если
имелись
).
space
(
n
) —
возвращает
строку
,
состоящую
из
n
пробелов
.
mid
(
s,i,l
) —
возвращает
подстроку
строки
s
,
начинающуюся
с
i
-
го
символа
и
имеющую
длину
l
(
если
аргумент
l
опущен
—
до
конца
строки
).