Съдържание

# Функции за масиви

Тази категория съдържа функциите за масиви.

## Какво е масив?

Масивът е свързана област от клетки в електронна таблица, които съдържат стойности. Квадратна област от три реда и три колони е масив с размер 3 на 3:

| A | B | C | D | E
1 | 7 | 31 | 33
2 | 95 | 17 | 2
3 | 5 | 10 | 50
4

Най-малкият възможен масив е с размери 1 на 2 или 2 на 1 – само от две съседни клетки.

## Какво е формула за масив?

Формула, с която се изчисляват отделните стойности в област от клетки, се нарича формула за масив. Разликата между нея и обикновените формули е, че формулата за масив работи с няколко стойности едновременно вместо само с една.

Формулите за масиви могат не само да обработват, но и да връщат по няколко стойности. Резултатът на формула за масиви също е масив.

За да умножите стойностите в отделните клетки на горния масив по 10, не е необходимо да прилагате формула върху всяка отделна клетка или стойност. Достатъчно е да използвате една формула за масив. Изберете диапазон с размери 3 на 3 клетки другаде в листа, въведете формулата =10*A1:C3 и потвърдете въведеното с клавишната комбинация Command Ctrl + Shift + Enter. Резултатът е масив с размер 3 на 3, в който отделните стойности от областта (A1:C3) са умножени по 10.

Върху оригиналната област – масив можете да прилагате и други операции, освен умножение. В LibreOffice Calc можете да събирате (+), изваждате (-), умножавате (*), делите (/), степенувате (^), слепвате (&) и сравнявате (=, <>, <, >, <=, >=) отделните стойности от област с клетки и ако сте въвели формула за масив, ще получите резултат – масив.

Операциите за сравнение във формула за масив третират празните клетки по същия начин, както и в нормална формула – като нула или като празен низ. Например, ако клетките A1 и A2 са празни, и двете формули за масиви {=A1:A2=""} и {=A1:A2=0} ще върнат масиви от по 1 колона и 2 реда, съдържащи стойността TRUE.

### Кога се използват формулите за масиви?

Използвайте формули за масиви, ако се налага да повтаряте изчисления с различни стойности. Ако по-късно решите да промените начина на изчисляване, ще е необходимо да обновите само формулата за масива. За да добавите формула за масив, изберете цялата област от клетки и нанесете желаните промени във формулата за масив.

Формулите за масиви пестят и памет, когато се налага изчисляването на няколко стойности, тъй като не заемат много място в паметта. Освен това масивите са важен инструмент за сложни изчисления, тъй като можете да включите в изчислението стойността на няколко клетки. LibreOffice предлага набор от математически функции за масиви, например MMULT за умножаване на два масива и SUMPRODUCT за изчисляване на скаларно произведение на два масива.

## Използване на формули за масиви в LibreOffice Calc

### Неявно сечение на формули за масив

Можете да създадете и „обикновена“ формула, в която диапазоните на обръщенията, например параметри, указват формула за масив. Тази формула се нарича още „неявно сечение“ на формула за масив. Резултатът се получава чрез пресичане на диапазона от обръщението и редовете или колоните, в които се намира формулата. Ако няма пресичане или ако то обхваща няколко реда или колони, се получава съобщение за грешка #VALUE!. Следният пример илюстрира такава формула:

В горната таблица разположете формулата за масив в D1:

{=A1:A3 + 100}

Клетките D1, D2, D3 имат стойности съответно 107, 195, 105.

Вмъкнете следната формула в E2, не я въвеждайте като формула за масив.

=A1:A3 + 100

Клетките E1 и E3 са празни, клетката E2 има стойност 195. Това е неявно сечение на формули за масив.

Вмъкнете долната формула в E4, както в E2.

=A1:A3 + 100

В клетката E4 се показва #VALUE!. Ред 4 е извън диапазона A1:A3 на формулата.

### Създаване на формули за масиви

Ако създадете формула за масив с помощника за функции, трябва всеки път да отмятате полето Масив, така че резултатите да се получават в масив. В противен случай се връща само стойността в горната лява клетка на изчислявания масив.

Ако въведете формула за масив директно в клетката, трябва да използвате комбинацията Shift + Command Ctrl + Enter вместо клавиша Enter. Само тогава формулата става формула за масив.

В LibreOffice Calc формулите за масиви се показват във фигурни скоби. Тези скоби не могат да се въвеждат ръчно.

Клетките в масива резултат автоматично се защитават срещу промени. Можете обаче да редактирате, изтриете или копирате формулата за масив, като изберете целия диапазон от клетки.

### Масиви с константи, вмъкнати във формули

Calc поддържа вмъкване на матрични константи във формули. Вмъкнатите масиви се ограждат с фигурни скоби – „{“ и „}“. Елементите могат да са числа, включително отрицателни, логически константи (TRUE и FALSE) или низове. Не се разрешават изрази, които не са константи. Масивите могат да съдържат един или няколко реда и една или няколко колони. Всички редове трябва да са с еднакъв брой елементи помежду си, всички колони – също.

Разделителят на колони (разделящ елементите в един ред) и разделителят на редове зависят от езика и локала. В настоящия текст обаче използваме знаците „;“ (точка и запетая) и „|“ (вертикална черта) съответно за разделители на колони и редове. Например в английския локал разделителят на колони е „,“ (запетая), а разделителят на редове е „;“ (точка и запетая).

Можете да видите и промените разделителите за редове и колони в LibreOffice - Preferences Инструменти - Настройки - Calc - Формула - Разделители.

Не се допуска влагане на масиви.

Примери:

={1;2;3}

Масив с един ред, съдържащ числата 1, 2 и 3.

За да въведете тази константа – масив, изберете три клетки една до друга и въведете формулата ={1;2;3} с фигурни скоби и точки и запетаи, след което натиснете Command Ctrl + Shift + Enter.

={1;2;3|4;5;6}

Масив с два реда и три стойности във всеки ред.

={0;1;2|FALSE;TRUE;"две"}

Масив със смесени данни.

=SIN({1;2;3})

Въведена като матрична формула, дава резултата от трите функции SIN с аргументи 1, 2 и 3.

### Редактиране на формули за масиви

1. Изберете диапазона или масива от клетки, съдържащ формулата за масив. За да изберете целия масив, поставете курсора за клетки в диапазона му и натиснете Command Ctrl + /, където / означава клавиша за деление в цифровия блок.

2. Натиснете F2 или поставете курсора в реда за въвеждане. Така ще започнете да редактирате формулата.

3. След като внесете промени, натиснете Command Ctrl + Shift + Enter.

Можете да форматирате отделни части от масив, например да смените цвета на шрифта. Изберете област от клетки и променете желания атрибут.

### Изтриване на формули за масиви

1. Изберете диапазона или масива от клетки, съдържащ формулата за масив. За да изберете целия масив, поставете курсора за клетки в диапазона му и натиснете Command Ctrl + /, където / означава клавиша за деление в цифровия блок.

2. Натиснете Delete, за да изтриете съдържанието на масива, включително формулата за масив, или натиснете Backspace, за да отворите диалоговия прозорец Изтриване на съдържание. Изберете Формули или Изтриване на всичко и щракнете върху OK.

### Копиране на формули за масиви

1. Изберете областта или масива от клетки, съдържащ формулата за масив.

2. Натиснете F2 или поставете курсора в реда за въвеждане.

3. Копирайте формулата в реда за въвеждане, като натиснете Command Ctrl + C.

4. Изберете диапазон от клетки, в който искате да вмъкнете формулата за масив, и натиснете F2 или поставете курсора в реда за въвеждане.

5. Поставете формулата, като натиснете Command Ctrl + V и потвърдите с Command Ctrl + Shift + Enter. Избраният диапазон сега съдържа формулата за масив.

### Промяна на областта на масив

Ако желаете да редактирате масива – резултат, направете следното:

1. Изберете областта или масива от клетки, съдържащ формулата за масив.

2. Вдясно под селекцията ще видите малка икона, чрез която можете да уголемявате или смалявате областта с мишката.

Когато променяте областта на масива, формулата няма да се приспособява автоматично. Променя се само областта, в която се извежда резултатът.

Можете да създадете копие на формулата за масив в дадения диапазон, като задържите клавиша Command Ctrl.

### Условни изчисления с масиви

Условните изчисления с масиви са формули за масиви, или матрични формули, съдържащи функцията IF() или CHOOSE(). Аргументът на условието във формулата е обръщение към област или резултат във вид на матрица.

В следващия пример проверката >0 във формулата {=IF(A1:A3>0;"да";"не")} се прилага върху всяка клетка от областта A1:A3 и резултатът се копира в съответната клетка.

| A | B (формула) | B (резултат)
1 | 1 | {=IF(A1:A3>0;"да";"не")} | да
2 | 0 | {=IF(A1:A3>0;"да";"не")} | не
3 | 1 | {=IF(A1:A3>0;"да";"не")} | да

Следващите функции форсират работа с област от клетки като с масив: CORREL, COVAR, FORECAST, FTEST, INTERCEPT, MDETERM, MINVERSE, MMULT, MODE, PEARSON, PROB, RSQ, SLOPE, STEYX, SUMPRODUCT, SUMX2MY2, SUMX2PY2, SUMXMY2 и TTEST. Ако използвате обръщения към области като аргументи на тези функции, те се изчисляват като функции за масиви. В долната таблица е показан пример за форсирано изчисление в режим на масив:

| A | B (формула) | B (резултат) | C (форсирана формула за масив) | C (резултат)
1 | 1 | =A1:A2+1 | 2 | =SUMPRODUCT(A1:A2+1) | 5
2 | 2 | =A1:A2+1 | 3 | =SUMPRODUCT(A1:A2+1) | 5
3 |  | =A1:A2+1 | #VALUE! | =SUMPRODUCT(A1:A2+1) | 5

## FREQUENCY

Намира честотното разпределение в масив от една колона. Функцията брои стойностите в масива Данни, които са измежду указаните в масива Класове.

#### Синтаксис

FREQUENCY(Данни; Класове)

Дата е обръщение към стойностите, които да бъдат преброени.

Класове е масивът с гранични стойности.

Тази функция игнорира текстовете и празните клетки в диапазон с данни. Ако подозирате, че резултатът ѝ е погрешен, потърсете текст в диапазоните с данни. За да осветите текстовото съдържание в диапазон с данни, използвайте функционалността за осветяване на стойности.

Общо въведение във функциите за масиви ще намерите в началото на тази страница.

#### Пример

В следващата таблица колоната A съдържа неподредени стойности от измервания. Колоната B съдържа горните граници на отделните интервали или класове, в които да бъдат разделени данните от колоната A. Според границата, въведена в B1, функцията FREQUENCY ще намери броя на измерените стойности, по-малки или равни на 5. Тъй като границата в B2 е 10, вторият резултат на FREQUENCY е броят на стойностите, по-големи от 5 и по-малки или равни на 10. Въведеният в B6 текст, „>25“ е само за яснота.

| A | B | C
1 | 12 | 5 | 1
2 | 8 | 10 | 3
3 | 24 | 15 | 2
4 | 11 | 20 | 3
5 | 5 | 25 | 1
6 | 20 | >25 | 1
7 | 16 |  |
8 | 9 |  |
9 | 7 |  |
10 | 16 |  |
11 | 33 |  |

Изберете област от една колона, в която да се въведат честотите според зададените интервали за класове. Избраните клетки трябва да са с една повече от тези с границите на класове. За примера изберете C1:C6. Изберете функцията FREQUENCY в помощника за функции. Изберете областта A1:A11 за Данни и областта с границите B1:B6 за Класове. Отметнете полето Масив и натиснете OK. Ще видите търсените честоти в областта C1:C6.

Още обяснения има в началото на тази страница.

## GROWTH

Изчислява стойностите на експоненциален тренд в масив.

#### Синтаксис

GROWTH(ДанниY [; [ ДанниX ] [; [ НовиДанниX ] [; ТипФунк ] ] ])

ДанниY представлява масива с данни за Y.

ДанниX (незадължителен) представлява масива с данни за X.

НовиДанниX (незадължителен) представлява масива с данни за X, в който се преизчисляват стойностите.

ТипФунк (незадължителен). Ако ТипФунк = 0, ще бъдат изчислявани функции от вида y = m^x, в противен случай – функции от вида y = b*m^x.

Във функциите на LibreOffice Calc параметрите, отбелязани като „незадължителни“, могат да се пропускат само ако след тях не следват още параметри. Например, ако функцията приема четири параметъра, от които последните два са незадължителни, можете да изпуснете четвъртия параметър или третия и четвъртия, но не и само третия.

Още обяснения има в началото на тази страница.

#### Пример

Тази функция връща масив и с нея се работи като с другите функции за масиви. Изберете диапазона, в който искате да получите резултатите, после изберете функцията. Изберете ДанниY. Въведете останалите желани параметри, отметнете Масив и натиснете OK.

## LINEST

Връща таблица с показатели на правата линия, която най-добре съответства на зададени данни.

#### Синтаксис

LINEST(ДанниY [; ДанниX [; ТипЛин [; Стат]]])

ДанниY е област от един ред или колона, съдържаща координатите y на точките от набора.

ДанниX е съответна област от един ред или колона, съдържаща координатите x. Ако ДанниX е пропуснат, подразбира се 1, 2, 3, …, n. Ако има повече от един набор от променливи, ДанниX може да съдържа множество съответстващи редове или колони.

LINEST намира права линия y = a + bx, която най-добре съответства на данните чрез линейна регресия (метод на най-малките квадрати). При няколко набора от променливи правата е от вида y = a + b1x1 + b2x2 ... + bnxn.

Ако ТипЛин е FALSE, намерената права задължително минава през началото (константата a е нула: y = bx). Ако е пропуснат, ТипЛин по подразбиране се приема за TRUE (не е задължително линията да минава през началото).

Ако Стат е пропуснат или FALSE, се връща само първият ред от таблицата с показатели. Ако е TRUE, се връща цялата таблица.

LINEST връща таблица (масив) от параметри, както е показано по-долу, и трябва да бъде въведена като формула за масив (например с Command Ctrl + Shift + Return вместо само с Return).

Във функциите на LibreOffice Calc параметрите, отбелязани като „незадължителни“, могат да се пропускат само ако след тях не следват още параметри. Например, ако функцията приема четири параметъра, от които последните два са незадължителни, можете да изпуснете четвъртия параметър или третия и четвъртия, но не и само третия.

Още обяснения има в началото на тази страница.

#### Пример

Тази функция връща масив и се обработва както и останалите функции за масиви. Изберете област за резултатите, след това изберете функцията. Изберете ДанниY. Ако желаете, можете да въведете други параметри. Отметнете Масив и натиснете OK.

Върнатите резултати ще съдържат поне наклона на регресионната линия и пресечната точка с оста Y (ако Стат = 0). Ако Стат не е 0, се показват и допълнителни резултати.

### Други резултати на LINEST:

Разгледайте следните примери:

| A | B | C | D | E | F | G
1 | x1 | x2 | y |  | LINEST, стойност |  |
2 | 4 | 7 | 100 |  | 4,17 | -3,48 | 82,33
3 | 5 | 9 | 105 |  | 5,46 | 10,96 | 9,35
4 | 6 | 11 | 104 |  | 0,87 | 5,06 | #NA
5 | 7 | 12 | 108 |  | 13,21 | 4 | #NA
6 | 8 | 15 | 111 |  | 675,45 | 102,26 | #NA
7 | 9 | 17 | 120 |  |  |  |
8 | 10 | 19 | 133 |  |  |  |

Колоната A съдържа няколко стойности за X1, колоната B – няколко стойности за X2, а колоната C – стойностите на Y. Тези стойности са вече въведени в електронната таблица. В листа е избрана областта E2:G6 и е отворен помощникът за функции. За да работи функцията LINEST, трябва да отметнете квадратчето Масив в поммощника за функции. След това изберете следните стойности в документа (или ги въведете с клавиатурата):

ДанниY е C2:C8.

ДанниX е A2:B8.

ТипЛин и Стат имат стойност 1.

След като щракнете върху OK, LibreOffice Calc ще попълни избраната област с резултата на функцията LINEST, както е показано в примера.

Формулата в лентата Формула съответства на всяка клетка от масива LINEST {=LINEST(C2:C8;A2:B8;1;1)}.

Тук са представени изчислените от LINEST стойности:

E2 и F2: наклон на регресионната права y=b+m*x за стойностите на x1 и x2. Стойностите се показват в обратен ред: наклонът за x2 е в E2, а наклонът за x1 – в F2.

G2: пресечна точка на b с оста y.

E3 и F3: стандартната грешка на стойността на наклона.

G3: стандартната грешка на пресичането.

E4: RSQ

F4: стандартната грешка на регресията, изчислена за стойността на Y.

E5: стойността F от дисперсионния анализ.

F5: степените на свобода от дисперсионния анализ.

E6: сумата от квадратите на отклоненията на изчислените стойности на Y от линейното средно.

F6: сумата от квадратите на отклоненията на изчислените стойности на Y от дадените стойности на Y.

Още обяснения има в началото на тази страница.

## LOGEST

Тази функция апроксимира въведените данни чрез експоненциална регресионна крива (y=b*m^x).

#### Синтаксис

LOGEST(ДанниY [; ДанниX [; ТипФунк [; Стат]]])

ДанниY представлява масива с данни за Y.

ДанниX (незадължителен) представлява масива с данни за X.

ТипФунк (незадължителен). Ако ТипФунк = 0, ще бъдат изчислявани функции от вида y = m^x, в противен случай – функции от вида y = b*m^x.

Стат (незадължителен). Ако Стат=0, се изчислява само коефициентът на корелация.

Във функциите на LibreOffice Calc параметрите, отбелязани като „незадължителни“, могат да се пропускат само ако след тях не следват още параметри. Например, ако функцията приема четири параметъра, от които последните два са незадължителни, можете да изпуснете четвъртия параметър или третия и четвъртия, но не и само третия.

Още обяснения има в началото на тази страница.

#### Пример

Вижте LINEST. Разликата е, че няма да бъде върната сума на квадратите.

## MDETERM

Връща детерминантата на матрица. Тази функция връща стойност в текущата клетка. Не е необходимо да задавате област за резултата.

#### Синтаксис

MDETERM

Масив представлява квадратен масив, чиято детерминанта се изчислява.

Общо въведение във функциите за масиви ще намерите в началото на тази страница.

Още обяснения има в началото на тази страница.

## MINVERSE

Намира обратна матрица.

#### Синтаксис

MINVERSE

Масив представлява квадратен масив, чиято обратна матрица се търси.

Още обяснения има в началото на тази страница.

#### Пример

Изберете квадратна област, после изберете MINVERSE. Изберете масива за резултата, отметнете полето Масив и натиснете OK.

## MMULT

Изчислява матричното произведение на два масива. Броят на колоните в масив 1 трябва да съвпада с този на редовете в масив 2. Квадратните масиви имат равен брой редове и колони.

#### Синтаксис

MMULT(Масив 1; Масив 2)

Масив 1 представлява първия масив за произведението.

Масив 2 представлява втория масив за произведението.

Още обяснения има в началото на тази страница.

#### Пример

Изберете квадратен диапазон. Изберете функцията MMULT. Изберете Масив 1, после Масив 2. В помощника за функции отметнете полето Масив. Щракнете върху OK. Масивът резултат ще се покаже в първата избрана област.

## MUNIT

Връща единична квадратна матрица с определен размер. Единичната матрица е квадратен масив, в който елементите по главния диагонал са равни на 1, а останалите елементи – на 0.

#### Синтаксис

MUNIT(Размер)

Размер е размерът на единичната матрица.

Общо въведение във функциите за масиви ще намерите в началото на тази страница.

#### Пример

Изберете квадратна област в листа, например от A1 до E5.

Без да премахвате избора от областта, изберете функцията MUNIT. Отметнете полето Масив. Въведете желания размер за единичната матрица, в случая – 5, и натиснете OK.

Можете също да въведете формулата =MUNIT(5) в последната клетка на избрания диапазон (E5) и да натиснете Shift + Command + Enter Shift + Ctrl + Enter.

Ще видите единична матрица в областта A1:E5.

Още обяснения има в началото на тази страница.

## SUMPRODUCT

Умножава съответните елементи в дадените масиви и връща сумата на получените произведения.

#### Синтаксис

SUMPRODUCT(Масив 1[; Масив 2;][...;[Масив 255]])

Масив 1[; Масив 2;][...;[Масив 255]] представляват масиви, чиито съответни елементи да бъдат умножени.

В списъка с аргументи трябва да има поне един масив. Ако е подаден само един масив, се сумират всичките му елементи. Ако са подадени няколко, те трябва да са с еднакъв размер.

#### Пример

| A | B | C | D
1 | 2 | 3 | 4 | 5
2 | 6 | 7 | 8 | 9
3 | 10 | 11 | 12 | 13

=SUMPRODUCT(A1:B3;C1:D3) връща 397.

Изчисление: A1*C1 + B1*D1 + A2*C2 + B2*D2 + A3*C3 + B3*D3

Чрез SUMPRODUCT можете да изчислявате скаларни произведения на двойки вектори.

SUMPRODUCT връща едно число, затова не е необходимо да се въвежа като функция за масив.

Още обяснения има в началото на тази страница.

## SUMX2MY2

Връща сумата от разликите на квадратите на съответните стойности в два масива.

#### Синтаксис

SUMX2MY2(МасивX; МасивY)

МасивX представлява първия масив, чиито елементи да бъдат повдигнати на квадрат и добавени.

МасивY представлява втория масив, чиито елементи да бъдат повдигнати на квадрат и извадени.

Още обяснения има в началото на тази страница.

## SUMX2PY2

Връща сумата на сумите от квадратите на съответните стойности в два масива.

#### Синтаксис

SUMX2PY2(МасивX; МасивY)

МасивX представлява първия масив, чиито елементи да бъдат повдигнати на квадрат и добавени.

МасивY представлява втория масив, чиито елементи да бъдат повдигнати на квадрат и извадени.

Още обяснения има в началото на тази страница.

## SUMXMY2

Сумира квадратите на разликите между съответните стойности в два масива.

#### Синтаксис

SUMXMY2(МасивX; МасивY)

МасивX представлява първия масив, чиито елементи да бъдат извадени и повдигнати на квадрат.

МасивY представлява втория масив, чиито елементи да бъдат извадени и повдигнати на квадрат.

Още обяснения има в началото на тази страница.

## TRANSPOSE

Транспонира редовете и колоните на масив.

#### Синтаксис

TRANSPOSE

Масив задава масива, който трябва да бъде транспониран.

Общо въведение във функциите за масиви ще намерите в началото на тази страница.

#### Пример

Изберете в листа диапазона, в който да се покаже транспонираният масив. Ако оригиналният масив има n реда и m колони, избраният диапазон трябва да има поне m реда и n колони. След това въведете формулата направо, изберете оригиналния масив и натиснете Shift + Command + Enter Shift + Ctrl + Enter. Ако използвате помощника за функции, вместо това отметнете полето Масив. Транспонираният масив ще се покаже в избрания диапазон цел и ще бъде автоматично защитен от промени.

| A | B | C | D
1 | 2 | 3 | 4 | 5
2 | 6 | 7 | 8 | 9

Горната таблица съдържа 2 реда и 4 колони. За да я транспонирате, трябва да изберете 4 реда и 2 колони. Ако например искате да транспонирате горната таблица към диапазона A7:B10 (4 реда, 2 колони), трябва да изберете целия диапазон и после да въведете следното:

TRANSPOSE(A1:D2)

После се уверете, че въвеждате формулата като матрична с Shift + Command + Enter Shift + Ctrl + Enter. Резултатът ще бъде както следва:

| A | B
7 | 2 | 6
8 | 3 | 7
9 | 4 | 8
10 | 5 | 9

## TREND

Намира точки по линеен тренд.

#### Синтаксис

TREND(ДанниY [; ДанниX [; НовиДанниX [; ТипЛин]]])

ДанниY представлява масива с данни за Y.

ДанниX (незадължителен) представлява масива с данни за X.

НовиДанниX (незадължителен) представлява масива с данни за X, които се използват за преизчисляване на стойностите.

ТипЛин (незадължителен). Ако ТипЛин = 0, намираните прави ще минават през началото, а в противен случай могат да бъдат изместени. Подразбира се ТипЛин <> 0.

Във функциите на LibreOffice Calc параметрите, отбелязани като „незадължителни“, могат да се пропускат само ако след тях не следват още параметри. Например, ако функцията приема четири параметъра, от които последните два са незадължителни, можете да изпуснете четвъртия параметър или третия и четвъртия, но не и само третия.

Още обяснения има в началото на тази страница.

#### Пример

Изберете диапазон от клетки, в който да се показват данните на тренда. Изберете функцията. Въведете изходящите данни или ги изберете с мишката. Отметнете полето Масив. Натиснете OK. Ще се покажат данните за тренда, изчислени въз основа на изходящите данни.

Теми, свързани с показаната

Функции по категория